Pseudo-Random-Random-Generator à partir d'un nombre normal calculable
Question
N’est-il pas facilement possible de construire un PRNG de cette manière? Pourquoi n'est-ce pas fait?
Autant que je sache, nous pourrions simplement avoir un PRNG qui prend une graine n. Lorsque vous demandez un bit aléatoire, il prend le nième chiffre du développement binaire du nombre normal calculable et incrémente n.
Ma première pensée a été que nous n’avions peut-être pas trouvé de nombre normal calculable, mais nous
La solution
Cela rendrait très simple la prévision de la sortie.
Disons, par exemple, que vous générez l'entier 0x54a30b7f. Si vous avez 4 Go de pi (ou un bruit aléatoire ou un nombre normal réel), il est probable qu'il n'y aura qu'une occurrence (ou peut-être une poignée) de cet entier particulier et je peux prédire avec une probabilité raisonnablement élevée tous les nombres futurs. Il s’agit d’un problème grave dans le cas de PRNG extrêmement puissants. Si, au lieu d’un simple balayage séquentiel, vous utilisez une fonction, je dois simplement suivre la fonction qui, si elle est assez difficile à suivre, se transforme en un PRNG à part entière.
Si vous n'êtes pas préoccupé par la force cryptographique de votre générateur, il existe des moyens beaucoup plus compacts de générer des nombres aléatoires. Mersenne Twister , par exemple, a une période beaucoup plus longue sans nécessiter de table de recherche 4GiB.