Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
34
Task/Knuths-algorithm-S/Perl/knuths-algorithm-s.pl
Normal file
34
Task/Knuths-algorithm-S/Perl/knuths-algorithm-s.pl
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
use strict;
|
||||
|
||||
sub s_of_n_creator {
|
||||
my $n = shift;
|
||||
my @sample;
|
||||
my $i = 0;
|
||||
sub {
|
||||
my $item = shift;
|
||||
$i++;
|
||||
if ($i <= $n) {
|
||||
# Keep first n items
|
||||
push @sample, $item;
|
||||
} elsif (rand() < $n / $i) {
|
||||
# Keep item
|
||||
@sample[rand $n] = $item;
|
||||
}
|
||||
@sample
|
||||
}
|
||||
}
|
||||
|
||||
my @items = (0..9);
|
||||
my @bin;
|
||||
|
||||
foreach my $trial (1 .. 100000) {
|
||||
my $s_of_n = s_of_n_creator(3);
|
||||
my @sample;
|
||||
foreach my $item (@items) {
|
||||
@sample = $s_of_n->($item);
|
||||
}
|
||||
foreach my $s (@sample) {
|
||||
$bin[$s]++;
|
||||
}
|
||||
}
|
||||
print "@bin\n";
|
||||
Loading…
Add table
Add a link
Reference in a new issue