RosettaCodeData/Task/Knuths-algorithm-S/11l/knuths-algorithm-s.11l

31 lines
667 B
Text
Raw Permalink Normal View History

2023-07-01 11:58:00 -04:00
T S_of_n_creator
Int n
i = 0
[Int] sample
F (n)
.n = n
F ()(item)
.i++
I .i <= .n
.sample.append(item)
E I random:(.i) < .n
.sample[random:(.n)] = item
V binarr = [0] * 10
V items = Array(0..9)
print(Single run samples for n = 3:)
V s_of_n = S_of_n_creator(3)
L(item) items
s_of_n(item)
print( Item: #. -> sample: #..format(item, s_of_n.sample))
L 100000
s_of_n = S_of_n_creator(3)
L(item) items
s_of_n(item)
L(s) s_of_n.sample
binarr[s]++
print("\nTest item frequencies for 100000 runs:\n "(enumerate(binarr).map((i, x) -> #.:#..format(i, x)).join("\n ")))