Unbias a random generator: Difference between revisions
Content added Content deleted
m (→{{header|REXX}}: used a consistant style of alternating types of quoted strings.) |
|||
Line 77: | Line 77: | ||
biased(integer bias) |
biased(integer bias) |
||
{ |
{ |
||
1 ^ min(drand(bias - 1), 1); |
|||
} |
} |
||
Line 88: | Line 88: | ||
} |
} |
||
a; |
|||
} |
} |
||
Line 99: | Line 99: | ||
b = 3; |
b = 3; |
||
while (b <= 6) { |
while (b <= 6) { |
||
i = 0; |
i = cb = cu = 0; |
||
while ((i += 1) <= n) { |
|||
cu = 0; |
|||
while (i < n) { |
|||
cb += biased(b); |
cb += biased(b); |
||
cu += unbiased(b); |
cu += unbiased(b); |
||
i += 1; |
|||
} |
} |
||
o_form("bias ~: /d2p2/%% vs /d2p2/%%\n", b, 100r * cb / n, |
o_form("bias ~: /d2p2/%% vs /d2p2/%%\n", b, 100r * cb / n, |
||
100r * cu / n); |
|||
b += 1; |
b += 1; |
||
} |
} |
||
0; |
|||
}</lang> |
}</lang> |
||
Output:<pre>bias 3: 33.51% vs 50.27% |
Output:<pre>bias 3: 33.51% vs 50.27% |