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>
 
9,482

edits