Articles

Como usar a matemática JavaScript.random () como um gerador de Números Aleatórios

Posted by admin

muitas vezes ao desenvolver projetos, você vai encontrar-se à procura de formas de gerar números aleatórios.

os casos de uso mais comuns para gerar números aleatórios são jogos de azar como dados rolantes, baralhar cartas de jogo e roleta giratória.

neste guia, irá aprender a gerar um número aleatório usando o método Math.random() construindo um mini jogo de dados.

a matemática.,random () method

The Math object in JavaScript is a built-in object that has properties and methods for performing mathematical calculations.

a common use of the Math object is to create a random number using therandom() method.

const randomValue = Math.random();

But theMath.random() method doesn’t actually return a whole number. Em vez disso, devolve um valor de vírgula flutuante entre 0 (inclusive) e 1 (exclusivo)., Além disso, note que o valor retornado de Math.random() é pseudo-aleatório por natureza.

números aleatórios gerados por Math.random() podem parecer aleatórios, mas esses números irão se repetir e eventualmente exibir um padrão não-Aleatório ao longo de um período de tempo.

isto é porque a geração algorítmica aleatória de números nunca pode ser verdadeiramente aleatória na natureza. É por isso que os chamamos de geradores de números pseudo-aleatórios (PRNGs).

para saber mais sobre o método Math.random() pode consultar este guia.,

Função Gerador de Números Aleatórios

Agora vamos usar o método Math.random() para criar uma função que irá retornar um inteiro aleatório entre dois valores (inclusive).

const getRandomNumber = (min, max) => { return Math.floor(Math.random() * (max - min + 1)) + min;};

Let’s break down the logic here.

O método Math.random() devolve um número de vírgula flutuante entre 0 e 1 (exclusivo).

assim, os intervalos seriam os seguintes:

[0 .................................... 1)[min .................................... max)

para factor o segundo intervalo, subtrai min de ambas as extremidades. Isso lhe daria um intervalo entre 0 e max-min.,

[0 .................................... 1)[0 .................................... max - min)

Então, agora, para obter um valor aleatório, você deve fazer o seguinte:

const x = Math.random() * (max - min)

Aqui x é o valor aleatório.

actualmente, max está excluído do intervalo. Para torná-lo inclusivo, adicionar 1. Além disso, você precisa adicionar o min de volta que foi subtraído anteriormente para obter um valor entre [min, max).

const x = Math.random() * (max - min + 1) + min

tudo bem, então agora o último passo restante é garantir que x é sempre um inteiro.,

const x = Math.floor(Math.random() * (max - min + 1)) + min

você poderia usar o Math.round() método em vez de floor(), mas isso dar-lhe-ia uma distribuição não uniforme. Isto significa que ambos max e min terão meia chance de sair como resultado. Usando Math.floor() dar-lhe-á uma distribuição perfeitamente uniforme.

então agora que você tem uma compreensão justa de como uma geração aleatória funciona, vamos usar esta função para simular dados rolantes.,

o jogo de dados rolantes

nesta secção, vamos criar um mini jogo de dados realmente simples. Dois jogadores digitam o seu nome e lançam os dados. O jogador cujos dados têm um número maior ganhará a rodada.

Primeiro, crie uma função rollDice que simula a ação para rolar os dados.

Dentro do corpo da função, chamada de getRandomNumber() função 1 e 6 como argumentos. Isto dar-lhe-á qualquer número aleatório entre 1 e 6 (ambos inclusivos), tal como a forma como os dados reais funcionariam.,

const rollDice = () => getRandomNumber(1, 6);

em seguida, crie dois campos de entrada e um botão, como mostrado abaixo:

Quando o ‘Roll Dice’ botão é clicado, tem o jogador de nomes de campos de entrada e chame o rollDice() função de cada jogador.

Você pode validar os campos de nome dos jogadores e aperfeiçoar a marcação com algum CSS. Para ser breve, estou a manter as coisas simples para este guia.é isso. Podes ver a demo aqui.

Conclusion

So generating random numbers in JavaScript is not so random after all., Tudo o que estamos fazendo é pegar alguns números de entrada, usar alguma matemática, e cuspir um número pseudo-aleatório.

para a maioria das aplicações e jogos baseados em navegador, esta aleatoriedade é suficiente e serve o seu propósito. é tudo para este guia. Mantém-te em segurança e continua a codificar como uma besta.

Leave A Comment