J'ai récemment vu cette question à math.SE. Cela m'a fait réfléchir. Pi pourrait-il être utilisé comme générateur de nombres aléatoires bruts? Je veux dire que les résultats sont bien connus (depuis combien de temps pi est-il calculé?), Mais Pi semble être assez aléatoire lorsqu'il est pris 1 chiffre à la fois.
Est-ce que cela a un sens?
Réponses:
Creuser à partir de http://www.befria.nu/elias/pi/binpi.html pour obtenir la valeur binaire de pi (de sorte qu'il était plus facile de convertir en octets plutôt que d'essayer d'utiliser des chiffres décimaux), puis de l'exécuter via ent J'obtiens ce qui suit pour une analyse de la distribution aléatoire des octets:
Alors oui, utiliser pi pour des données aléatoires vous donnerait des données assez aléatoires ... sachant qu'il s'agit de données aléatoires bien connues.
D'après un commentaire ci-dessus ...
J'ai donc calculé la racine carrée de 2 en binaire pour supprimer le même ensemble de problèmes. En utilisant l'itération de Wolfram, j'ai écrit un simple script perl
L'exécution de cela pour les 10 premiers correspondait à A095804, donc j'étais confiant d'avoir la séquence. La valeur v n comme lorsqu'elle est écrite en binaire avec le point binaire placé après le premier chiffre donne une approximation de la racine carrée de 2.
L'utilisation de ent contre ces données binaires produit:
la source
Eh bien, parmi d'autres propriétés d'un générateur de nombres aléatoires, vous voulez probablement que ce soit un nombre normal . Et plusieurs réponses à la question math.SE qui ont inspiré votre question soulignent qu'actuellement on pense que pi est normal, mais cela n'a pas été prouvé.
la source
Un tel générateur serait un pseudo-générateur de nombres, c'est-à-dire que, étant donné la même graine, le résultat serait toujours le même. Cela étant dit, dans la plupart des frameworks, lorsque vous utilisez le générateur de nombres aléatoires standard, il y a le même problème d'être pseudo-aléatoire.
La distribution des chiffres semble être assez similaire aux générateurs de nombres aléatoires standard¹, de sorte que les chiffres de π peuvent être utilisés pour des scénarios de génération de nombres aléatoires ordinaires.
Le problème est que l'algorithme sera probablement très lent par rapport aux générateurs de nombres aléatoires ordinaires, il n'est donc pas très utile dans la pratique.
¹ Je crois que c'est vrai, mais je n'ai aucune preuve. Il serait intéressant (et non compliqué) de faire une comparaison basée sur une grande quantité de nombres.
la source
Le caractère aléatoire des chiffres de pi (ou d'ailleurs toute autre séquence) peut être testé par des soi-disant «tests de batterie». Un test de batterie populaire est le test de batterie Diehard de George Marsaglia . Il existe également la publication spéciale NIST 800-22 qui décrit un certain nombre de ces tests et les résultats de l'application de ces tests à un certain nombre de constantes physiques, y compris - lo et voici - pi pour plus d'un million de bits. Le résultat de pi est donné à l'annexe B du rapport et ressemble à ceci:
Pi est-il un bon générateur de séquences aléatoires? Regardez les résultats ci-dessus (ou recherchez les significations de la variable de la colonne de gauche, si vous ne savez pas ce qu'ils signifient), et vérifiez si cela répond à vos besoins.
la source