暂时设置随机种子,例如" new Random()"

时间:2012-06-17 20:25:08

标签: python random

在Python中,使用某个种子生成一些随机数但不重新设置全局状态的最佳方法是什么?在Java中,您可以简单地写一下:

Random r = new Random(seed);
r.nextDouble();

并且标准Math.random()不会受到影响。在Python中,我能看到的最佳解决方案是:

old_state = random.getstate()
random.seed(seed)
random.random()
random.setstate(old_state)

这是惯用的Python吗?它似乎不如Java解决方案那么干净,不需要“恢复”旧种子。我很想知道是否有更好的方法来做到这一点。

1 个答案:

答案 0 :(得分:23)

您可以实例化自己的Random对象。

myrandom = random.Random(myseed)

random模块管理自己的Random实例,该实例不受对myrandom所做的更改的影响。