sub s_of_n_creator($n) {
my @sample;
my $i = 0;
-> $item {
if ++$i <= $n {
push @sample, $item;
}
elsif $i.rand < $n {
@sample[$n.rand] = $item;
}
@sample;
}
}
my @items = 0..9;
my @bin;
for ^100000 {
my &s_of_n = s_of_n_creator(3);
my @sample;
for @items -> $item {
@sample = s_of_n($item);
}
for @sample -> $s {
@bin[$s]++;
}
}
say @bin;
Output:
29975 30028 30246 30056 30004 29983 29836 29967 29924 29981