我习惯打字random.randrange.我会做一个from random import Random从现在开始发现错误.
对于涉及程序生成的游戏(nope,而不是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)]
Run Code Online (Sandbox Code Playgroud)
产生两个不同的序列.当我这样做时,rnd = random事情按预期工作,但我确实需要几个发电机.
我错过了什么?
Joh*_*erg 13
它几乎与您尝试的完全一样,但rnd.seed()适用于rnd 对象
只是用
rnd = random.Random(0) # <<-- or set it here
rnd.seed(7)
print [rnd.randrange(5) for i in range(10)]
Run Code Online (Sandbox Code Playgroud)
或者通过设置全局种子,如下所示:
random.seed(7)
print [random.randrange(5) for i in range(10)]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9546 次 |
| 最近记录: |