1
resposta

questão 6 "números aleatórios"

quando fui responder a questão 6 "números aleatórios" a resposta "correta" no código da questão é let numeroAleatorio1a3 = parseInt(Math.random() * 3) + 1;. sendo que a maneira correta seria let numeroAleatorio1a3 = parseInt(Math.random() * 3 + 1 ); ou eu estou errado ?

1 resposta

Olá, Allan! Como vai?

A função Math.random() gera um número decimal aleatório entre 0 (inclusive) e 1 (exclusivo). Quando você multiplica esse número por 3, você obtém um número decimal entre 0 (inclusive) e quase 3 (exclusivo). Ao usar parseInt(), você está convertendo esse número decimal em um número inteiro, descartando a parte decimal.

No caso do código let numeroAleatorio1a3 = parseInt(Math.random() * 3) + 1;, o que acontece é o seguinte:

  1. Math.random() * 3 gera um número entre 0 e quase 3.
  2. parseInt() converte isso para um inteiro, resultando em 0, 1 ou 2.
  3. Ao adicionar 1, o resultado final é 1, 2 ou 3.

Por outro lado, no código let numeroAleatorio1a3 = parseInt(Math.random() * 3 + 1);, o cálculo de Math.random() * 3 + 1 gera um número entre 1 (inclusive) e quase 4 (exclusivo). Quando você aplica parseInt() a isso, você obtém um número inteiro entre 1 e 3.

Ambos os códigos podem gerar números entre 1 e 3, mas o primeiro é mais comum e direto para esse propósito, pois adiciona 1 após a conversão para inteiro, garantindo que o valor mínimo seja 1.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.