在Python中,使用某个种子生成一些随机数但不重新设置全局状态的最佳方法是什么?在Java中,您可以简单地写:
Random r = new Random(seed);
r.nextDouble();
Run Code Online (Sandbox Code Playgroud)
并且标准Math.random()不会受到影响.在Python中,我能看到的最佳解决方案是:
old_state = random.getstate()
random.seed(seed)
random.random()
random.setstate(old_state)
Run Code Online (Sandbox Code Playgroud)
这是惯用的Python吗?它似乎不如Java解决方案那么干净,不需要"恢复"旧种子.我很想知道是否有更好的方法来做到这一点.
sen*_*rle 23
您可以实例化自己的Random对象.
myrandom = random.Random(myseed)
Run Code Online (Sandbox Code Playgroud)
该random模块管理自己的实例Random,该实例不受更改的影响myrandom.