Pular para o conteúdo principal
CalcMax

Gerador de números aleatórios

Intervalo: 1 – 200

Intervalo: 0 – 4.294.967.295

Resultado

63, 1, 53, 99, 97

Números sorteados

Valores possíveis
100
Chance de pelo menos um número repetido
9,65%

Um gerador de números aleatórios transforma um ponto de partida numa lista de números inteiros dentro de um intervalo que você define. Este aqui recebe um intervalo, quantos números você quer e a semente aleatória de onde começar, e devolve exatamente essa quantidade de inteiros — os mesmos toda vez que você usar a mesma semente, que é o que faz de uma lista algo que você pode entregar a outra pessoa e ela reproduzir. Desligue as repetições e o resultado passa a ser uma seleção em vez de uma sequência, de modo que nenhum valor pode sair duas vezes; deixe as repetições permitidas e os números são sorteios independentes, que é o modelo honesto para um dado, um globo de loteria ou uma lista embaralhada que pode repetir. O painel informa ainda quantos valores diferentes o intervalo tem e qual seria a chance de repetição se as repetições fossem permitidas.

Fórmula

próximo = (state + 0x6D2B79F5) misturado por multiplicação e deslocamento → valor = minimum + ⌊próximo × (maximum − minimum + 1)⌋

seed
O estado inicial do gerador, qualquer número inteiro de 0 a 4.294.967.295. Ele não é uma fonte de aleatoriedade por si só — é o ponto em que a sequência começa, e é exatamente por isso que a mesma semente dá sempre a mesma lista
state
O estado corrente, atualizado uma vez por número. A atualização mistura o estado com uma constante fixa e alguns passos de multiplicação e deslocamento; a mistura é o que faz valores consecutivos parecerem sem relação entre si, e é o passo que quebraria primeiro se fosse simplificado
minimum, maximum
Os extremos do intervalo, ambos incluídos. A largura do intervalo é aquilo pelo que a fração é escalada, então todo número inteiro dentro dele tem a mesma chance
⌊ ⌋
Arredondar para baixo. O gerador produz uma fração em [0, 1) e a função piso a transforma em um dos números inteiros do intervalo
count
Quantos números produzir, até 200. Com as repetições desligadas ele não pode passar da largura do intervalo, porque uma seleção não pode ser mais longa do que o conjunto de onde ela vem

Use quando você precisar de uma lista em vez de um número só: uma amostra para conferir à mão, um conjunto de casos de teste que precisa ser o mesmo em toda execução, um sorteio que você quer poder refazer na frente de uma plateia, ou dados de exemplo. A possibilidade de fixar a semente é o motivo de preferir isto à função aleatória que a sua linguagem traz — uma semente transforma um resultado avulso em algo que você pode compartilhar, conferir de novo e discutir. Recorra a ele com as repetições desligadas quando o mesmo item não puder aparecer duas vezes, que é o formato de um sorteio de loteria, de uma amostra aleatória de uma lista e de uma ordem embaralhada. Duas coisas para as quais ele não serve: não é uma fonte de números imprevisíveis, então nada que precise ser indecifrável pertence aqui; e não substitui uma amostra aleatória estatística de uma população real, porque ele não sabe nada sobre a população, só sobre o intervalo.

Exemplos resolvidos

  1. Cinco números de 1 a 100, e os mesmos cinco de novo

    1. O intervalo de 1 a 100 contém 100 valores diferentes, então cada sorteio é um entre 100
    2. A semente 1 fixa o estado inicial; cada um dos cinco números o atualiza uma vez
    3. Arredondando cada fração para baixo dentro de 1 a 100 chega-se a 63, 1, 53, 99 e 97 nessa ordem

    Esses cinco números não são coincidência nem uma tabela guardada: são o que a semente 1 produz, e digitar 1 de novo no campo da semente os reproduz exatamente. Repare que os 9,65% são uma afirmação sobre o intervalo e a quantidade, e não sobre este sorteio em particular — com cinco sorteios entre cem valores existe um pouco menos de uma chance em dez de que dois deles coincidam, independentemente de quaisquer dois desta lista coincidirem ou não. Mudar a semente para 7 dá uma lista completamente diferente e deixa essa porcentagem intacta, que é o jeito mais limpo de ver qual parte do painel é aleatória e qual parte é aritmética.

  2. Seis números de 1 a 49 com repetições proibidas

    1. O conjunto tem 49 valores e seis deles são sorteados sem reposição
    2. Cada novo número é sorteado de novo até ser um que o conjunto ainda não entregou, e é por isso que um valor nunca pode aparecer duas vezes
    3. Lendo a lista na ordem em que foi produzida chega-se a 23, 16, 33, 31, 8 e 11

    Desligar as repetições não muda os 27,26%, e é esse o sentido de informá-los ao lado deste exemplo: é a chance de que seis sorteios entre 49 teriam colidido se as repetições fossem permitidas, e ela é a mesma quer você as tenha proibido ou não. É também o que torna um sorteio sem repetição caro em contagens grandes — com 49 valores e 6 sorteios, mais de um quarto dos sorteios irrestritos repetiria alguma coisa, e em 23 sorteios entre 365 o número passa da metade. Os números ficam na ordem em que foram sorteados em vez de ordenados, para que a mesma semente e os mesmos ajustes sempre reproduzam a mesma lista.

  3. Um intervalo com um único valor dentro

    1. O intervalo contém exatamente um valor, então todo sorteio é esse valor
    2. A chance de repetição é a chance de quatro sorteios colidirem, e com um conjunto de um eles precisam colidir
    3. O resultado é 7, 7, 7 e 7

    Este é o limite em que o gerador deixa de ser aleatório e vira uma constante, e vale ter isso em mente porque é o único caso em que a saída é totalmente previsível antes de você apertar qualquer coisa. Ele marca também a fronteira do modo sem repetição: com o mesmo intervalo, pedir dois números sem repetição é um pedido impossível, e não uma lista curta, e a página diz isso em vez de devolver um número em silêncio.

Limitações

Estes números não servem para nada que precise ser indecifrável. O gerador é uma pequena sequência aritmética semeada, rápida, do tipo que vem embutido em software comum: dada a semente, qualquer pessoa reproduz a lista inteira e, dados alguns valores dela, o resto pode ser descoberto. Isso o desqualifica para senhas, chaves, tokens, códigos de uso único, loterias com dinheiro envolvido e qualquer outra coisa em que um participante não possa prever nem reconstruir o sorteio. Para esses casos, uma fonte aleatória criptográfica é a única resposta correta. A chance de repetição também não é uma afirmação sobre a lista que você está olhando: é a probabilidade de que um sorteio daquele tamanho, tirado daquele conjunto, contenha ao menos uma colisão, calculada como se os sorteios fossem independentes e uniformes, e ela é informada quer as repetições tenham sido permitidas ou não. O sentido prático dela é o que pega as pessoas — uma colisão só precisa de mais ou menos a raiz quadrada do tamanho do conjunto para se tornar provável, então 23 sorteios entre 365 datas já passam da chance de um em dois. E a contagem é limitada a 200 por execução, com o modo sem repetição impossível assim que a contagem passa do tamanho do conjunto.

Perguntas frequentes

Estes números são seguros para usar numa loteria, numa senha ou num token de segurança?
Não. Este gerador é uma pequena sequência aritmética semeada, do tipo que o software comum usa, e não um gerador criptográfico: a partir da semente, a lista inteira pode ser reproduzida e, a partir de alguns dos seus valores, o resto pode ser descoberto. Qualquer coisa em que um participante não possa prever nem reconstruir o resultado — loterias com dinheiro envolvido, senhas, chaves, tokens, códigos de uso único — precisa de uma fonte aleatória criptográfica. Para sorteios, amostras, jogos e dados de teste, em que a reprodutibilidade é uma qualidade e não um vazamento, ele é a ferramenta certa.
Para que serve a semente, e por que recebo os mesmos números toda vez?
A semente é o estado de onde a sequência parte, então a mesma semente sempre produz a mesma lista. Isso é deliberado: torna o resultado reprodutível, que é o que você quer quando precisa entregar uma amostra a outra pessoa, refazer um sorteio na frente de uma plateia ou impedir que um caso de teste se desloque. Mude a semente e você recebe uma lista diferente com os mesmos ajustes. Se você quer que os números sejam diferentes a cada vez, mude a semente entre uma execução e outra — o valor que você digita fica registrado junto com o resultado, então uma lista de que você gostou sempre pode ser recuperada.
Por que repetições ainda podem aparecer quando elas são permitidas?
Porque cada sorteio é independente. Com as repetições permitidas, cada posição escolhe um dos valores do intervalo sem levar em conta o que as outras posições escolheram, que é o modelo honesto para um dado ou para um globo de loteria que devolve a bola. A chance de repetição no painel é exatamente a probabilidade de que ao menos um par colida — cerca de 9,65% para cinco sorteios entre cem valores, e mais de 50% quando você sorteia 23 valores entre 365. Desligue as repetições quando o mesmo valor não puder aparecer duas vezes, que é o formato de um sorteio, de uma amostra de uma lista ou de uma ordem embaralhada.
A chance de repetição diminui se eu proibir as repetições?
Não, e o painel continua mostrando o mesmo número de propósito. Ele responde à pergunta que você de fato está fazendo quando aciona esse ajuste: quão provável uma colisão teria sido se as repetições fossem permitidas. Para seis números de 1 a 49 isso é 27,26%, então proibir as repetições remove um risco real, e não teórico. É também o que explica por que um sorteio sem repetição fica lento e acaba impossível em contagens grandes — assim que a contagem passa do número de valores do intervalo não existe resposta válida nenhuma, e a página informa isso em vez de devolver uma lista mais curta.
Quantos números posso gerar de uma vez e em que intervalo?
Até 200 números por execução, e os extremos do intervalo precisam ser números inteiros, com o mínimo não maior que o máximo. Os valores em si podem ser negativos, então um intervalo de −50 a 50 é válido. Extremos não inteiros são recusados em vez de arredondados: com as repetições proibidas, sortear de um intervalo que contém frações tornaria a regra de não repetir uma condição vazia, e uma lista que parece plausível enquanto ignora em silêncio o próprio ajuste é pior do que uma mensagem de erro.
Os números estão ordenados?
Não — eles são impressos na ordem em que foram sorteados, e essa ordem faz parte do resultado. Ordenar jogaria fora a informação que a mesma semente deve reproduzir, e isso importa em qualquer coisa em que a posição tenha significado, como distribuir uma ordem embaralhada ou dar uma mão de cartas. Se você quer uma seleção ordenada, ordene a lista por conta própria depois de copiá-la; o sorteio em si continua fiel à sequência que a semente produziu.

Referências

Calculadoras relacionadas