基于n骰子滚动的随机行走步骤



我正在编写一个函数,该函数接受3个输入p、Q、N,并根据以下内容返回基于N个骰子的步进器的位置:

  • 如果死亡结果为1,步行者向东走p步。

  • 如果死亡的结果是2,步行者向南走Q步。

  • 如果骰子的结果是3,步行者向北走Q+p步。

  • 如果死亡的结果是4,步行者向西走Q步。

  • 如果死亡的结果是5,步行者向北走p步,向东走Q步。

  • 如果死亡的结果是6,步行者向南走Q步,向西走p步。

函数返回助行器的最终位置,其中包含两个字符串:例如,[‘3E’,‘4S’]显示助行器向东走了3步,向南走了4步。

import numpy.random
def walk_dice(P, Q, N):
ans = list(numpy.random.randint(1,7,N))
if 1 in ans:
pos[0]+P
elif 2 in ans:
pos[1]-Q
elif 3 in ans:
pos[1]+P+Q
elif 4 in ans:
pos[0]-Q
elif 5 in ans:
pos[0]+Q
pos[1]+P
elif 6 in ans:
pos[0]-P
pos[1]-Q
return pos
numpy.random.seed(seed=10)
print(walk_dice(3, 4, 2))
#[1, 2]

我每次都得到相同的输出。这个代码哪里出错了?

问题就在这里:

numpy.random.seed(seed=10)

(顺便说一句,大多数人通过使用import numpy as np来减少打字(。

但因为你每次都把种子设定为完全相同的东西,所以结果总是完全相同的。

这应该通过删除我指出的那条线来解决。

最新更新