Dan Kazı http://www.befria.nu/elias/pi/binpi.html pi ikili değeri elde etmek (yani oldukça ondalık basamak kullanmaya çalışmak yerine bayt dönüştürmek daha kolay olduğunu) ve daha sonra akıtarak ent Bayt rasgele dağılımının bir analizi için aşağıdakileri alıyorum:
Entropi = bayt başına 7.954093 bit.
En iyi sıkıştırma, bu 4096 bayt dosyanın boyutunu yüzde 0 oranında azaltır.
4096 örnek için ki-kare dağılımı 253.00'dır ve rasgele zamanın yüzde 52,36'sı bu değeri aşacaktır.
Veri baytlarının aritmetik ortalaması 126.6736 (127.5 = rasgele).
Pi için Monte Carlo değeri 3.120234604 (hata yüzde 0,68).
Seri korelasyon katsayısı 0.028195'tir (tamamen ilişkilendirilmemiş = 0.0).
Yani evet, rasgele veriler için pi kullanmak, oldukça iyi rastgele veriler olduğunu fark ederek ... oldukça rasgele veriler verecektir.
Yukarıdaki bir yorumdan ...
Ne yaptığınıza bağlı olarak, ancak herhangi bir asal sayının karekökü ondalık sayılarını rasgele sayı üreteci olarak kullanabilirsiniz. Bunlar en azından eşit şekilde dağılmış rakamlara sahip olmalıdır. - Paxinum
Bu yüzden, aynı problemleri çözmek için 2'nin karekökünü ikili olarak hesapladım. Wolfram'ın İterasyonunu kullanarak basit bir perl betiği yazdım.
#!/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);
Bunu ilk 10 eşleştiren A095804 için çalıştırdım, bu yüzden dizilimin olduğundan eminim. V değeri , n ilk basamak sonra yer alan ikili noktası ile ikili olarak yazılmış olduğu gibi 2 kare kökünün bir yaklaşım sağlar.
Bu ikili verilere karşı ent kullanılması aşağıdakileri sağlar:
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).