Lendo esta resposta a esta pergunta do SO: Por que não combinamos geradores de números aleatórios? , Isso fala sobre
PRNG de alta qualidade (Gerador de números aleatórios pseudo)
por isso me faz pensar no que constitui um PRNG de alta qualidade, presumo que você possa resumir como sendo "mais aleatório", mas
Pergunta1: Quais qualidades de um PRNG são usadas para descrever quão 'aleatório' ou 'bom' é?
Question2: Se você tem um PRNG de 'má qualidade', existe uma maneira de torná-lo com melhor qualidade?
Respostas:
Existem vários critérios para a qualidade de um PRNG:
Os dois últimos critérios estão fortemente relacionados.
Se você tiver um PRNG de baixa qualidade, poderá melhorá-lo com amplificação da dureza . Tire várias cópias do PRNG (usando diferentes teclas aleatórias) e faça XOR junto. Em muitos casos (embora não todos), isso melhorará significativamente sua qualidade.
fonte
Existem considerações práticas: Quão fácil de usar? Quão rápido? Quão fácil é produzir uma sequência diferente de números aleatórios? Quão fácil é reproduzir os números aleatórios (por exemplo, se você gerou 10 bilhões de números aleatórios, pode gerar exatamente os mesmos 10 bilhões de números aleatórios novamente?)
A grande questão: os números gerados se comportam como uma sequência de números aleatórios? O primeiro PRNG que eu já usei tinha a propriedade bizarra de dois valores consecutivos, o segundo era maior com probabilidade de cerca de 0,6. Não é muito aleatório. Assim, você pode executar todos os tipos de testes estatísticos e verificar se o seu gerador de números aleatórios se comporta de maneira aleatória. Quanto mais ele se comporta como aleatório, melhor.
E então vem a aleatoriedade criptográfica. Se eu lhe der os últimos n números aleatórios e tiver conhecimento completo de como o gerador de números aleatórios se comporta, você pode prever o próximo número aleatório? Se sim, isso o torna inadequado em situações em que você tem adversários.
fonte
Eu acrescentaria uma distribuição uniforme à lista de qualidades desejadas.
fonte