note
Anonymous Monk
<p>Just for fun, a simulation to confirm:</p>
<c>
use List::Util qw/shuffle sum/;
my $RUNS = 1_000_000;
my %counts;
for (1..$RUNS) {
my @deck = shuffle 0..51;
my $in_correct_loc = grep {$_==$deck[$_]} 0..51;
$counts{$in_correct_loc}++;
}
print "Number of cards in the correct position: % of runs\n";
printf "% 4d: %.4f%%\n", $_, 100*$counts{$_}/$RUNS
for sort {$a<=>$b} keys %counts;
my $one_or_more = sum map {$_//0} @counts{1..52};
printf "1-52: %.4f%%\n", 100*$one_or_more/$RUNS;
__END__
Number of cards in the correct position: % of runs
0: 36.8130%
1: 36.8086%
2: 18.3846%
3: 6.1085%
4: 1.5349%
5: 0.2926%
6: 0.0487%
7: 0.0080%
8: 0.0010%
9: 0.0001%
1-52: 63.1870%
</c>
1117930
1117954
5