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

如何用Python模拟非随机概率3连胜小游戏并修正单轮计数问题

3连胜小游戏模拟:修正计数错误并输出独立轮次数据

问题根源

原代码中streak_counter和videos_watched在所有轮次间共享,未在每轮游戏开始时重置,导致输出的是累计观看次数,而非单轮独立数据。

修正后的代码

import random

outcome = [1, 0]
total_trials = 10
total_videos_watched = 0

for iteration in range(total_trials):
    current_streak = 0
    round_videos = 0  # 每轮游戏前重置单轮计数
    
    while current_streak < 3:
        # 65%概率猜对(1),35%概率猜错(0)
        result = random.choices(outcome, weights=(65, 35), k=1)[0]
        round_videos += 1
        
        if result == 1:
            current_streak += 1
        else:
            current_streak = 0
    
    # 按要求格式输出单轮结果
    print(f"iteration {iteration + 1} : {round_videos}")
    total_videos_watched += round_videos

# 计算并输出平均次数
average = total_videos_watched / total_trials
print(f"\n平均获胜所需观看视频次数: {average:.2f}")

关键修改点

  • 将current_streak(原streak_counter)和round_videos(原videos_watched)移至for循环内部,每轮游戏启动时重置为0,保证轮次数据独立。
  • 优化变量命名,提升代码可读性。
  • 补充了平均次数计算,满足问题中"求解平均获胜所需次数"的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 22:07:48