Durchsuchen Sie http://www.befria.nu/elias/pi/binpi.html , um den Binärwert von pi zu erhalten (damit es einfacher war, in Bytes zu konvertieren, als Dezimalstellen zu verwenden) und führen Sie ihn dann durch ent Für eine Analyse der zufälligen Verteilung der Bytes bekomme ich folgendes:
Entropie = 7,954093 Bits pro Byte.
Eine optimale Komprimierung würde die Größe dieser 4096-Byte-Datei um 0 Prozent verringern.
Die Chi-Quadrat-Verteilung für 4096 Stichproben beträgt 253,00 und würde diesen Wert in 52,36 Prozent der Fälle zufällig überschreiten.
Der arithmetische Mittelwert der Datenbytes beträgt 126,6736 (127,5 = zufällig).
Der Monte-Carlo-Wert für Pi beträgt 3,120234604 (Fehler 0,68 Prozent).
Der serielle Korrelationskoeffizient beträgt 0,028195 (völlig unkorreliert = 0,0).
Also ja, wenn Sie pi für zufällige Daten verwenden, erhalten Sie ziemlich zufällige Daten ... und erkennen, dass es sich um bekannte zufällige Daten handelt.
Aus einem Kommentar oben ...
Abhängig davon, was Sie tun, können Sie jedoch die Dezimalstellen der Quadratwurzel einer beliebigen Primzahl als Zufallsgenerator verwenden. Diese sollten mindestens gleichmäßig verteilte Ziffern haben. - Paxinum
Also habe ich die Quadratwurzel von 2 in binär berechnet, um die gleichen Probleme zu lösen. Mit Wolframs Iteration habe ich ein einfaches Perl-Skript geschrieben
#!/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äuft dies für die ersten 10 übereinstimmenden A095804, so war ich zuversichtlich, dass ich die Sequenz hatte. Der Wert v n, wie er binär geschrieben ist, wobei der Binärpunkt nach der ersten Ziffer liegt, ergibt eine Annäherung an die Quadratwurzel von 2.
Die Verwendung von ent gegen diese Binärdaten erzeugt:
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).