我正在尝试模拟 dnd 掷骰子以获得 1 到(对于本例)14 之间均匀分布的数字。
我的代码如下:
from random import randint
def r(n):
return randint(1, n)
def d4():
return r(4)
def d8():
return r(8)
def d2():
return d4()%2+1
def d7():
res = d8()
while res == 8:
res = d8()
return res
def d14():
return d7()*d2()
# sim
from collections import Counter
res = Counter()
for i in range(100000):
res[d14()] += 1
t = 0
for k in sorted(res.keys()):
print(k, res[k])
t += res[k]
print(t)
Run Code Online (Sandbox Code Playgroud)
我分别检查了 d2 和 d7,它们似乎工作正常。
模拟部分只是检查每个结果是否均等可能,但输出似乎关闭。 …