CONCLUSIVE PROOF OF THE "DOORS" RIDDLE:
Because this riddle is so hard to explain, I thought that conclusive evidence of Famine's answer would be nice. Imagine this:
You think of a number from one to three inclusive. You ask a friend to guess it. Your friend does so. You then eliminate a number that is A) not the right number and B) not the number your friend initially chose (so if you picked 3 and your friend guessed 1, you must eliminate 2). You then give your friend the opportunity to switch or to stick with his/her number. Does it matter what number you eliminated? The answer is no, because you will never eliminate your friend's guess. This is the key to the riddle. In effect, it is like you never eliminated a number. Now if you were to do this, say, 1,000 times and record the results each time, you would see that your friend has a better chance if he switches numbers than not.
Don't have the time? Don't have any friends? That's okay, because I wrote a program to do it for you. Here is the actual code:
RANDOMIZE TIMER
FOR x = 1 TO 1000
door = INT(RND * 3) + 1
choice = INT(RND * 3) + 1
elim:
eliminate = INT(RND * 3) + 1
IF eliminate = door OR eliminate = choice THEN GOTO elim
stay = INT(RND * 2)
IF stay = 0 AND choice = door THEN sright = sright + 1
IF stay = 0 AND choice <> door THEN swrong = swrong + 1
IF stay = 1 AND choice = door THEN cwrong = cwrong + 1
IF stay = 1 AND choice <> door THEN cright = cright + 1
NEXT x
CLS
PRINT "Stayed, Right:", sright
PRINT "Stayed, Wrong:", swrong
PRINT "Changed, Right:", cright
PRINT "Change, Wrong:", cwrong
It's in the QBASIC programming language, but since most people won't me able to understand it, here is what it does:
1000 times, it chooses a number randomly. Then it makes a guess randomly. Then it eliminated a number that is not the guess and not the correct number. Then it randomly chooses to stay or to switch. It tallies the number of times it is right and the number of times it is wrong. The results:
Stayed, Right: 160
Stayed, Wrong: 336
Changed, Right: 335
Change, Wrong: 169
Repeated several times, the results are very similar. The computer stayed 496 times and was right 160 of those times, or 32.3% of the time. It changed 504 times and was right 335 of those times, or 66.5% of the time. Staying was the right choice 160 + 169 = 329 times out of 1,000, or 32.9%. Changing, therefore, was the right choice 67.1% of the time. Those results are pretty indisputable.
By the way, the program could be changed so that the door was eliminated before the initial choice, like so:
RANDOMIZE TIMER
FOR x = 1 TO 1000
door = INT(RND * 3) + 1
elim:
eliminate = INT(RND * 3) + 1
IF eliminate = door THEN GOTO elim
chose:
choice = INT(RND * 3) + 1
IF choice = eliminate THEN GOTO chose
stay = INT(RND * 2)
IF stay = 0 AND choice = door THEN sright = sright + 1
IF stay = 0 AND choice <> door THEN swrong = swrong + 1
IF stay = 1 AND choice = door THEN cwrong = cwrong + 1
IF stay = 1 AND choice <> door THEN cright = cright + 1
NEXT x
CLS
PRINT "Stayed, Right:", sright
PRINT "Stayed, Wrong:", swrong
PRINT "Changed, Right:", cright
PRINT "Change, Wrong:", cwrong
(Notice that elim is before chose. Also notice that choice restricts itself now to only the two door remaining after elimination.)
The results, as you may be able to predict already, are similar to these:
Stayed, Right: 238
Stayed, Wrong: 243
Changed, Right: 263
Change, Wrong: 256
Draw your own conclusion...
