我习惯打字random.randrange
。我会做一个from random import Random
从现在开始发现错误。
对于涉及程序生成的游戏(不,不是 Minecraft 克隆:p),我想保留几个不同的伪随机数生成器:
- 一个用于世界的生成(风景、任务等),
- 一个用于世界上可能发生的随机事件(例如战斗中的伤害)。
理由是我希望能够重现第一个,所以我不希望第二个干扰。
我想random.Random
就是为此而生的。然而,有件事让我困惑:
import random
rnd = random.Random()
rnd.seed(0)
print [random.randrange(5) for i in range(10)]
rnd.seed(0)
print [random.randrange(5) for i in range(10)]
产生两个不同的序列。当我做rnd = random
然后事情按预期进行,但我确实需要几个发电机。
我缺少什么?
它的工作原理几乎与您尝试的完全一样,但 end.seed() 适用于结尾object
只需使用
rnd = random.Random(0) # <<-- or set it here
rnd.seed(7)
print [rnd.randrange(5) for i in range(10)]
或者通过设置全局种子,如下所示:
random.seed(7)
print [random.randrange(5) for i in range(10)]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)