RosettaCodeData/Task/Monty-Hall-problem/Kotlin/monty-hall-problem.kotlin
2017-09-25 22:28:19 +02:00

28 lines
806 B
Text

// version 1.1.2
import java.util.Random
fun montyHall(games: Int) {
var switchWins = 0
var stayWins = 0
val rnd = Random()
(1..games).forEach {
val doors = IntArray(3) // all zero (goats) by default
doors[rnd.nextInt(3)] = 1 // put car in a random door
val choice = rnd.nextInt(3) // choose a door at random
var shown: Int
do {
shown = rnd.nextInt(3) // the shown door
}
while (doors[shown] == 1 || shown == choice)
stayWins += doors[choice]
switchWins += doors[3 - choice - shown]
}
println("Simulating $games games:")
println("Staying wins $stayWins times")
println("Switching wins $switchWins times")
}
fun main(args: Array<String>) {
montyHall(1_000_000)
}