Unbias a random generator: Difference between revisions
Content added Content deleted
(Added Kotlin) |
m (→{{header|Nim}}) |
||
Line 1,081: | Line 1,081: | ||
template newSeqWith(len: int, init: expr): expr = |
template newSeqWith(len: int, init: expr): expr = |
||
var result {.gensym.} = newSeq[type(init)](len) |
var result {.gensym.} = newSeq[type(init)](len) |
||
for i in 0 |
for i in 0..<len: |
||
result[i] = init |
result[i] = init |
||
result |
|||
proc randN(n): (proc: range[0..1]) = |
proc randN(n): (proc: range[0..1]) = |
||
proc: range[0..1] = ord(random(n) == 0) |
|||
if random(n) == 0: 1 else: 0 |
|||
proc unbiased(biased): range[0..1] = |
proc unbiased(biased): range[0..1] = |
||
result = biased() |
|||
var that = biased() |
|||
while result == that: |
|||
result = biased() |
|||
that = biased() |
that = biased() |
||
return this |
|||
for n in 3..6: |
for n in 3..6: |