RosettaCodeData/Task/Knuths-algorithm-S/CoffeeScript/knuths-algorithm-s-1.coffee

32 lines
533 B
CoffeeScript

s_of_n_creator = (n) ->
arr = []
cnt = 0
(elem) ->
cnt += 1
if cnt <= n
arr.push elem
else
pos = Math.floor(Math.random() * cnt)
if pos < n
arr[pos] = elem
arr.sort()
sample_size = 3
range = [0..9]
num_trials = 100000
counts = {}
for digit in range
counts[digit] = 0
for i in [1..num_trials]
s_of_n = s_of_n_creator(sample_size)
for digit in range
sample = s_of_n(digit)
for digit in sample
counts[digit] += 1
for digit in range
console.log digit, counts[digit]