There are a number of classic probability problems that challenge the intuition, both for students and for teachers. I have found that one way to overcome this intuition block is to write a quick simulation. A good example is the classic evil probability problem of the Monty Hall. The derivation of the solution is straightforward, but it is easy to convince yourself of the wrong answer. A quick simulation, like the one below, makes it clear: 1/3 of the time the host gets a choice with which door to open, and 2/3 of the time the host has no choice - with the other door having the prize. I find a numerical simulation helps to bolster my confidence in a mathematical analysis, especially when it is particularly unintuitive.

from random import randintimport randomturn=0win=0human=Falsewhile turn<50: prize=randint(1,3) door_choices=[1,2,3] if human: your_first_answer=input('Which door %s? ' % str(door_choices)) else: # automatic your_first_answer=random.choice(door_choices) if prize==your_first_answer: # happens 1/3 of the time door_choices.remove(your_first_answer) # get the other two door_choices=sorted([your_first_answer, random.choice(door_choices)]) else: door_choices=sorted([prize,your_first_answer]) if human: your_second_answer=input('Which door %s? ' % str(door_choices)) else: # automatic # always switch if door_choices[0]==your_first_answer: your_second_answer=door_choices[1] else: your_second_answer=door_choices[0] if your_second_answer==prize: print "You win!" win+=1 else: print "You Lose!" turn+=1print "Winning percentage: ",float(win)/turn*100

comments powered by Disqus