Unbias a random generator: Difference between revisions

no edit summary
(Add NetRexx implementation)
No edit summary
Line 67:
</pre>
 
=={{header|Aime}}==
{{trans|C}}
<lang aime>nteger
biased(integer bias)
{
return 1 ^ min(drand(bias - 1), 1);
}
 
integer
unbiased(integer bias)
{
integer a;
 
while ((a = biased(bias)) == biased(bias)) {
}
 
return a;
}
 
integer
main(void)
{
integer b, n, cb, cu, i;
 
n = 10000;
b = 3;
while (b <= 6) {
i = 0;
cb = 0;
cu = 0;
while (i < n) {
cb += biased(b);
cu += unbiased(b);
 
i += 1;
}
 
o_text("bias ");
o_integer(b);
o_text(": ");
o_wpreal(0, 2, 3, 100r * cb / n);
o_text("% vs ");
o_wpreal(0, 2, 3, 100r * cu / n);
o_text("%\n");
o_text("");
 
b += 1;
}
 
return 0;
}</lang>
Output:<pre>bias 3: 33.51% vs 50.27%
bias 4: 24.97% vs 49.99%
bias 5: 19.93% vs 49.92%
bias 6: 16.32% vs 49.36%</pre>
 
=={{header|AutoHotkey}}==
Anonymous user