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

Dúvida sobre o código para gerar o número aleatório

Antes de assistir a parte do vídeo desse código eu tentei colocar o seguinte código e aparentemente tinha dado certo return parseInt(Math.random() * (max - min) + min), daria no mesmo que o código posteriormente mostrado: return Math.floor(Math.random() * (max - min + 1)) + min?

2 respostas
solução!

Olá, Paulo! Entendo sua dúvida e acho muito legal que você esteja explorando alternativas de código!

O código que você tentou return parseInt(Math.random() * (max - min) + min) e o código mostrado na aula return Math.floor(Math.random() * (max - min + 1)) + min são parecidos, mas têm diferenças sutis que podem afetar o resultado.

  1. parseInt(): Esta função converte o valor que recebe em um número inteiro. Se o valor for um número flutuante, ele simplesmente descarta a parte decimal. Por exemplo, parseInt(1.9) retornará 1.

  2. Math.floor(): Esta função arredonda o número para baixo até o número inteiro mais próximo. Por exemplo, Math.floor(1.9) também retornará 1.

Então, à primeira vista, pode parecer que parseInt() e Math.floor() fazem a mesma coisa. No entanto, a diferença crucial aqui é como eles lidam com números negativos. Por exemplo, parseInt(-1.9) retornará -1, enquanto Math.floor(-1.9) retornará -2. Isso ocorre porque Math.floor() sempre arredonda para baixo, enquanto parseInt() simplesmente descarta a parte decimal.

No entanto, no contexto do seu código, essa diferença provavelmente não será perceptível, pois você está lidando com números aleatórios que são sempre positivos.

Outra diferença é o +1 em (max - min + 1). Isso garante que o valor max seja incluído como um possível resultado. Sem o +1, o valor max nunca seria retornado pela função.

Espero ter ajudado e bons estudos!

Bom saber disso, eu ainda não tinha aprendido o que cada um fazia exatamente, só por cima mesmo, e sobre esse +1 eu esqueci de colocar ( a importância de revisar os códigos) kksksk mas sabia da importância dele, agradeço a ajuda.