Data update
This commit is contained in:
parent
29a5eea0d4
commit
5c1bb7bfa9
2011 changed files with 35081 additions and 3229 deletions
60
Task/Monty-Hall-problem/FutureBasic/monty-hall-problem.basic
Normal file
60
Task/Monty-Hall-problem/FutureBasic/monty-hall-problem.basic
Normal file
|
|
@ -0,0 +1,60 @@
|
|||
// Monty Hall problem
|
||||
// May 2024 - Rich Love
|
||||
|
||||
local fn IsGameWon(Sw as int) as bool
|
||||
REM Play one game.
|
||||
REM Switching if and only if Sw <> 0.
|
||||
REM Returns 1 if the game is won, 0 otherwise.
|
||||
|
||||
short Car = INT(RND(3)) //Randomly place car behind a door.
|
||||
short Player0 = INT(RND(3)) // Player randomly chooses a door.
|
||||
short Monty
|
||||
short IsGameWon
|
||||
short Player
|
||||
|
||||
DO
|
||||
Monty = INT(RND(3)) // Monty opens door revealing a goat.
|
||||
UNTIL (Monty <> Car) AND (Monty <> Player0)
|
||||
380
|
||||
|
||||
IF Sw <> 0 // Player switches TO remaining door.
|
||||
|
||||
DO
|
||||
Player = INT(RND(3))
|
||||
UNTIL (Player <> Player0) AND (Player <> Monty)
|
||||
Monty = INT(RND(3))
|
||||
|
||||
ELSE
|
||||
Player = Player0 // Player sticks with original door.
|
||||
END IF
|
||||
IF Player = Car
|
||||
IsGameWon = 1
|
||||
ELSE
|
||||
IsGameWon = 0
|
||||
END IF
|
||||
END fn = IsgameWon
|
||||
|
||||
|
||||
_NGames = 10000
|
||||
|
||||
float NWins = 0
|
||||
short Game
|
||||
|
||||
FOR Game = 0 TO _NGames
|
||||
IF fn IsGameWon(0) <> 0 THEN NWins = NWins + 1
|
||||
NEXT Game
|
||||
|
||||
|
||||
PRINT "NOT switching doors wins car in ";
|
||||
PRINT USING "##.##" ; NWins / 100 ;
|
||||
PRINT " % of games."
|
||||
|
||||
NWins = 0
|
||||
FOR Game = 0 TO _NGames
|
||||
IF fn IsGameWon(1) <> 0 THEN NWins = NWins + 1
|
||||
NEXT Game
|
||||
PRINT "But switching doors wins car in ";
|
||||
PRINT USING "##.##" ; NWins / _NGames * 100;
|
||||
PRINT " % of games."
|
||||
|
||||
handleevents
|
||||
Loading…
Add table
Add a link
Reference in a new issue