import random, copy
def simulate_game():
doors = range(3) #0, 1, 2
car = random.choice(doors)
contestant_selection = random.choice(doors)
doors.remove(contestant_selection)
monty_doors = copy.copy(doors)
# Choices for Monty to open to reveal a goat
try:
monty_doors.remove(car) # Hall won't reveal a car
except ValueError:
# If user picked the car to start and therefore is already removed
pass
monty_goat_reveal = random.choice(monty_doors)
doors.remove(monty_goat_reveal) # Remove Goat door
switched_choice = doors.pop()
return switched_choice == car
if __name__ == '__main__':
counter = 0
trials = 10000
for x in xrange(trials):
if simulate_game():
counter += 1
print 'Percentage won is: {}%'.format(100. * counter / trials)
aW1wb3J0IHJhbmRvbSwgY29weQoKZGVmIHNpbXVsYXRlX2dhbWUoKToKICAgIGRvb3JzID0gcmFuZ2UoMykgIzAsIDEsIDIKICAgIGNhciA9IHJhbmRvbS5jaG9pY2UoZG9vcnMpCiAgICAKICAgIGNvbnRlc3RhbnRfc2VsZWN0aW9uID0gcmFuZG9tLmNob2ljZShkb29ycykKICAgIGRvb3JzLnJlbW92ZShjb250ZXN0YW50X3NlbGVjdGlvbikKICAgIAogICAgbW9udHlfZG9vcnMgPSBjb3B5LmNvcHkoZG9vcnMpCiAgICAjIENob2ljZXMgZm9yIE1vbnR5IHRvIG9wZW4gdG8gcmV2ZWFsIGEgZ29hdAogICAgCiAgICB0cnk6CiAgICAgICAgbW9udHlfZG9vcnMucmVtb3ZlKGNhcikgIyBIYWxsIHdvbid0IHJldmVhbCBhIGNhcgogICAgZXhjZXB0IFZhbHVlRXJyb3I6CiAgICAjIElmIHVzZXIgcGlja2VkIHRoZSBjYXIgdG8gc3RhcnQgYW5kIHRoZXJlZm9yZSBpcyBhbHJlYWR5IHJlbW92ZWQKICAgICAgICBwYXNzCiAgICAKICAgIG1vbnR5X2dvYXRfcmV2ZWFsID0gcmFuZG9tLmNob2ljZShtb250eV9kb29ycykKICAgIGRvb3JzLnJlbW92ZShtb250eV9nb2F0X3JldmVhbCkgIyBSZW1vdmUgR29hdCBkb29yCiAgICAKICAgIHN3aXRjaGVkX2Nob2ljZSA9IGRvb3JzLnBvcCgpCiAgICAKICAgIHJldHVybiBzd2l0Y2hlZF9jaG9pY2UgPT0gY2FyCiAgICAKaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKICAgIGNvdW50ZXIgPSAwCiAgICB0cmlhbHMgPSAxMDAwMAogICAgZm9yIHggaW4geHJhbmdlKHRyaWFscyk6CiAgICAgICAgaWYgc2ltdWxhdGVfZ2FtZSgpOgogICAgICAgICAgICBjb3VudGVyICs9IDEKICAgIHByaW50ICdQZXJjZW50YWdlIHdvbiBpczoge30lJy5mb3JtYXQoMTAwLiAqIGNvdW50ZXIgLyB0cmlhbHMpCiAgICA=