Копати з http://www.befria.nu/elias/pi/binpi.html, щоб отримати двійкове значення pi (щоб було легше конвертувати в байти, а не намагатися використовувати десяткові цифри), а потім запустити його через ent Для аналізу випадкового розподілу байтів я отримую наступне:
Ентропія = 7.954093 біт на байт.
Оптимальне стиснення зменшило б розмір цього файлу 4096 байт на 0 відсотків.
Розподіл квадратів Chi на 4096 зразків становить 253,00, і випадково перевищив би це значення в 52,36 відсотка разів.
Середнє арифметичне значення байтів даних становить 126,6736 (127,5 = випадкове).
Значення Монте-Карло для Pi становить 3,120234604 (помилка 0,68 відсотка).
Коефіцієнт послідовної кореляції становить 0,028195 (абсолютно некорельований = 0,0).
Так, так, використання pi для випадкових даних дасть вам досить випадкові дані ... розуміючи, що це добре відомі випадкові дані.
З коментаря вище ...
Залежно від того, що ви робите, але я думаю, ви можете використовувати децималі квадратного кореня будь-якого простого числа як генератор випадкових чисел. Вони повинні хоча б мати рівномірно розподілені цифри. - Паксинум
Отже, я обчислив квадратний корінь 2 у двійковій формі, щоб скористатися тим самим набором проблем. Використовуючи Ітерацію Вольфрама, я написав простий сценарій 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);
Виконуючи це протягом перших 10 збігається A095804, тому я був впевнений, що я мав послідовність. Значення v n, як записане у двійковій формі, з двійковою точкою, розміщеною після першої цифри, дає апроксимацію квадратного кореня 2.
Використання ent проти цих двійкових даних створює:
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).