Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Número aleatórios

Para gerar um número entre 1 e 3, podemos usar o código: let numeroAleatorio1a3 = parseInt(Math.random() * 3) + 1;.

sobre esse ponto não seira correto Para gerar um número entre 1 e 3, podemos usar o código: let numeroAleatorio1a3 = parseInt(Math.random() * 3 + 1);.

3 respostas
solução!

Oi Dacio, tudo bem?

A diferença entre parseInt(Math.random() * 3) + 1 e parseInt(Math.random() * 3 + 1) é sutil, mas importante.

A função Math.random() gera um número aleatório entre 0 (inclusivo) e 1 (exclusivo). Quando multiplicamos esse número por 3, o resultado será um número entre 0 (inclusivo) e 3 (exclusivo). Então, quando usamos parseInt(), que arredonda para baixo, o resultado será 0, 1 ou 2. Adicionando 1, obtemos um número entre 1 e 3, que é o que queremos.

Por outro lado, quando usamos parseInt(Math.random() * 3 + 1), estamos adicionando 1 antes de arredondar para baixo. Isso significa que o resultado pode ser 1, 2, 3 ou 4, o que não é o que queremos.

Por isso, a maneira correta de gerar um número aleatório entre 1 e 3 é let numeroAleatorio1a3 = parseInt(Math.random() * 3) + 1;.

Espero ter ajudado.

Um abraço e bons estudos.

Só para falar de outra forma. O parseInt() basicamente tem a função de pegar apenas o número inteiro (a esquerda da vírgula). Ele desconsidera tudo que vier depois. Ex.: 2,1 e 2,9 o parseInt() interpreta somente o 2, logo, trará 2 como resultado. Eu acredito que falar dessa forma (sem usar a palavra arredondamento) vai embolar menos a cabeça das pessoas. =)

@Lorena,

Os códigos:

numeroAleatorio1a3 = parseInt(Math.random() * 3 + 1);
console.log(numeroAleatorio1a3)

e

numeroAleatorio1a3 = parseInt(Math.random() * 3) + 1;
console.log(numeroAleatorio1a3)

geram o mesmo range de valores entre 1 e 3.