34 lines
694 B
Plaintext
34 lines
694 B
Plaintext
import "random" for Random
|
|
|
|
var r = Random.new()
|
|
|
|
var sOfNCreator = Fn.new { |n|
|
|
var s = List.filled(n, 0)
|
|
var next = 0
|
|
var m = n
|
|
return Fn.new { |item|
|
|
if (next < n) {
|
|
s[next] = item
|
|
next = next + 1
|
|
} else {
|
|
m = m + 1
|
|
if (r.int(m) < n) {
|
|
var t = r.int(n)
|
|
s[t] = item
|
|
if (next <= t) next = t + 1
|
|
}
|
|
}
|
|
return s
|
|
}
|
|
}
|
|
|
|
var freq = List.filled(10, 0)
|
|
for (r in 0...1e5) {
|
|
var sOfN = sOfNCreator.call(3)
|
|
for (d in 48...57) sOfN.call(d)
|
|
for (d in sOfN.call(57)) {
|
|
freq[d - 48] = freq[d - 48] + 1
|
|
}
|
|
}
|
|
System.print(freq)
|