Unbias a random generator: Difference between revisions

(→‎{{header|PARI/GP}}: !@#@#%$#%^^#$%#$^$%&$@%$^)
Line 262:
5 50240
6 50277</pre>
 
=={{header|Perl}}==
<lang perl>sub randn {
my $n = shift;
return int(rand($n) / ($n - 1));
}
 
for my $n (3 .. 6) {
print "Bias $n: ";
my (@raw, @fixed);
for (1 .. 10000) {
my $x = randn($n);
$raw[$x]++;
$fixed[$x]++ if randn($n) != $x
}
print "@raw, ";
printf("%3g+-%.3g%%\tfixed: ", $raw[0]/100, 100/sqrt($raw[0]));
print "@fixed, ";
printf("%3g+-%.3g%%\n", 100*$fixed[0]/($fixed[0] + $fixed[1]), 100/sqrt($fixed[0]));
}</lang>
 
Output:<pre>Bias 3: 6615 3385, 66.15+-1.23% fixed: 2146 2283 48.4534+-2.16%
Bias 4: 7525 2475, 75.25+-1.15% fixed: 1880 1837, 50.5784+-2.31%
Bias 5: 7989 2011, 79.89+-1.12% fixed: 1573 1578, 49.9207+-2.52%
Bias 6: 8292 1708, 82.92+-1.1% fixed: 1378 1404, 49.5327+-2.69%</pre>
 
 
=={{header|PicoLisp}}==
Anonymous user