小编Lee*_*bar的帖子

python中randint函数的意外结果

我正在尝试模拟 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,它们似乎工作正常。

模拟部分只是检查每个结果是否均等可能,但输出似乎关闭。 …

python random

2
推荐指数
1
解决办法
68
查看次数

标签 统计

python ×1

random ×1