33 lines
690 B
V
33 lines
690 B
V
import rand
|
|
import rand.seed
|
|
fn s_of_ncreator(n int) fn(u8) []u8 {
|
|
mut s := []u8{len: 0, cap:n}
|
|
mut m := n
|
|
return fn[mut s, mut m, n](item u8) []u8 {
|
|
if s.len < n {
|
|
s << item
|
|
} else {
|
|
m++
|
|
if rand.intn(m) or {0} < n {
|
|
s[rand.intn(n) or {0}] = item
|
|
}
|
|
}
|
|
return s
|
|
}
|
|
}
|
|
|
|
fn main() {
|
|
rand.seed(seed.time_seed_array(2))
|
|
mut freq := [10]int{}
|
|
for _ in 0..int(1e5) {
|
|
s_of_n := s_of_ncreator(3)
|
|
for d := '0'[0]; d < '9'[0]; d++ {
|
|
s_of_n(d)
|
|
}
|
|
for d in s_of_n('9'[0]) {
|
|
freq[d-'0'[0]]++
|
|
}
|
|
}
|
|
println(freq)
|
|
}
|