17 lines
378 B
Perl
17 lines
378 B
Perl
sub R {
|
|
my ($n, $p) = @_;
|
|
my $r = join '',
|
|
map { rand() < $p ? 1 : 0 } 1 .. $n;
|
|
0+ $r =~ s/1+//g;
|
|
}
|
|
|
|
use constant t => 100;
|
|
|
|
printf "t= %d\n", t;
|
|
for my $p (qw(.1 .3 .5 .7 .9)) {
|
|
printf "p= %f, K(p)= %f\n", $p, $p*(1-$p);
|
|
for my $n (qw(10 100 1000)) {
|
|
my $r; $r += R($n, $p) for 1 .. t; $r /= $n;
|
|
printf " R(n, p)= %f\n", $r / t;
|
|
}
|
|
}
|