31 lines
667 B
Text
31 lines
667 B
Text
|
|
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 ")))
|