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:
Entropie = 7,954093 bits par octet.
Une compression optimale réduirait la taille de ce fichier de 4096 octets de 0%.
La distribution du chi carré pour 4096 échantillons est de 253,00, et dépasserait au hasard cette valeur 52,36% du temps.
La valeur arithmétique moyenne des octets de données est de 126,6736 (127,5 = aléatoire).
La valeur de Monte Carlo pour Pi est de 3.120234604 (erreur 0,68%).
Le coefficient de corrélation en série est de 0,028195 (totalement non corrélé = 0,0).
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 ...
Selon ce que vous faites, mais je pense que vous pouvez utiliser les décimales de la racine carrée de tout nombre premier comme générateur de nombres aléatoires. Ceux-ci devraient au moins avoir des chiffres uniformément répartis. - Paxinum
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
#!/usr/bin/perl
use strict;
use Math::BigInt;
my $u = Math::BigInt->new("2");
my $v = Math::BigInt->new("0");
my $i = 0;
while(1) {
my $unew;
my $vnew;
if($u->bcmp($v) != 1) { # $u <= $v
$unew = $u->bmul(4);
$vnew = $v->bmul(2);
} else {
$unew = ($u->bsub($v)->bsub(1))->bmul(4);
$vnew = ($v->badd(2))->bmul(2);
}
$v = $vnew;
$u = $unew;
#print $i," ",$v,"\n";
if($i++ > 10000) { last; }
}
open (BITS,"> bits.txt");
print BITS $v->as_bin();
close(BITS);
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:
Entropy = 7.840501 bits per byte.
Optimum compression would reduce the size
of this 1251 byte file by 1 percent.
Chi square distribution for 1251 samples is 277.84, and randomly
would exceed this value 15.58 percent of the times.
Arithmetic mean value of data bytes is 130.0616 (127.5 = random).
Monte Carlo value for Pi is 3.153846154 (error 0.39 percent).
Serial correlation coefficient is -0.045767 (totally uncorrelated = 0.0).