This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import random | |
n_start_milk_choc = 2 | |
n_start_black_choc = 8 | |
n_trials = 1000000 | |
n_milk_last = 0 | |
for _ in range(n_trials): | |
prev_pulled_choc = None | |
n_milk_choc = n_start_milk_choc | |
n_black_choc = n_start_black_choc | |
while n_black_choc > 0 and n_milk_choc > 0: | |
pulled_choc = random.random() < n_black_choc / (n_black_choc + n_milk_choc) | |
if prev_pulled_choc is None or prev_pulled_choc == pulled_choc: | |
if pulled_choc == 1: | |
n_black_choc -= 1 | |
else: | |
n_milk_choc -= 1 | |
if prev_pulled_choc is None: | |
prev_pulled_choc = pulled_choc | |
elif prev_pulled_choc != pulled_choc: | |
prev_pulled_choc = None | |
assert n_black_choc != 0 or n_milk_choc != 0 | |
n_milk_last += (n_milk_choc > 0) | |
print("Fraction of simulations with last milk chocolate", n_milk_last / n_trials) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment