Problem. Two envelopes hold and . You pick one uniformly at random and see . “The other one holds or with probability each, so it is worth : always switch.” The same argument applied to the other envelope says to switch back. Where is the error?
Answer. The step ” or with probability each, for every ” is false for every probability distribution on . Once a real prior is used, the answer depends on ; without looking, switching gains nothing; with a prior of finite mean, switching cannot gain for every ; and a randomized threshold beats against every prior.
| Situation | Conclusion |
|---|---|
| no information used | staying and switching both give in expectation (symmetry) |
| prior on , you see | switch iff |
| ” / for every “ | needs a uniform distribution on all of , which does not exist |
| prior with | switching cannot have positive conditional gain for every |
| Broome’s prior , | conditional gain for every (and for ), but |
| unknown prior, random threshold with positive density (Cover) | switch iff : win probability |
Where the argument breaks
Let be the prior on the smaller amount. Seeing , you hold the smaller envelope with posterior probability
and the expected gain of switching is , positive iff . The paradox silently assumes for all .
// prior p[k] = P(smaller amount = 2^k), k = 0..K-1; you see x = 2^k. Returns E[other - x | x].
double switchGain(const vector<double>& p, int k) {
double small = k < sz(p) ? p[k] : 0; // you hold the smaller: smaller = 2^k
double big = k > 0 ? p[k - 1] : 0; // you hold the larger: smaller = 2^(k-1)
double x = ldexp(1.0, k), ps = small / (small + big);
return ps * x - (1 - ps) * x / 2;
}
// Cover's randomized switching: threshold T ~ Exp(1); switch iff x < T. Returns the empirical win rate for smaller amount a.
double coverWinRate(double a, int trials, mt19937_64& rng) {
exponential_distribution<double> T(1.0); int win = 0;
for (int t = 0; t < trials; t++) {
bool holdSmall = rng() & 1; double x = holdSmall ? a : 2 * a;
bool sw = x < T(rng);
win += (holdSmall != sw) ? 0 : 1; // end with 2a iff (hold small and switch) or (hold big and stay)
}
return double(win) / trials;
}Proof: symmetry, the impossible uniform prior, and the finite-mean theorem
Symmetry. Let be the amount in your envelope and the other. The pair has the same distribution as (the choice is a fair coin independent of ), so whenever this is finite: switching blindly gains nothing.
No prior gives everywhere. for all means for all , so is constant on ; a constant cannot sum to 1 over infinitely many points.
Finite mean. Suppose and for every with on a set of positive probability. Then , contradicting . Hence with a finite-mean prior, “switching is better whatever I see” is false.
Broome’s prior. For , , so and the gain is ; at you surely hold the smaller and gain . The prior sums to , but , so the symmetry identity is and nothing contradicts the positive conditional gains.
Cover’s strategy. Condition on and . If both possible are : you never switch and win with probability . If you always switch: again . If you switch exactly when holding , so you always end with . Averaging, the win probability is , and because has positive density on . For this is . Both functions were checked against simulation (posterior gains for Broome’s prior, win rates for ).
Related notes
- Probability and Expectation
- St. Petersburg Paradox (the other famous infinite-expectation paradox)
- Monty Hall