Kopanie ze strony http://www.befria.nu/elias/pi/binpi.html w celu uzyskania wartości binarnej liczby pi (aby łatwiej było przekonwertować ją na bajty niż próbować używać cyfr dziesiętnych), a następnie uruchomić ją przez ent Dostaję następujące do analizy losowego rozkładu bajtów:
Entropia = 7,954093 bitów na bajt.
Optymalna kompresja zmniejszyłaby rozmiar tego pliku 4096 bajtów o 0 procent.
Rozkład chi-kwadrat dla 4096 próbek wynosi 253,00 i losowo przekroczyłby tę wartość 52,36 procent razy.
Średnia arytmetyczna bajtów danych wynosi 126,6736 (127,5 = losowo).
Wartość Monte Carlo dla Pi wynosi 3.120234604 (błąd 0,68 procent).
Współczynnik korelacji szeregowej wynosi 0,028195 (całkowicie nieskorelowany = 0,0).
Tak więc, użycie pi do losowych danych dałoby ci dość losowe dane ... wiedząc, że są to dobrze znane losowe dane.
Z powyższego komentarza ...
W zależności od tego, co robisz, ale myślę, że możesz użyć dziesiętnych pierwiastków kwadratowych z dowolnej liczby pierwszej jako generatora liczb losowych. Powinny one mieć przynajmniej równomiernie rozmieszczone cyfry. - Paxinum
Tak więc obliczyłem pierwiastek kwadratowy z 2 w postaci binarnej, aby rozwiązać ten sam zestaw problemów. Używając iteracji Wolframa napisałem prosty skrypt perla
#!/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);
Uruchomiłem to dla pierwszych 10 pasujących A095804, więc byłem pewien, że mam sekwencję. Wartość v n jak zapisana binarnie z punktem binarnym umieszczonym po pierwszej cyfrze daje przybliżenie pierwiastka kwadratowego z 2.
Użycie ent przeciwko tym danym binarnym powoduje:
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).