Monty Hall problem: Difference between revisions
Added Wren
m (→version 2: changed comments and whitespace.) |
(Added Wren) |
||
Line 4,254:
Staying winns: 3354
Switching winns: 6646
</pre>
=={{header|Wren}}==
{{trans|Kotlin}}
<lang ecmascript>import "random" for Random
var montyHall = Fn.new { |games|
var rand = Random.new()
var switchWins = 0
var stayWins = 0
for (i in 1..games) {
var doors = [0] * 3 // all zero (goats) by default
doors[rand.int(3)] = 1 // put car in a random door
var choice = rand.int(3) // choose a door at random
var shown = 0
while (true) {
shown = rand.int(3) // the shown door
if (doors[shown] != 1 && shown != choice) break
}
stayWins = stayWins + doors[choice]
switchWins = switchWins + doors[3-choice-shown]
}
System.print("Simulating %(games) games:")
System.print("Staying wins %(stayWins) times")
System.print("Switching wins %(switchWins) times")
}
montyHall.call(1e6)</lang>
{{out}}
Sample output:
<pre>
Simulating 1000000 games:
Staying wins 333970 times
Switching wins 666030 times
</pre>
|