in reply to RE: Spooky math problem (featuring perl!) in thread Spooky math problem
Update: OK I'm rereading 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 onetime shot, we have to assume that the number we were given is, on average, midway 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 midway 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.
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 "nonzero 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 coinflipping (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.)  [reply] 
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 *mindbogglingly 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
 [reply] 

I don't care what the theory is. I may not understand it, in which case my changes to the code are nonsensical, 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?  [reply] [d/l] [select] 
