Certa vez ouvi dizer que a função Math.floor permite o random ser mais justo do que o Math.round, alguém sabe me confirmar essa informação e se é verdadeira?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Certa vez ouvi dizer que a função Math.floor permite o random ser mais justo do que o Math.round, alguém sabe me confirmar essa informação e se é verdadeira?
Olá Fernando tudo bem ?
Então a função Math.floor retorna o menor número inteiro dentre o número "x".
Por exemplo :
Math.floor( 45.95); // retorna o valor 45
Math.floor(-45.95); // retorna o valor -46Já o Math.round ele retorna o valor de um número arredondado para o inteiro mais proximo.
Por exemplo :
x = Math.round(20.49); // Retorna o valor 20
x = Math.round(20.5); // Retorna o valor 21
A função Math.random é responsavél em retornar um número pseudo-aleatório no intervalo [0, 1[, ou seja, de 0 (inclusivo) até, mas não incluindo, 1 (exclusivo), que depois você pode dimensionar para um intervalo desejado. A implementação seleciona uma semente para o algoritmo de geração de números aleatórios; esta semente não pode ser escolhida ou reatribuída.
Por exemplo : Gerando um número aleatório entre dois valores :
function getRandomArbitrary(min, max) {
return Math.random() * (max - min) + min;
}Este exemplo retorna um número entre dois valores definidos. O valor retornado será maior ou igual a min, e menor que max.
Gerando um número inteiro aleatório entre dois valores:
function getRandomInt(min, max) {
min = Math.ceil(min);
max = Math.floor(max);
return Math.floor(Math.random() * (max - min)) + min;
}
Este exemplo retorna um número inteiro entre dois valores definidos. O valor não poderá ser menor que min (ou do próximo inteiro maior que min, caso min não seja inteiro), e será menor (mas não igual) a max.Pode ser tentandor usar Math.round() para arredondar min e max, mas dessa maneira a aleatoriedade dos números seguiria uma distribuição não-uniforme, que talvez não seja o que você precisa.
Então você consegue ver a diferença entre as funções e os resultados que cada uma delas trás , é comum haver dúvidas em questões de valores quando utilizamos funções. =)
Bom espero ter ajudado , vou estar deixando o link disponível aqui de onde eu peguei essas informações .
link: https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/Math/floor
link: https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/Math/round
link: https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/Math/random
Se puder acesse esses links lá tem vários exemplos com a explicação de cada função e suas especificações . =)
Abraços e bons estudos!