Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Quando adicionamo "+ 1", exclui a possibilidade do 0 está presente no Math.random?

Minha dúvida surgiu devido à explicação do sobre a alternativa B:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Então pra ver se eu entendi corretamente... Se eu multiplicar por 4, o Math.random pode gerar um número de 0 a 3. Mas se eu multiplicar por 3 + 1 (que é a alternativa correta) além de incluir o "3", ele exclui o "0"? Isso ocorre porque se o número aleatório for 0, vai somar +1 no final?

1 resposta
solução!

Olá, Leo!

O que o + 1 faz?

Imagine que você tem uma roleta com números de 0 a 3. Ao adicionar 1 a cada número sorteado nessa roleta, você estará, na verdade, "empurrando" todos os números um passo à frente. O que antes era 0 se torna 1, o que era 1 se torna 2, e o que era 2 se torna 3. O número 3, que antes não existia na roleta original, agora passa a existir.

Por que não incluímos o 0?

  • Intervalo desejado: O objetivo da expressão é gerar números aleatórios entre 1 e 3, ambos inclusive. Ao adicionar 1 ao resultado de Math.random() * 3, garantimos que o menor valor possível seja 1 e o maior seja 3.

  • Funcionamento do Math.random(): A função Math.random() gera um número aleatório entre 0 (inclusive) e 1 (exclusivo). Isso significa que o resultado pode ser 0, mas nunca será exatamente 1. Ao multiplicar por 3 e adicionar 1, garantimos que o resultado mínimo seja 1.

Por que a alternativa B está incorreta?

A alternativa B, parseInt(Math.random() * 4), geraria números entre 0 e 3. Isso acontece porque ao multiplicar por 4, os possíveis resultados seriam números entre 0 e 3.9999... Ao aplicar parseInt, a parte decimal é descartada, resultando em números inteiros de 0 a 3.

O + 1 na expressão parseInt(Math.random() * 3) + 1 serve para deslocar o intervalo de valores gerados por Math.random() * 3 para o intervalo desejado de 1 a 3. Sem o + 1, o intervalo seria de 0 a 2.

Espero ter ajudado.