import random def flip(times): res = [] for i in range(times): res.append(random.choice(["H", "T"])) return res def check(flips, reps, streaks): last, h, t = "", 0, 0 for f in flips: if last == f: if f == "H": h += 1 else: t += 1 else: h = 0 t = 0 if h == reps or t == reps: streaks += 1 break last = f return streaks def test(times, length=100, reps=6): streaks = 0 for i in range(times): print(f"Testing {int((i * 100) / times)}%") streaks = check(flip(length), reps, streaks) print(f"Streak length: {reps}") print(f"Flips length: {length}") print(f"Tests: {times}") print(f"Result: {streaks} streaks ({(streaks * 100) / times}%).") test(10000, reps=6)