Author Topic: A simplified explanation for the Monty Hall Problem  (Read 4437 times)

0 Members and 1 Guest are viewing this topic.

Offline mindme

  • Reef Tank Owner
  • *********
  • Posts: 8746
    • http://www.yrad.com/cs
A simplified explanation for the Monty Hall Problem
« on: August 23, 2006, 08:41:20 PM »
(I always spell in Monty Haul... which says something about my formative years.)

Okay for your friends who don't grasp, explain it like this.

Expand the doors to 1,000,000 doors.

Quote
Monty lets the person pick a door. Now he gives the person a choice. Do you want to stick with your door or open all the OTHER doors? But Monty is a nice guy and he knows the person would have to be more than drunk to stay with one door when he could switch his choice to the remaining 999,999 doors. So before he actually makes the offer he opens 999,998 doors he knows contain a goat.


Alternatively, walk them through it in both cases.

Quote
Monty offers you a choice between staying with your one door or picking the remaining 999,999 doors. You, naturally, pick the other doors. You start to open doors. It's going to take you a long while to find that car, huh? Wouldn't it be nice if you had help?
[/color]

Quote
Monty offers you a choice between staying with your one door or picking the remaining 999,999 doors. But he knows you'll choose to switch so before he makes the offer he opens all the other doors for you but one. Good thing he did most of the work for you.
[/color]

The timing of the offer has no effect on the probability.

If they grasp that, then play with their mind:

Quote
What if Monty knew it was going to take a long, long time to open all those 999,999 doors. So long before he makes the offer, long before you even arrive in the studio, he opens 999,998 doors. You arrive in the studio just in time to see 999,998 open doors and two closed doors. Does this make a difference in the stay/switch choice?


I mean, we've all agreed that the timing of the offer doesn't matter. Right? He can open the doors long before he makes the offer. Why does he have to wait until you're even in the studio? We're all friends, right. What's wrong here?
"Because the world needs more Mark Crislip."

Conspiracy Skeptic Podcast
Korean Podcast
Michael Goudeau, Vegas Comedy Entertainer Available for Trade Shows

Offline Winick88

  • Well Established
  • *****
  • Posts: 1253
Another proof...
« Reply #1 on: October 27, 2006, 07:19:07 PM »
Let's not forget that there really aren't that many possible outcomes in this game, so a skeptic can easily construct a truth table.

For example, if you assume the prize is behind door #1, write a truth table of all possible outcomes if you stay with your original choice in every case. When you choose door #1, you win. When you choose door #2 or #3, you lose. So when "staying," you have a 1/3 chance of winning.

On the other hand, if you switch every time and do the truth table, choosing #1 loses, but choosing either #2 or #3 wins, so the player has a 2/3 chance of winning when switching in all cases. Once you realize this, the same odds apply whether the prize is behind doors #1, #2, or #3.
The human understanding is like a false mirror, which, receiving rays irregularly, distorts and discolors the nature of things by mingling its own nature with it. ~Francis Bacon

Offline Larry Coon

  • Not Enough Spare Time
  • **
  • Posts: 208
A simplified explanation for the Monty Hall Problem
« Reply #2 on: November 09, 2006, 02:19:11 PM »
Just as another data point -- not that it's necessary, since the mathematical and logical explanations are sufficient -- a simple computer simulation produces results that are consistent with probability & logic.  The following is a Java (1.5) simulation of ten million trials.  In each trial, the correct door and the contestant's door are chosen at random.  Monty opens a remaining door, then whether the user switches doors is also chosen at random, and the success rate for each strategy is recorded.  Here's the program:

Code: [Select]

public class MontyHall {
    public static void main(String[] args) {
        final int trials = 10000000;
       
        int switches = 0;
        int hitAfterSwitch = 0;
        int hitAfterStay = 0;
       
        java.util.Random rng = new java.util.Random();
       
        for (int i = 0; i < trials; i++) {
            // nextInt(3) returns 0, 1 or 2.
            int door = rng.nextInt(3);
            int guess = rng.nextInt(3);
           
            int montyOpens;
            if (0 != door && 0 != guess) montyOpens = 0;
            else if (1 != door && 1 != guess) montyOpens = 1;
            else montyOpens = 2;

            if (rng.nextBoolean()) {
                // Contestant chooses to switch.
                switches++;
                if (0 != guess && 0 != montyOpens) guess = 0;
                else if (1 != guess && 1 != montyOpens) guess = 1;
                else guess = 2;
               
                if (door == guess) hitAfterSwitch++;
            }
            else {
                if (door == guess) hitAfterStay++;
            }
        }
       
        float switchSuccess = (float) hitAfterSwitch / switches;
        float staySuccess = (float) hitAfterStay / (trials - switches);
       
        System.out.println("Number of trials: " + trials);
        System.out.println("Number of switches: " + switches);
        System.out.println("Hits after switching: " + hitAfterSwitch);
        System.out.println("Hits after staying: " + hitAfterStay);
        System.out.println("Switch success: " + switchSuccess);
        System.out.println("Stay success: " + staySuccess);
    }
}


And here are the results from a sample run:

Code: [Select]

Number of trials: 10000000
Number of switches: 5003123
Hits after switching: 3335253
Hits after staying: 1665910
Switch success: 0.6666342
Stay success: 0.33339024