2
respostas

[Dúvida] Usei outra função

Eu usei:

    var numeroSelecionado = Math.random() * (max - min) + min;
    
    return numeroSelecionado.toFixed(0);

Ao em vez de usar o que a professora sugeriu, mas ao colocar +1, o número retornado não respeitava o intervalo. Poderia me explicar o motivo?

2 respostas

Oi, Pedro! Tudo bem?

A necessidade de colocarmos o "+1" ocorre pois a função Math.random() gera um número aleatório entre 0 (inclusive) e 1 (exclusive), ou seja, ela gera um número entre 0 e 0,99999..., por isso precisamos adicionar 1 para conseguirmos incluir o valor máximo no intervalo de números possíveis.

Quando multiplicamos esse número aleatório pela diferença entre o máximo e o mínimo (max - min), estamos efetivamente "esticando" esse intervalo para corresponder à diferença entre o seu mínimo e máximo. Somado a isso, quando adicionamos o mínimo (+ min), estamos "deslocando" esse intervalo para começar no seu valor mínimo. No entanto, sem o "+1", o valor máximo nunca será alcançado, porque Math.random() nunca retorna 1.

É importante pontuar também que estamos usando Math.floor() para arredondar o número para baixo, garantindo que ele seja um número inteiro.

Espero ter ajudado! Caso tenha ficado alguma dúvida, sinta-se à vontade em comunicar, estou à disposição!

Um forte abraço e bons estudos!

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

Entendi, eu usei .toFized(0) que aprendi em outro curso. Sem o +1 ele retorna o valor máximo, mas com o +1 ele retorna um valor superior ao máximo. Ex: o máximo é 2, ele, às vezes, retorna 3

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software