http://www.perlmonks.org?node_id=39455


in reply to RE: Spooky math problem (featuring perl!)
in thread Spooky math problem

Update: OK I'm re-reading everything and I'm still not sure that I understand it after all.. *sigh*..

For those that don't get it, like I didn't, realize that we're making one important assumption here: that both parties know the upper and lower bounds of the numbers!

Sure, if we know we're working from 0 .. 100, and the envelope we see is number 88, odds are, it's the higher of the two envelopes (assuming both are truly random; this can be defeated if the "dealer" keeps writing two consecutive numbers or otherwise knows the trick). Now I look at the situation and think, "Well yah, duh."

But what if you don't know the upper bounds? Modify the lines in the script like below, and the odds come out to exactly 50%: what we'd expect. The way *I* would play this game in real life, without knowing the limit, is to try to "figure out" the limit as I go, but statistically, given a one-time shot, we have to assume that the number we were given is, on average, mid-way through the distribution. This means that no matter what number we think of, we're still 50% likely of guessing right.

... $letter1 = $money[rand @money / 2]; { $letter2 = $money[rand @money / 2]; redo if $letter1 == $letter2; + } ... { $guess = $money[rand (($letter2+1) * 2)]; redo if $guess == $lette +r2; } ...
But if we know we're going to play 100 games, we can sorta "figure out" the upper limit as we go (assuming there is one, and it's kept constant during play), by assuming that our numbers will average out to be mid-way through the distribution. That would let us approach a higher probability of being correct further down the line. The script can be modified to play by those rules too, but I'll leave that as an exercise for the reader.

If you were to actually make these bold statements and try them in real life (give them 10 cards, pick two at random, show me one and I'll guess 66% correctly whether it's the higher of the two cards), I would seriously hope that they would figure out the trick without me needing to guess very much, if at all. If they were smart, they'd shut up when they figured it out and would keep pulling, say 9 and 10, and showing me the 9 all the time.

Replies are listed 'Best First'.
RE (tilly) 1: OK, understood, but still 1 *huge* flaw
by tilly (Archbishop) on Nov 02, 2000 at 00:19 UTC
    No such assumption is made in the problem.

    With a continuous probability distribution you can have some probability of picking a number in any range at all. The probability may be low, but it is always positive. That is why I said "non-zero density everywhere" in the details.

    More carefully stated the experiment is defined as, "I hand you one of my two numbers at random, you look at it, hand it back, and make a guess as to high or low." The assertion is that there is a method you can use such that, no matter what my numbers are, you will have better than even odds of being right. What your odds are will depend, of course, on what my numbers are. All that you can guarantee is better than even.

    Of course any purely mechanical computer will have the usual problems with "randomly pick out of a continuous distribution" however you can specify a concrete algorithm for doing that with coin-flipping (note that you don't need to find the number precisely, just determine it to sufficient detail to compare it with the one you were handed). You need make no assumptions on my numbers. And an outside observer who knows both my numbers and your method can calculate the exact probability you will be right - and that will be better than even.

    Guaranteed.

    (Yes, this skirts on the boundary of a lot of interesting problems, philosophical and otherwise, in math.)

RE: OK, understood, but still 1 *huge* flaw
by arturo (Vicar) on Nov 01, 2000 at 23:43 UTC

    Whoa. What tilly is claiming is that we have a "better than 50% chance" of getting it right. The degree to which it's "better" can be *mind-bogglingly miniscule* (we're talking continuous quantities here) so I don't think we're warranted in exporting any claims about the actual probabilities from what a program reports.

    Philosophy can be made out of anything. Or less -- Jerry A. Fodor

      I don't care what the theory is. I may not understand it, in which case my changes to the code are non-sensical, but they basically boil down to this:
      $num1 = rand(1000); $num2 = rand(1000); # pretend $num2 != $num1 $guess = rand($num1 * 2);
      Are we asserting that $num2 > $guess more than 50% of the time?