Menggali dari http://www.befria.nu/elias/pi/binpi.html untuk mendapatkan nilai biner dari pi (sehingga lebih mudah untuk diubah menjadi byte daripada mencoba untuk menggunakan angka desimal) dan kemudian menjalankannya melalui ent Saya mendapatkan yang berikut ini untuk analisis distribusi acak byte:
Entropy = 7,954093 bit per byte.
Kompresi optimal akan mengurangi ukuran file 4096 byte ini sebesar 0 persen.
Distribusi chi square untuk 4.096 sampel adalah 253,00, dan secara acak akan melebihi nilai ini 52,36 persen dari waktu.
Nilai rata-rata aritmatika dari byte data adalah 126,6736 (127,5 = acak).
Nilai Monte Carlo untuk Pi adalah 3.120234604 (kesalahan 0,68 persen).
Koefisien korelasi serial adalah 0,028195 (sama sekali tidak berkorelasi = 0,0).
Jadi ya, menggunakan pi untuk data acak akan memberikan Anda data yang cukup acak ... menyadari bahwa itu adalah data acak yang terkenal.
Dari komentar di atas ...
Tergantung pada apa yang Anda lakukan, tapi saya pikir Anda dapat menggunakan desimal dari akar kuadrat dari bilangan prima apa pun sebagai pembangkit bilangan acak. Ini setidaknya harus memiliki angka yang didistribusikan secara merata. - Paxinum
Jadi, saya menghitung akar kuadrat dari 2 dalam biner untuk mengungkap set masalah yang sama. Dengan menggunakan Iterasi Wolfram, saya menulis skrip perl sederhana
#!/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);
Menjalankan ini untuk 10 pertama yang cocok dengan A095804 jadi saya yakin saya memiliki urutannya. Nilai v n seperti ketika ditulis dalam biner dengan titik biner ditempatkan setelah digit pertama memberikan perkiraan akar kuadrat dari 2.
Menggunakan ent terhadap data biner ini menghasilkan:
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).