Anonymous user
Unbias a random generator: Difference between revisions
Updated to work with Nim 1.4: replaced "math" with "random", removed "newSeqWith", added missing parameter types, replaced "random" with "rand". Also changed output using "strformat".
Alextretyak (talk | contribs) (Added 11l) |
(Updated to work with Nim 1.4: replaced "math" with "random", removed "newSeqWith", added missing parameter types, replaced "random" with "rand". Also changed output using "strformat".) |
||
Line 1,256:
=={{header|Nim}}==
{{trans|Python}}
<lang nim>import
randomize()▼
▲randomize()
▲proc randN(n): (proc: range[0..1]) =
proc: range[0..1] = ord(random(n) == 0)▼
proc randN(n: Positive): randProc =
proc unbiased(biased: randProc): range[0..1] =
result = biased()
var that = biased()
Line 1,279 ⟶ 1,277:
var cnt0, cnt1 = 0
for x in v:
if x == 0: inc cnt0 else: inc cnt1
echo &"Biased(
▲ echo "Biased(",n,") = count1=",cnt1,", count0=",cnt0,", percent=",
v = newSeqWith(1_000_000, unbiased(biased))
Line 1,288 ⟶ 1,284:
cnt1 = 0
for x in v:
if x == 0: inc cnt0 else: inc cnt1
echo &"Unbiased
{{out}}
<pre>Biased(3) → count1 = 249654, count0 = 750346, percent = 24.965
Biased(4) →
Biased(5) →
Biased(6) →
▲ Unbiased = count1=499712, count0=500288, percent=49.971</pre>
=={{header|OCaml}}==
|