3
respostas

O Math.random * numeroMaximo + 1 vai servir para qualquer valor?

Fiquei com dúvida se para qualquer número que eu colocar na variavel numeroMaximo vai servir para gerar todos os números, por exemplo, se colocar 77 será possível aparecer até o 77 no valor do numeroSecreto?

3 respostas

Boa noite.

Sim. É isso que vai acontecer. Conforme a página de documentação na Mozilla, qualquer valor que você definir como máximo será o teto exclusivo, isto é, terá como valor máximo o inteiro imediatamente anterior com alguns 99 nos decimais.

Math.random() gera um pseudo aleatório que vai de 0.0 a 0.999999999999. Então é só multiplicar este valor máximo da função pelo número que você quiser que vai encontrar o valor m

Olá,

Fiquei com uma dúvida durante o vídeo sobre a linha 2. É necessário ainda ter o "+ 1", mesmo após criar a variável "numeroMaximo"? Antes eu tinha entendido que a lógica de inserir o "+ 1" seria por causa do fator multiplicador, mas como definimos um número máximo, por que ainda devemos somar + 1?

Eduardo, teria como copiar o código e colocar aqui para acompanharmos. Faz um tempinho que assisti o vídeo, então não estou muito bem lembrado dessa linha em específico.

Porém, até onde me lembro, a questão do +1 é em função do jeito que foi feito o código, pegando somente o inteiro do número. Então, vamos colocar o número 5 como exemplo. Como o math.random() vai gerar um número entre 0.0 e 0.999999 (tem mais 9, mas vamos simular como tendo somente 6), se multiplicarmos estes valores por 5, teremos um valor entre 0.0 e 4.99995. Quando tiramos somente a parte inteira, ficamos com um valor entre 0 e 4. Se eu desejar obter um valor entre 1 e 5, as possibilidades anteriores não vão me servir. Não tem o 5 que preciso, e tem o 0 que é desnecessário para mim. Por isso soma-se 1 à expressão.

Como alternativa, ao invés de usar a função para obter o inteiro, poderia usar a função para arredondar para cima (Floor). Com isso 0.1 seria arredondado para 1, assim como 4.9995 seria arredondado para 5. Essa é uma das muitas possibilidades.

Espero ter ajudado.