Skip to content

Instantly share code, notes, and snippets.

@danielevans
Created February 28, 2013 20:21
Show Gist options
  • Save danielevans/5059792 to your computer and use it in GitHub Desktop.
Save danielevans/5059792 to your computer and use it in GitHub Desktop.
Monty Hall Problem Simulator
trials = 100_000
results = trials.times.reduce({ :change_successes => 0, :keep_successes => 0 }) do |memo, i|
doors = [nil]*3
doors[rand(3)] = "car"
choice = rand(3)
if doors[choice] == "car"
memo[:keep_successes] += 1
else
memo[:change_successes] += 1
end
memo
end
puts "Change success: #{100 * (results[:change_successes] / trials.to_f)}%"
puts "Keep success: #{100 * (results[:keep_successes] / trials.to_f)}%"
# Change success: 66.609%
# Keep success: 33.391%
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment