gpt4 book ai didi

Python:随机种子问题

转载 作者:太空宇宙 更新时间:2023-11-04 09:01:38 26 4
gpt4 key购买 nike

我知道来自任何计算机的随机数都不是真正随机的,但我希望它比我目前得到的多一点变化。我正在尝试模拟掷骰子,例如 4d6 将是四卷 6 面骰子。这比简单地生成一个 4 到 24 之间的随机数要准确得多(我不会在这里深入概率曲线。)

我发现,从当前系统时间开始播种(我一直觉得它和任何种子一样好,可能是错误的)是数字一直很低。我的意思是,在大约 50 次 3d6 之后,我的总和从未超过 12。这是范围顶部 1/3 的 0 命中率,我认为这特别奇怪。

这是一些代码,希望有人知道更好的方法来做到这一点,也许从系统时间播种本质上是不好的,我只是不知道:(我省略了不相关的类定义)

from random import randrange, seed

def dieroll(self,numrolls,dierange):
""" This method will return 'num' rolls of a d'range' die.
For example, 4d6 will simulate four rolls of a 6-sided die. """

seed()
sum = 0
for roll in range(0, numrolls):
dieroll = randrange(1,dierange)
sum = sum + dieroll
print("Sum = %d" % sum)

这是我的一小部分结果:

>>> c.dieroll(3,6) 
Sum = 3
>>> c.dieroll(3,6)
Sum = 11
>>> c.dieroll(3,6)
Sum = 9
>>> c.dieroll(3,6)
Sum = 9
>>> c.dieroll(3,6)
Sum = 10
>>> c.dieroll(3,6)
Sum = 11
>>> c.dieroll(3,6)
Sum = 7
>>> c.dieroll(3,6)
Sum = 7
>>> c.dieroll(3,6)
Sum = 11
>>> c.dieroll(3,6)
Sum = 11
>>> c.dieroll(3,6)
Sum = 4
>>> c.dieroll(3,6)
Sum = 11
>>> c.dieroll(3,6)
Sum = 6
>>> c.dieroll(3,6)
Sum = 12
>>> c.dieroll(3,6)
Sum = 6
>>> c.dieroll(3,6)
Sum = 8
>>> c.dieroll(3,6)
Sum = 8

我希望数值呈钟形曲线,尽管样本集很小(我不打算发布全部 50 个结果),但我的总体结果偏低。

感谢您对此提供的任何帮助——我希望这些结果尽可能像“真正的骰子”一样真实!

编辑:在大约 20 次掷骰后,我确实获得了 13 和 14,所以我知道这是可能的。不过,我有大约 10 个 6 岁以下。

第二次编辑:我刚刚意识到 dierange 应该是 dierange + 1 —— 1d6 一直返回 1-5 的结果……仍然不确定种子是否尽可能准确。

最佳答案

randrangerange 一样,不包括其上限。

你的骰子没有 6..

比较 randint确实包括上限。

关于Python:随机种子问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24785618/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com