←back to thread

219 points skadamat | 1 comments | | HN request time: 0s | source
Show context
xnorswap ◴[] No.41301135[source]
My favourite corollary of this is that even if you win the lottery jackpot, then you win less than the average lottery winner.

Average Jackpot prize is JackpotPool/Average winners.

Average Jackpot prize given you win is JackpotPool/(1+Average winners).

The number of expected other winners on the date you win is the same as the average number of winners. Your winning ticket doesn't affect the average number of winners.

This is similar to the classroom paradox where there are more winners when the prize is poorly split, so the average observed jackpot prize is less than the average jackpot prize averaged over events.

replies(6): >>41301213 #>>41302432 #>>41302595 #>>41303568 #>>41304369 #>>41305006 #
pif ◴[] No.41301213[source]
> The number of expected other winners on the date you win is the same as the average number of winners.

Sorry, but no! The total number of expected winners (including you) is the same as the average number of winners.

replies(3): >>41301245 #>>41301876 #>>41302414 #
xnorswap ◴[] No.41301245[source]
No, it's 1+average number of winners.

If the odds of winning are 1 in 14 million, and 28 million tickets are sold, then you expect there to be 2 winners.

If look at your ticket and see you've won the lottery, then the odds of winners are still 1 in 14 million, and out of the 27,999,999 other tickets sold, you expect 2 other winners, and now expect 3 winners total, given you have won.

replies(5): >>41301374 #>>41301753 #>>41302155 #>>41302202 #>>41302412 #
1. xnorswap ◴[] No.41301374[source]
For anyone unconvinced, let's simulate this.

Instead of 1 in 14 million, we'll just do 1 in 2, and 8 players.

So we'll check how many bits are set in the average random byte:

    void Main()
     {
      byte[] buffer = new byte[256*1024];
      Random.Shared.NextBytes(buffer);
      var avg = buffer.Average(b =>     System.Runtime.Intrinsics.X86.Popcnt.PopCount(b));
      Console.WriteLine(avg);
     }
Okay, bounces around 3.998 to 4.001, seems normal.

Now let's check how many bits are set in the average random byte given that the low bit is 1 (i.e. player 1 has won!)

    void Main()
     {
      byte[] buffer = new byte[256*1024];
      Random.Shared.NextBytes(buffer);
      var avg = buffer
       .Where(b => (b & ((byte)0x01)) == 0x01)
       .Average(b =>     System.Runtime.Intrinsics.X86.Popcnt.PopCount(b));
      Console.WriteLine(avg); 
     }
Now ~=4.500

Which is 1+3.5

In this case, we're 1+ average from the 7 other players, so being an average of 7 others not 8 others is significant.

If we simulate with millions of players, you'll see that removing 1 person from the pool makes essentially no difference.