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

计算0-5棋盘100次到达格子5所需掷骰子次数及代码调试

代码错误分析与修正

核心错误点

  • 随机数调用逻辑错误:单次循环内多次执行randint(1,6),既存在无实际作用的打印随机数操作,又在else分支额外多加了一次骰子点数,完全不符合「每次只掷1次骰子、走对应步数」的规则
  • 格子位置判断逻辑错误:棋盘是0-5共6个编号,当前所在格子应为累计步数对6取模的结果,落在格子5的判断条件应为累计步数 % 6 == 5,原代码写的add %5 ==0完全不符合业务逻辑
  • 计数逻辑混乱:掷骰子次数统计变量count和实际调用randint的次数不匹配,导致总次数统计完全失真

修正后代码

from random import *
seed(8)
five = 0
count = 0
total_steps = 0  # 累计行走步数,用于计算当前所在棋盘格
while five < 100:
    # 每次仅掷一次骰子
    dice = randint(1,6)
    count += 1
    total_steps += dice
    # 判断是否落在格子5
    if total_steps % 6 == 5:
        five +=1
print(count)

结果说明

运行修正后的代码,在seed(8)的固定随机种子下输出结果和预期的690一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 23:36:02