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?
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 -46
Já 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!