24 lines
438 B
Ruby
24 lines
438 B
Ruby
def s_of_n_creator(n)
|
|
sample = []
|
|
i = 0
|
|
Proc.new do |item|
|
|
i += 1
|
|
if i <= n
|
|
sample << item
|
|
elsif rand(i) < n
|
|
sample[rand(n)] = item
|
|
end
|
|
sample
|
|
end
|
|
end
|
|
|
|
frequency = Array.new(10,0)
|
|
100_000.times do
|
|
s_of_n = s_of_n_creator(3)
|
|
sample = nil
|
|
(0..9).each {|digit| sample = s_of_n[digit]}
|
|
sample.each {|digit| frequency[digit] += 1}
|
|
end
|
|
|
|
(0..9).each {|digit| puts "#{digit}\t#{frequency[digit]}"}
|