27 lines
914 B
Perl
27 lines
914 B
Perl
#! /usr/bin/perl
|
|
use strict;
|
|
my $trials = 10000;
|
|
|
|
my $stay = 0;
|
|
my $switch = 0;
|
|
|
|
foreach (1 .. $trials)
|
|
{
|
|
my $prize = int(rand 3);
|
|
# let monty randomly choose a door where he puts the prize
|
|
my $chosen = int(rand 3);
|
|
# let us randomly choose a door...
|
|
my $show;
|
|
do { $show = int(rand 3) } while $show == $chosen || $show == $prize;
|
|
# ^ monty opens a door which is not the one with the
|
|
# prize, that he knows it is the one the player chosen
|
|
$stay++ if $prize == $chosen;
|
|
# ^ if player chose the correct door, player wins only if he stays
|
|
$switch++ if $prize == 3 - $chosen - $show;
|
|
# ^ if player switches, the door he picks is (3 - $chosen - $show),
|
|
# because 0+1+2=3, and he picks the only remaining door that is
|
|
# neither $chosen nor $show
|
|
}
|
|
|
|
print "Stay win ratio " . (100.0 * $stay/$trials) . "\n";
|
|
print "Switch win ratio " . (100.0 * $switch/$trials) . "\n";
|