Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
49
Task/Monty-Hall-problem/Delphi/monty-hall-problem.delphi
Normal file
49
Task/Monty-Hall-problem/Delphi/monty-hall-problem.delphi
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
program MontyHall;
|
||||
|
||||
{$APPTYPE CONSOLE}
|
||||
|
||||
{$R *.res}
|
||||
|
||||
uses
|
||||
System.SysUtils;
|
||||
|
||||
const
|
||||
numGames = 1000000; // Number of games to run
|
||||
|
||||
var
|
||||
switchWins, stayWins, plays: Int64;
|
||||
doors: array[0..2] of Integer;
|
||||
i, winner, choice, shown: Integer;
|
||||
begin
|
||||
switchWins := 0;
|
||||
stayWins := 0;
|
||||
|
||||
for plays := 1 to numGames do
|
||||
begin
|
||||
|
||||
//0 is a goat, 1 is a car
|
||||
for i := 0 to 2 do
|
||||
doors[i] := 0;
|
||||
|
||||
//put a winner in a random door
|
||||
winner := Random(3);
|
||||
doors[winner] := 1;
|
||||
|
||||
//pick a door, any door
|
||||
choice := Random(3);
|
||||
|
||||
//don't show the winner or the choice
|
||||
repeat
|
||||
shown := Random(3);
|
||||
until (doors[shown] <> 1) and (shown <> choice);
|
||||
|
||||
//if you won by staying, count it
|
||||
stayWins := stayWins + doors[choice];
|
||||
|
||||
//the switched (last remaining) door is (3 - choice - shown), because 0+1+2=3
|
||||
switchWins := switchWins + doors[3 - choice - shown];
|
||||
end;
|
||||
|
||||
WriteLn('Staying wins ' + IntToStr(stayWins) + ' times.');
|
||||
WriteLn('Switching wins ' + IntToStr(switchWins) + ' times.');
|
||||
end.
|
||||
Loading…
Add table
Add a link
Reference in a new issue