Skip to content
{{ message }}

Instantly share code, notes, and snippets.

# snitzr/monty_hall.py

Last active Apr 1, 2020
Monty Hall problem outcome simulator
 import random # probability calculator def monty(): runs = 5000 true_switch_win_counter = 0 false_switch_win_counter = 0 true_switch_counter_total = 0 false_switch_counter_total = 0 for i in range(runs): print('____________________\nBegin for loop #{}\n'.format(i+1)) doors = ['1', '2', '3'] initial_pick = random.choice(doors) winning_door = random.choice(doors) print('Doors: {}'.format(doors)) print('Initial pick: {}'.format(initial_pick)) print('Winning door: {}\n'.format(winning_door)) # switcher if i % 2: true_switch_counter_total += 1 print('Switch True') second_pick = 0 if winning_door == initial_pick: # guaranteed loss print('Winning door: {} == Intial pick: {}' .format(winning_door, initial_pick)) print('Lose. Switched from correct initial pick') else: # guaranteed win print('Winning door: {} != Intial pick: {}' .format(winning_door, initial_pick)) print('Win. Switched from incorect initial pick.') true_switch_win_counter += 1 else: false_switch_counter_total += 1 print('Switch False') if initial_pick == winning_door: print('Initial pick: {} == Winning door: {}' .format(initial_pick, winning_door)) print('Win. Not switched.') false_switch_win_counter += 1 else: print('Initial pick: {} != Winning door: {}' .format(initial_pick, winning_door)) print('Lose. Not switched.') print('\nEnd for loop #{}\n--------------------\n'.format(i+1)) print('Wins with switch:\t{:.3f}%' .format(true_switch_win_counter / true_switch_counter_total * 100)) print('Wins without switch:\t{:.3f}%' .format(false_switch_win_counter / false_switch_counter_total * 100)) print('true_switch_win_counter: {} / true_switch_counter_total: {}' .format(true_switch_win_counter, true_switch_counter_total)) print('false_switch_win_counter: {} / false_switch_counter_total: {}' .format(false_switch_win_counter, false_switch_counter_total)) if __name__ == "__main__": # run function on startup monty()
to join this conversation on GitHub. Already have an account? Sign in to comment