如何在Python中统计并输出100次随机抛硬币的最长连续正面次数
100次抛硬币最长连续正面次数统计实现
先修正原代码的核心问题
你当前的代码里,count只在抛出正面时才递增,抛出反面时count不会变化,这会导致循环永远无法执行满100次——必须把count += 1移到循环末尾,不管抛硬币结果是正还是反,都要计数一次。
需要新增的统计变量
要统计最长连续正面次数,需要两个额外的计数器:
current_streak:记录当前正在进行的连续正面次数,初始值设为0max_streak:记录迄今为止出现过的最长连续正面次数,初始值设为0
完整实现代码
import random total_heads = 0 count = 0 current_streak = 0 # 当前连续正面次数 max_streak = 0 # 最长连续正面次数 while count < 100: coin = random.randint(1, 2) if coin == 1: print("H") total_heads += 1 current_streak += 1 # 每次正面后检查是否刷新最长记录 if current_streak > max_streak: max_streak = current_streak elif coin == 2: print("T") current_streak = 0 # 连续正面被打断,重置计数器 count += 1 # 确保每一次抛硬币都计入总次数 # 最后输出统计结果 print(f"\n总正面次数: {total_heads}") print(f"最长连续正面次数: {max_streak}")
关键逻辑说明
- 连续正面计数:每次抛出正面时,
current_streak加1;一旦抛出反面,立刻把current_streak重置为0,因为连续正面的序列被打断了。 - 更新最长记录:每抛出一次正面,都要对比当前连续次数和历史最长次数,如果当前更长,就更新
max_streak的值。 - 总次数控制:把
count += 1放在循环最后,保证不管抛硬币结果如何,都能完成100次的循环要求。
内容的提问来源于stack exchange,提问作者user20022120
相关产品推荐
相关产品推荐

