RosettaCodeData/Task/Unbias-a-random-generator/Ring/unbias-a-random-generator.ring
2016-12-05 23:44:36 +01:00

19 lines
382 B
Text

for n = 3 to 6
biased = 0
unb = 0
for i = 1 to 10000
biased += randN(n)
unb += unbiased(n)
next
see "N = " + n + " : biased = " + biased/100 + "%, unbiased = " + unb/100 + "%" + nl
next
func unbiased nr
while 1
a = randN(nr)
if a != randN(nr) return a ok
end
func randN m
m = (random(m) = 1)
return m