The following code is a response to a question someone asked a few years back. I'm trying to do something similar, but instead of stopping after 3 consecutive flips, I want to learn how to stop after a predetermined number of heads/tails have been reached (a different amount for each one). So stop the code if heads comes up 7 times, or tails comes up 8 times.
import random
def flips():
"""Coin flip simulation."""
# sum of coins
sum_heads = 0
sum_tails = 0
last_3_results = []
# Simulation
while True:
coin = random.randint(0,1)
if coin == 0:
sum_heads += 1
print("heads")
else:
print("tails")
sum_tails += 1
if sum_heads == 8:
print("Simulation complete! 8 total heads were flipped.")
break
if sum_tails == 9:
print("Simulation complete! 9 total tails were flipped.")
break
last_3_results.append(coin)
if len(last_3_results) > 3:
last_3_results.pop(0)
if len(last_3_results) ==3 and len(set(last_3_results)) == 1 and last_3_results[0] == 0:
break
# Ask user for repeat
result = input("Would you like to run the simulation again (yes/no)? ").lower()
while result == "yes":
flips()
break
flips()
Aucun commentaire:
Enregistrer un commentaire