You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中统计并输出100次随机抛硬币的最长连续正面次数

100次抛硬币最长连续正面次数统计实现

先修正原代码的核心问题

你当前的代码里,count只在抛出正面时才递增,抛出反面时count不会变化,这会导致循环永远无法执行满100次——必须把count += 1移到循环末尾,不管抛硬币结果是正还是反,都要计数一次。

需要新增的统计变量

要统计最长连续正面次数,需要两个额外的计数器:

  • current_streak:记录当前正在进行的连续正面次数,初始值设为0
  • max_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}")

关键逻辑说明

  1. 连续正面计数:每次抛出正面时,current_streak加1;一旦抛出反面,立刻把current_streak重置为0,因为连续正面的序列被打断了。
  2. 更新最长记录:每抛出一次正面,都要对比当前连续次数和历史最长次数,如果当前更长,就更新max_streak的值。
  3. 总次数控制:把count += 1放在循环最后,保证不管抛硬币结果如何,都能完成100次的循环要求。

内容的提问来源于stack exchange,提问作者user20022120

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 07:20:30