Conditional Probability · Strange Coin Game

Lesson 7

Nikolai Chukhin · Alexander S. Kulikov

Let's confirm this with an experiment.

from random import randint, seed


def appears_before(first_pattern, second_pattern):
    good, num_experiments = 0, 1000000
    for _ in range(num_experiments):
        last_three_tosses = [randint(0, 1) for _ in range(3)]
        while True:
            if last_three_tosses == first_pattern:
                good += 1
                break
            elif last_three_tosses == second_pattern:
                break
            else:
                last_three_tosses = last_three_tosses[1:] + [randint(0, 1), ]

    return good / num_experiments


seed(19)

print(appears_before([0, 0, 1], [0, 1, 1]))

0.666727