Dice Rolls Between Three Players

diceprobability

The setup of the game involves three players and a fair, six-sided die. The rules are: If a player rolls a six, they win the game, if they roll an odd number, they pass the die to the player on their right, and if they roll an even number other than six, they pass the die to the player on their left.

The question: What is the probability that the first person to roll the die wins?

Attempt: Broke this up into different cases, suspecting a geometric distribution. Probability that person who rolled first wins on 1st roll is 1/6, probability of winning on the 2nd roll is 0, probability of winning on the 3rd roll is 1/18, and so on. However, I couldn't establish any clear geometric pattern, is this approach a dead end?

Best Answer

Let $X$ be the event in which player $1$ wins the game, and $T$ denote the person whose turn it is to throw the die. We then find:

$$P(X | T = 1) = \frac{1}{6} + \frac{2}{6} P(X | T = 2) + \frac{3}{6} P(X | T = 3)$$

We know that:

$$P(X | T = 2) = \frac{3}{6} P(X | T = 1) + \frac{2}{6} P(X | T = 3)$$

$$P(X | T = 3) = \frac{2}{6} P(X | T = 1) + \frac{3}{6} P(X | T = 2)$$ $$= \frac{2}{6} P(X | T = 1) + \frac{3}{6} \left(\frac{3}{6} P(X | T = 1) + \frac{2}{6} P(X | T = 3)\right)$$ $$\iff P(X | T = 3) = \frac{21}{30} P(X | T = 1)$$

As such, it follows that:

$$P(X | T = 1) = \frac{1}{6} + \frac{2}{6} \left(\frac{3}{6} P(X | T = 1) + \frac{2}{6} P(X | T = 3)\right) + \frac{3}{6} P(X | T = 3)$$ $$= \frac{1}{6} + \frac{2}{6} \left(\frac{3}{6} P(X | T = 1) + \frac{2}{6} \frac{21}{30} P(X | T = 1)\right) + \frac{3}{6} \frac{21}{30} P(X | T = 1)$$ $$\iff P(X | T = 1) = \frac{30}{73} \approx 0.4110$$

This result can be confirmed using the following Python code:

from random import randint

s = [0, 0, 0]
n = 1000000
for _ in range(n):
    p = 0
    while True:
        t = randint(1, 6)
        if t == 6:
            s[p % 3] += 1.0 / n
            break
        elif t == 2 or t == 4:
            p += 2
        else:
            p += 1
print(s)

An example run returned:

[0.411106, 0.300798, 0.288096]
Related Question