Revision: 62494
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at February 27, 2013 08:46 by csrsen
Initial Code
#---------------------------------
# The Monty Hall Problem
#---------------------------------
import random
pickcount = 0
newpickcount = 0
i = 0
counter = 100000
def pick1of3():
pick=random.randint(0,2)
return pick
while i < counter:
# Prize assignment
doors = ['goat','goat','goat']
car = pick1of3()
doors[car] = 'car '
# Contestant choice
firstchoice = pick1of3()
pick = doors[firstchoice]
# Monty's reveal
reveal=random.random()
if firstchoice == 0:
if pick=='car ' and reveal < 0.5: Montyshows=doors[1]
elif pick=='car ': Montyshows=doors[2]
elif pick=='goat' and doors[1]=='goat': Montyshows=doors[1]
else: Montyshows=doors[2]
elif firstchoice == 1:
if pick=='car ' and reveal < 0.5: Montyshows=doors[0]
elif pick=='car ': Montyshows=doors[2]
elif pick=='goat' and doors[0]=='goat': Montyshows=doors[0]
else: Montyshows=doors[2]
elif firstchoice == 2:
if pick=='car ' and reveal < 0.5: Montyshows=doors[0]
elif pick=='car ': Montyshows=doors[1]
elif pick=='goat' and doors[0]=='goat': Montyshows=doors[0]
else: Montyshows=doors[1]
# The Switch
if pick==doors[0]:
if Montyshows==doors[1]: newpick=doors[2]
else: newpick=doors[1]
elif pick==doors[1]:
if Montyshows==doors[0]: newpick=doors[2]
else: newpick=doors[0]
else:
if Montyshows==doors[0]: newpick=doors[1]
else: newpick=doors[0]
if pick == 'car ':
pickcount = pickcount + 1
if newpick == 'car ':
newpickcount = newpickcount + 1
i = i + 1
print 'Original Pick is a Car: ',"{0:.3f}%".format(float(pickcount)/counter * 100)
print 'Switched Pick is a Car: ',"{0:.3f}%".format(float(newpickcount)/counter * 100)
Initial URL
Initial Description
A proof of the Monty Hall problem written in Python.
Initial Title
Monty Hall problem
Initial Tags
Initial Language
Python