Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
42
Task/Monty-Hall-problem/EMal/monty-hall-problem.emal
Normal file
42
Task/Monty-Hall-problem/EMal/monty-hall-problem.emal
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
type Prize
|
||||
enum do int GOAT, CAR end
|
||||
type Door
|
||||
model
|
||||
int id
|
||||
Prize prize
|
||||
new by int =id, Prize =prize do end
|
||||
fun asText = text by block do return "(id:" + me.id + ", prize:" + me.prize.value + ")" end
|
||||
end
|
||||
type Player
|
||||
model
|
||||
Door choice
|
||||
fun choose = void by List doors
|
||||
me.choice = doors[random(3)]
|
||||
end
|
||||
end
|
||||
type Monty
|
||||
model
|
||||
fun setPrize = void by List doors, Prize prize
|
||||
doors[random(3)].prize = prize
|
||||
end
|
||||
end
|
||||
type MontyHallProblem
|
||||
int ITERATIONS = 1000000
|
||||
Map counter = text%int[ "keep" => 0, "switch" => 0 ]
|
||||
writeLine("Simulating " + ITERATIONS + " games:")
|
||||
for int i = 0; i < ITERATIONS; i++
|
||||
if i % 100000 == 0 do write(".") end
|
||||
^|three numbered doors with no cars for now|^
|
||||
List doors = Door[Door(1, Prize.GOAT), Door(2, Prize.GOAT), Door(3, Prize.GOAT)]
|
||||
Monty monty = Monty() # set up Monty
|
||||
monty.setPrize(doors, Prize.CAR) # Monty randomly sets the car behind one door
|
||||
Player player = Player() # set up the player
|
||||
player.choose(doors) # the player makes a choice
|
||||
^|here Monty opens a door with a goat;
|
||||
|behind the ones that are still closed there is a car and a goat,
|
||||
|so that the player *always* wins by keeping or switching.
|
||||
|^
|
||||
counter[when(player.choice.prize == Prize.CAR, "keep", "switch")]++
|
||||
end
|
||||
writeLine()
|
||||
writeLine(counter)
|
||||
Loading…
Add table
Add a link
Reference in a new issue