随机游走模拟代码结果中数值3的成因排查咨询
随机游走代码中数值3的来源排查及修正
问题根源:代码逻辑和你设定的规则不一致
你规定骰子点数为6时,步数要加6再加一次掷骰结果,但代码里的else分支只加了第二次掷骰的结果,漏掉了加6的操作。数值3的产生过程
拿列表开头的[0,3]举例:- 初始步数是0,第一次掷骰得到6,触发else分支
- 代码执行
step = 0 + np.random.randint(1,7),如果这次随机生成的点数是3,那么step就变成3,直接追加到列表中,就出现了你看到的数值3。
修正后的代码
random_walk = [0] for x in range(100) : step = random_walk[-1] dice = np.random.randint(1,7) if dice <= 2: step = max(0, step - 1) elif dice <= 5: step = step + 1 else: # 修正:添加+6的操作,符合规则要求 step = step + 6 + np.random.randint(1,7) random_walk.append(step) print(random_walk)
内容的提问来源于stack exchange,提问作者Bobaplz
相关产品推荐
相关产品推荐

