You need to enable JavaScript to run this app. 模拟抛硬币计算正面实验概率的Python代码问题排查
优惠活动
大模型
产品
解决方案
定价
更多

模拟抛硬币计算正面实验概率的Python代码问题排查

代码问题排查与修复

核心问题点

  • h_count 初始化位置错误:放在for循环内部,每次遍历元素都会被重置为0,无法累计正面的总出现次数,只会根据当前遍历的元素是否为正面输出0或1
  • 打印语句位置错误:放在for循环内部,每遍历一个元素就打印一次,而不是完成全部元素的统计后再输出最终概率
  • 类型运算错误:直接将整数类型的h_count和字符串"%"做加法运算,会触发类型报错
  • 概率计算逻辑缺失:没有执行「正面次数/总抛掷次数*100」的计算逻辑,直接输出计数不符合预期

修复后代码

保留了你需要打印array_ht数组的需求,同时支持两种计数逻辑可选:

import random

array_ht = []
flip_count = 0
total_flip = 100  # 可调整为你需要的总抛掷次数,比如示例中的9
h_count = 0

while flip_count != total_flip:
    n = random.randint(0,1)
    if n == 0:
        n = "h"
        # 可选逻辑1:生成时直接统计正面次数,效率更高
        h_count += 1
    elif n == 1:
        n = "t"
    flip_count += 1
    array_ht.append(n)

# 可选逻辑2:生成完数组后遍历统计,和你原本的代码逻辑更贴合
# h_count = 0
# for x in array_ht:
#     if x == "h":
#         h_count += 1

probability = h_count / total_flip * 100
print("抛掷结果序列:", array_ht)
print(f"正面朝上实验概率:{probability}%")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.18 17:15:00