Recentemente, vi essa pergunta em math.SE. Isso me fez pensar. Pi poderia ser usado como um gerador de números aleatórios bruto? Quero dizer que os resultados são bem conhecidos (há quanto tempo o pi foi calculado até agora?), Mas o Pi parece ser bastante aleatório quando utilizado 1 dígito de cada vez.
Isso faz algum sentido?
Respostas:
Escavando de http://www.befria.nu/elias/pi/binpi.html para obter o valor binário de pi (para que fosse mais fácil converter em bytes em vez de tentar usar dígitos decimais) e depois executá-lo através de ent Eu recebo o seguinte para uma análise da distribuição aleatória dos bytes:
Então, sim, usar pi para dados aleatórios forneceria dados bastante aleatórios ... percebendo que são dados aleatórios bem conhecidos.
De um comentário acima ...
Então, calculei a raiz quadrada de 2 em binário para remover o mesmo conjunto de problemas. Usando a iteração de Wolfram, escrevi um script perl simples
Ao executar isso nos 10 primeiros A095804 correspondentes , fiquei confiante de que tinha a sequência. O valor v n como quando escrito em binário com o ponto binário colocado após o primeiro dígito fornece uma aproximação da raiz quadrada de 2.
O uso de ent nesses dados binários produz:
fonte
Bem, entre outras propriedades de um gerador de números aleatórios, você provavelmente deseja que seja um número normal . E várias respostas na pergunta math.SE que inspirou sua pergunta apontam que atualmente se acredita que pi seja normal, mas isso não foi comprovado.
fonte
Esse gerador seria um gerador de pseudo-número, ou seja, dada a mesma semente, o resultado seria sempre o mesmo. Dito isto, na maioria das estruturas, quando você usa o gerador de números aleatórios padrão, existe o mesmo problema de ser pseudo-aleatório.
A distribuição dos dígitos parece ser bastante semelhante aos geradores de números aleatórios padrão¹; portanto, os dígitos de π podem ser usados para cenários comuns de geração de números aleatórios.
A questão é que o algoritmo provavelmente será muito lento, comparado aos geradores de números aleatórios comuns, portanto, não é muito útil na prática.
¹ Eu acredito que é verdade, mas não tenho nenhuma prova. Seria interessante (e não complicado) fazer uma comparação com base em uma grande quantidade de números.
fonte
A aleatoriedade dos dígitos de pi (ou, por outro lado, de qualquer outra sequência) pode ser comprovadamente testada pelos chamados "testes de bateria". Um teste de bateria popular é o Diehard Battery Test de George Marsaglia . Há também a publicação Especial NIST 800-22, que descreve vários desses testes e os resultados da aplicação desses testes a várias constantes físicas, incluindo - lo e eis - pi por mais de um milhão de bits. O resultado de pi é dado no Apêndice B do relatório e tem a seguinte aparência:
Pi é um bom gerador de sequência aleatória? Observe os resultados acima (ou pesquise os significados da variável da coluna da esquerda, se você não tem idéia do que eles significam) e verifique se ela atende às suas necessidades.
fonte