Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Math.floor ou Math.round

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?

1 resposta
solução!

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!