Olá, Adriano! Como vai? Espero que bem!
Primeiramente, parabéns pelo resultado na resolução do desafio, ficou ótimo!
Agora sobre a pergunta, a resposta é: depende do que você quer fazer.
No caso do seu código, usando Math.round
, você está arredondando o número aleatório gerado para o inteiro mais próximo. Isso significa que o valor mínimo e máximo que você definiu tem menos chances de serem sorteados, porque Math.round
arredonda para baixo se a parte fracionária é 0.5 ou menos, e para cima se é mais do que 0.5.
Por exemplo, se você quiser um número aleatório entre 1 e 3 (inclusive), usando Math.round
, você terá:
- 33% de chance de obter 1 (quando o número aleatório é entre 1 e 1.5)
- 33% de chance de obter 2 (quando o número aleatório é entre 1.5 e 2.5)
- 33% de chance de obter 3 (quando o número aleatório é entre 2.5 e 3)
No entanto, se você usar Math.floor
, a distribuição será uniforme, e você terá:
- 33% de chance de obter 1 (quando o número aleatório é entre 1 e 2)
- 33% de chance de obter 2 (quando o número aleatório é entre 2 e 3)
- 33% de chance de obter 3 (quando o número aleatório é entre 3 e 4)
Portanto, se você quer uma distribuição uniforme, é melhor usar Math.floor
. Se você quiser que os números do meio sejam mais prováveis, você pode usar Math.round
.
Espero ter ajudado e bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.