32 lines
533 B
CoffeeScript
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]
|