Monty Hall problem: Difference between revisions
Content added Content deleted
(→version 3: added REXX version three (to support any number of doors), and made version 2 consistent with version 3, aligned some statements.) |
No edit summary |
||
Line 2,401: | Line 2,401: | ||
Wins when changing: 6567 |
Wins when changing: 6567 |
||
%1 = [3433, 6567]</pre> |
%1 = [3433, 6567]</pre> |
||
=={{header|Pascal}}== |
|||
<lang pascal>program MontyHall; |
|||
uses |
|||
sysutils; |
|||
const |
|||
NumGames = 1000; |
|||
{Randomly pick a door(a number between 0 and 2} |
|||
function PickDoor(): Integer; |
|||
begin |
|||
Exit(Trunc(Random * 3)); |
|||
end; |
|||
var |
|||
i: Integer; |
|||
PrizeDoor: Integer; |
|||
ChosenDoor: Integer; |
|||
WinsChangingDoors: Integer = 0; |
|||
WinsNotChangingDoors: Integer = 0; |
|||
begin |
|||
Randomize; |
|||
for i := 0 to NumGames - 1 do |
|||
begin |
|||
//randomly picks the prize door |
|||
PrizeDoor := PickDoor; |
|||
//randomly chooses a door |
|||
ChosenDoor := PickDoor; |
|||
//if the strategy is not changing doors the only way to win is if the chosen |
|||
//door is the one with the prize |
|||
if ChosenDoor = PrizeDoor then |
|||
Inc(WinsNotChangingDoors); |
|||
//if the strategy is changing doors the only way to win is if we choose one |
|||
//of the two doors that hasn't the prize, because when we change we change to the prize door. |
|||
//The opened door doesn't have a prize |
|||
if ChosenDoor <> PrizeDoor then |
|||
Inc(WinsChangingDoors); |
|||
end; |
|||
Writeln('Num of games:' + IntToStr(NumGames)); |
|||
Writeln('Wins not changing doors:' + IntToStr(WinsNotChangingDoors) + ', ' + |
|||
FloatToStr((WinsNotChangingDoors / NumGames) * 100) + '% of total.'); |
|||
Writeln('Wins changing doors:' + IntToStr(WinsChangingDoors) + ', ' + |
|||
FloatToStr((WinsChangingDoors / NumGames) * 100) + '% of total.'); |
|||
end. |
|||
</lang> |
|||
Output: |
|||
<pre>Num of games:1000 |
|||
Wins not changing doors:359, 35,9% of total. |
|||
Wins changing doors:641, 64,1% of total.</pre> |
|||
=={{header|Perl}}== |
=={{header|Perl}}== |