Scavando da link per ottenere il valore binario di pi (in modo che fosse più facile convertirlo in byte invece di provare a utilizzare cifre decimali) e quindi eseguirlo attraverso ent ottengo il seguente risultato per un'analisi della distribuzione casuale di i byte:
Entropy = 7.954093 bits per byte.
Optimum compression would reduce the size of this 4096 byte file by 0
percent.
Chi square distribution for 4096 samples is 253.00, and randomly would
exceed this value 52.36 percent of the times.
Arithmetic mean value of data bytes is 126.6736 (127.5 = random).
Monte Carlo value for Pi is 3.120234604 (error 0.68 percent).
Serial
correlation coefficient is 0.028195 (totally uncorrelated = 0.0).
Quindi sì, usare pi per dati casuali ti darebbe dati abbastanza casuali ... rendendoti conto che si tratta di dati casuali ben noti.
Da un commento sopra ...
Depending on what you are doing, but I think you can use the decimals
of the square root of any prime number as a random number generator.
These should at least have evenly distributed digits. – Paxinum
Quindi, ho calcolato la radice quadrata di 2 in binario per eliminare lo stesso insieme di problemi. Usando Wolfram's Iteration ho scritto un semplice 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);
Eseguendo ciò per i primi 10 abbinati A095804 così ero fiducioso di avere la sequenza. Il valore v n come quando è scritto in binario con il punto binario posto dopo la prima cifra fornisce un'approssimazione della radice quadrata di 2.
L'uso di ent contro questo dato binario produce:
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).