Ama*_*l K 0 python random random-seed
我已经读过randomPython 中的模块使用先前生成的值作为种子,但第一次使用系统时间除外。(/sf/answers/1584782671/, https://pynative.com/python-random-seed/)如果这是真的,为什么我没有拿到相同的值时,我明确设置之前产生价值,就像这样的新种子:
random.seed(random.randint(1, 100))
Run Code Online (Sandbox Code Playgroud)
同样对于该random.random()方法也不起作用。
random.seed(random.randint(1, 100))
Run Code Online (Sandbox Code Playgroud)
为什么最后一次randint()通话不给88?
提前致谢!
因为您读到的是错误的,或者您误解了它的意思。CPython在后台使用Mersenne Twister生成器,该生成器占用状态19933位。您传递给什么.seed()是不是新的状态,而只是一堆表示经由无证(实现相关的)算法扩展到全19937位状态位。
注意:如果要保存和还原状态,则是.getstate()和.setstate()方法的目的。
Pythonrandom模块不使用先前生成的值作为种子。但是,Python 使用Mersenne Twister生成器来创建伪随机性。该算法是确定性的:这意味着它的下一个状态(下一个生成的数字)取决于前一个状态。这与种子不同,种子是用于配置生成器初始状态的值。
| 归档时间: |
|
| 查看次数: |
97 次 |
| 最近记录: |