Main      Site Guide    
RinkWorks Stupid Emails

589.    *   Monty Hall

To:  The Rink <sam@rinkworks.com>
Subject:  Discrete Reasoning Puzzles - Solution for #13
Date:  Friday, May 01, 2009, at 03:00:00

I think you are wrong because you are assuming that there are three
choices when in fact there was always only two.
The host always eliminates one of the choices so the odds decrease to 50/50.
Did you help design the stock market derivates?

From:  The Rink <sam@rinkworks.com>
Subject:  Re: Discrete Reasoning Puzzles - Solution for #13
Date:  Friday, May 01, 2009, at 03:22:00

I'm not wrong.  This is a VERY well-known and well-understood problem.
As I said in my solution, if you don't believe I'm right, visit here:

        http://en.wikipedia.org/wiki/Monty_Hall_Paradox

...and you will be provided with an exhaustive logical and mathematical
analysis.  There are references at the bottom of the page, so if you don't
believe Wikipedia either, you can consult those instead.

-- Sam.

To:  "The Rink" <sam@rinkworks.com>
Subject:  RE: Discrete Reasoning Puzzles - Solution for #13
Date:  Mon, 4 May 2009 12:53:12 -0400

Sam,
The logic is wrong as I stated.
Marilyn vos Sanvant has been wrong before and she is wrong on this.
The evidence in Wikipedia is based on the same flawed logic.
If the data was taken from the actual program, the results would
approach 50/50. Assuming that the placing of the 'good prize' was random.
There are many others, including mathematicians who say I am right.
Thanks again

From:  The Rink <sam@rinkworks.com>
Subject:  Re: Discrete Reasoning Puzzles - Solution for #13
Date:  Mon, 4 May 2009 14:44:45 -0400

> There are many others, including mathematicians who say I am right.

Please cite one accomplished mathematician who says you are right and explains
why.  You will not be able to do this.

Meanwhile, the Wikipedia article contains references not just by vos Sanvant
but by many, many others.  You dismiss them all without saying what the actual
flaws are, nor by providing a proof for your own contrary answer.  What, are we
all supposed to take your word for it?  Put up or shut up.

You say that there was in fact only two choices, and so the chances are 50-50.
Not only is this not mathematical reasoning (correct OR incorrect; it is simply
not a mathematical line of reasoning), but it is wrong at face value:  The
contestant is presented with THREE CHOICES and therefore has a 1/3 chance of
picking any one of the three.

If the contestant chooses the correct door the first time (33% chance), then
he will be wrong by switching.  If he chooses one of the two wrong doors
(67% chance), then he will be right by switching, because he will always be
switching to the *correct* door.

This is very very simple logic, with very very simple math behind it.  It is
*unintuitive*, which is why it "seems" wrong.  But it is not wrong, as
not one but multiple mathematical and logical proofs (readily available on
Wikipedia, elsewhere on the Internet, and in numerous math text books) all
demonstrate, with unwavering concurrence to one another.

It is good that you are questioning these things, rather than blindly accepting
the accepted truth.  But at a certain point an inquisitive nature becomes
merely belligerent bluster and the outright refusal of an ignorant and/or
insecure mind to learn and grow.

-- Sam.

To:  "The Rink" <sam@rinkworks.com>
Subject:  RE: Discrete Reasoning Puzzles - Solution for #13
Date:  Tue, 5 May 2009 12:32:35 -0400

I must be getting under your skin. I wonder why. Doubts?
Let us assume that before a choice is made, one of the three doors is
opened and of course it is not the prize.
Are now the odds of selecting the right door still 1 of 3?
That is what your logic says. How about the case where the door opened
has the prize?
The 'accepted' proof ignores the fact that the situation has changed.
Probability and statistics are useful tools as long as one recognizes
their limits. Remember the Black Swan.

From:  The Rink <sam@rinkworks.com>
Subject:  Re: Discrete Reasoning Puzzles - Solution for #13
Date:  Tue, 5 May 2009 15:48:40 -0400

> I must be getting under your skin. I wonder why. Doubts?

Oh yeah, that's totally it.  I'm doubtful about the proofs I have offered and
totally ignorant of the fact that this is your third email and you have STILL
not offered me evidence of ONE mathematician supporting your view.
I challenged you to do that in my previous email to you (and I held myself to
the same standard, having already provided you with multiple proofs and
references from mathematicians), but you have not followed through.

Meanwhile, I have gone a step further and written and attached a simulation
program, which produces the results everybody but you claim are correct.
More about that after this:

> Let us assume that before a choice is made, one of the three doors is
> opened and of course it is not the prize.
> Are now the odds of selecting the right door still 1 of 3?

However, you've hit upon a good point worth discussing here.  The distinction
between this and the puzzle question is very very subtle.  But it's important
and makes all the difference.

If you eliminate a door prior to the player making a choice, that's different
from eliminating a choice afterwards.  Furthermore, it makes a difference
whether or not the host *knows* which door the prize is behind.

In your example, the host simply narrows down the choices you have to choose
from.  By eliminating a wrong door BEFORE you've made a choice, your odds of
being right are indeed reduced to 1 in 2.

However, in the puzzle question, the door chosen by the host is influenced BY
your decision.  If you pick a wrong door originally, the host PURPOSELY
eliminates the OTHER wrong door.  In effect, the host is NOT eliminating one
of your choices.  He's simply choosing to reveal the answers by starting with
one of the doors he knows to be wrong.

On the other hand, if the question said that the host RANDOMLY opens one of the
doors that you had not picked, and that door HAPPENS to be empty, you would be
absolutely right when you say that the chances of being right have become
50-50.  Why?  Because the question explicitly removes one of the possibilities
(namely, that the host randomly opened a door that DID contain the prize, the
chances of which would be 1 in 3) from the scenario, leaving the other two
possibilities, both of which are equally likely.

But the puzzle does NOT eliminate any possibilities.  If you guess wrong, the
host deliberately shows you one of the wrong choices.  In this case, the chance
you were right at the outset have NOT changed.  Because NO possibility has been
eliminated from consideration.  Under NO circumstances would the host have
shown you the door with the prize FIRST (i.e., the chances of that happening
were 0%).  So the opening of the door in this case does not change the
probabilities at all, as it does for your example.

If you still don't understand, I recommend rereading my explanations of the
solution as posted on http://www.rinkworks.com/brainfood/s/discrete13.shtml
and, if necessary, the Wikipedia page.  As I said, the answer is unintuitive
until you figure out how to look at the problem, but the math is irrefutable.

As for that simulation program -- I wrote a program in Python and attached it
to this email.  I don't know if you're a coder or not, but the logic of the
code is pretty easy to read.  Since you can see the code I wrote and the
algorithm I used, and you can run the program yourself, I cannot have cooked
the results.  And please do feel free to run it yourself.  If you don't have
a Python interpreter, you can download and install one for free from
http://python.org/.

The program runs the game show 10,000 times and tallies up the results.
I ran it three times on my system.  The results were as follows:

        % ./montyhall

        Number of times the player wins by holding: 3329
        Number of times the player loses by holding: 6671

        Number of times the player wins by switching: 6671
        Number of times the player loses by switching: 3329

        % ./montyhall

        Number of times the player wins by holding: 3378
        Number of times the player loses by holding: 6622

        Number of times the player wins by switching: 6622
        Number of times the player loses by switching: 3378

        % ./montyhall

        Number of times the player wins by holding: 3326
        Number of times the player loses by holding: 6674

        Number of times the player wins by switching: 6674
        Number of times the player loses by switching: 3326

In other words, a statistically insignificant difference from a 2 in 3 shot
of winning by switching.

If you STILL think this is not the right answer and want to push this, you need
to give me some actual evidence to support your position.  I've gone above and
beyond supporting mine.  Either give me a proper mathematical proof, a
concurring opinion from a qualified mathematician, or "fix" whatever error you
think exists in my Python program and show me how the fix produces the "right"
results.  Or write your own simulation in any language you please, as long as
you show me the source code, so that the algorithm you used can be scrutinized
for its conformance to the original puzzle question.  I'm giving you every
possible way to prove your theory here.

-- Sam.



#! /usr/bin/python -O

import random

# This function simulates a single instance of the game show.
# It returns the following two values: (wins_by_holding, wins_by_switching)
# ...where wins_by_holding is 1 if holding wins and 0 if it loses,
# ...and wins_by_switching is 1 if switching wins and 0 if it loses.
#
# Note that although the function below does not assume so, you will only
# ever see (1,0) and (0,1) returned by this function, since, in every game,
# one of the two choices (hold or switch) will win and one will lose.
#
def montyhall():
        # The prize is placed behind a door.
        #
        prize = random.choice([1,2,3])

        # The player picks a door.
        #
        choice = random.choice([1,2,3])

        # The host opens one of the wrong doors.
        # In the case where the player was originally correct, the host just
        # picks a random wrong door.  In the case where the player was originally
        # wrong, the host deliberately picks the other wrong choice.
        #
        if prize == choice:
                open = random.choice([1,2,3])
                while open == choice:
                        open = random.choice([1,2,3])
        else:
                open = random.choice([1,2,3])
                while open == prize or open == choice:
                        open = random.choice([1,2,3])

        # Now decide if the player wins or not.
        # First, let's figure out if the player would win by holding.
        # That only happens if the player was right at the outset.
        #
        if prize == choice:
                wins_by_holding = 1
        else:
                wins_by_holding = 0

        # Next, let's figure out if the player would win by switching.
        # If the player switches, he would switch to whichever door is
        # neither the original choice, nor the door opened by the host.
        #
        doors = [1,2,3]
        doors.remove(choice)
        doors.remove(open)
        switch_to = doors[0] # the remaining door is the one to switch to

        if prize == switch_to:
                wins_by_switching = 1
        else:
                wins_by_switching = 0

        # Return!
        #
        return (wins_by_holding, wins_by_switching)

# This function will run the game show 10,000 times and report how many times
# the player wins (and loses) by holding and by switching.
#
def montyhall_manytimes():
        # First, initialize our counters to zero.
        #
        num_times_won_by_holding = 0
        num_times_won_by_switching = 0
        num_times_lost_by_holding = 0
        num_times_lost_by_switching = 0

        # Run the simulation 10,000 times and tally the results.
        #
        for i in range(10000):
                won_by_holding, won_by_switching = montyhall()

                if won_by_holding:
                        num_times_won_by_holding += 1
                else:
                        num_times_lost_by_holding += 1

                if won_by_switching:
                        num_times_won_by_switching += 1
                else:
                        num_times_lost_by_switching += 1

        # Display the results.
        #
        print "Number of times the player wins by holding: %d" % num_times_won_by_holding
        print "Number of times the player loses by holding: %d" % num_times_lost_by_holding
        print
        print "Number of times the player wins by switching: %d" % num_times_won_by_switching
        print "Number of times the player loses by switching: %d" % num_times_lost_by_switching

# Run the simulation!
#
montyhall_manytimes()

I've gotten more email about the Monty Hall problem on Brain Food than anything else on RinkWorks. Every time, I'd reply (frequently but not always going back and forth a couple times) and also beef up the explanation of the correct answer. For everything else on RinkWorks that's generated a lot of email (for example, the Of Mice and Men ultra-condensation on Book-A-Minute Classics), posting an explanatory note has been sufficient to stop the influx of emailed objections (most of them polite, it must be said, which is fine). Not so here. It took a great many revisions to my answer to the puzzle for the email to stop coming. And then this guy comes along, telling me to remember the Black Swan.