Olá Israel, como vai? Espero que esteja bem!
A função que você implementou:
return parseInt ((Math.random() * max) + min);
está quase correta, mas pode ter um pequeno problema dependendo do intervalo que você deseja.
O método Math.random()
gera um número aleatório entre 0 (inclusivo) e 1 (exclusivo). Quando você multiplica esse número por max
, o intervalo se torna de 0 a max
(exclusivo). Ao adicionar min
, você está efetivamente deslocando esse intervalo para ser de min
a max + min
(exclusivo).
Por exemplo, se min
for 10 e max
for 20, o intervalo será de 10 a 30, em vez de 10 a 20. Além disso, o parseInt
irá arredondar para baixo qualquer número decimal, o que significa que o valor máximo (neste caso, 30) nunca será alcançado.
Por outro lado, a função usada no vídeo:
return Math.floor(Math.random() * (max - min + 1) ) + min;
primeiro calcula a diferença entre max
e min
(ou seja, o tamanho do intervalo desejado), adiciona 1 para tornar max
inclusivo, multiplica o resultado por Math.random()
para obter um número aleatório dentro desse intervalo, e então adiciona min
para deslocar o intervalo para começar em min
. O Math.floor
é usado para arredondar para baixo o número, garantindo que ele seja um número inteiro.
Então, para o seu caso, a função usada no vídeo é mais apropriada, pois ela garante que o número gerado esteja exatamente dentro do intervalo desejado.
Espero ter ajudado e bons estudos!