B Simple Die Game: Win by Rolling 1-5 Before 6 - Odds of Winning?

  • B
  • Thread starter Thread starter mathman
  • Start date Start date
  • Tags Tags
    Game
AI Thread Summary
The game involves rolling a die until all numbers 1-5 appear at least once, while avoiding a 6, which results in a loss. The odds of winning are calculated to be approximately 0.166, or 1 in 6, since any number can be the last one seen. Various approaches to calculating the odds yield the same result, confirming that the overall odds are indeed against the player despite the perception that they are favorable with each roll. The game has been referenced in popular culture, notably on the Price is Right show, emphasizing the misleading notion that the odds are never against the player. Ultimately, the probability analysis shows that the odds remain consistent across different methods of calculation.
mathman
Science Advisor
Homework Helper
Messages
8,130
Reaction score
573
TL;DR Summary
Throw die repeatedly
Game: throw die repeatedly until all numbers 1-5 show up ay least once (win), before a six shows up on the way (lose). Odds of winning?

Note: Someone posted this on another forum and I was able to come up with three different approaches (two very similar). Try to get them.
 
Physics news on Phys.org
Trivially, some number has to come up last. Keep rolling until 5 of the 6 numbers have been seen.
Odds are identical that any number is that last one seen, so 1 in 6 odds that it's a 6 and you win.

Given the other approaches, do any give different odds?

This game has effectively been played for years in the Price is Right game show. The standard line is that with each roll, 'the odds are never against you', which of course they are overall.
 
  • Like
Likes FactChecker, etotheipi and PeroK
Other approaches come up with same result.
 
Not a proof, but I tried
Python:
import random
count = 0
n = 100000
thrown = [0,0,0,0,0,0]
current = 0

for i in range(n):
    while(current!=5):
        current = random.randint(0, 5)
        thrown[current] = 1
        if(current==5):
            num = int("".join(str(x) for x in thrown), 2)
            if(num == 63):
                count+=1
    current = 0
    for i in range(0, len(thrown)):
        thrown[i] = 0

print(count/n)
and it gets pretty close to 0.166 with 100,000 throws.
 
  • Like
Likes Dale and sysprog
Simple proof: ignore throws which repeat a number. The following considers only throws with a new number. First throw 5/6 not 6, second throw 4/5 not 6, etc. probability of not 6 after 5 throws is 5!/6!=1/6.
 
  • Like
Likes FactChecker
Back
Top