Unbias a random generator: Difference between revisions
Content added Content deleted
m (→{{header|Java}}: Typo in output) |
(Added PicoLisp) |
||
Line 106: | Line 106: | ||
Unbiased 1 percentage: 49.3 |
Unbiased 1 percentage: 49.3 |
||
Unbiased 0 percentage: 50.7</pre> |
Unbiased 0 percentage: 50.7</pre> |
||
=={{header|PicoLisp}}== |
|||
<lang PicoLisp>(de randN (N) |
|||
(if (= 1 (rand 1 N)) 1 0) ) |
|||
(de unbiased (N) |
|||
(use (A B) |
|||
(while |
|||
(= |
|||
(setq A (randN N)) |
|||
(setq B (randN N)) ) ) |
|||
A ) )</lang> |
|||
Test: |
|||
<lang PicoLisp>(for N (range 3 6) |
|||
(tab (2 1 7 2 7 2) |
|||
N ":" |
|||
(format |
|||
(let S 0 (do 10000 (inc 'S (randN N)))) |
|||
2 ) |
|||
"%" |
|||
(format |
|||
(let S 0 (do 10000 (inc 'S (unbiased N)))) |
|||
2 ) |
|||
"%" ) )</lang> |
|||
Output: |
|||
<pre> 3: 33.21 % 50.48 % |
|||
4: 25.06 % 49.79 % |
|||
5: 20.04 % 49.75 % |
|||
6: 16.32 % 49.02 %</pre> |
|||
=={{header|Python}}== |
=={{header|Python}}== |