Unbias a random generator: Difference between revisions

m
 
(3 intermediate revisions by 3 users not shown)
Line 573:
5: 19.958% 49.987%
6: 16.660% 49.890%</pre>
 
=={{header|EasyLang}}==
{{trans|Java}}
<syntaxhighlight>
func biased n .
return if randomf < 1 / n
.
func unbiased n .
repeat
a = biased n
b = biased n
until a <> b
.
return a
.
m = 50000
for n = 3 to 6
c1 = 0
c2 = 0
for i to m
c1 += biased n
c2 += unbiased n
.
print n & ": " & 100 * c1 / m & " " & 100 * c2 / m
.
</syntaxhighlight>
{{out}}
<pre>
3: 33.10 50.14
4: 25.03 50.14
5: 19.81 50.04
6: 16.75 49.83
</pre>
 
=={{header|Elena}}==
{{trans|C#}}
ELENA 46.x :
<syntaxhighlight lang="elena">import extensions;
Line 601 ⟶ 634:
public program()
{
for(int n := 3,; n <= 6,; n += 1)
{
int biasedZero := 0;
Line 608 ⟶ 641:
int unbiasedOne := 0;
for(int i := 0,; i < 100000,; i += 1)
{
if(n.randN()) { biasedOne += 1 } else { biasedZero += 1 };
Line 2,324 ⟶ 2,357:
{{trans|Kotlin}}
{{libheader|Wren-fmt}}
<syntaxhighlight lang="ecmascriptwren">import "random" for Random
import "./fmt" for Fmt
 
var rand = Random.new()
1,995

edits