15

在 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 解决方案干净得多。我很想知道是否有更好的方法来做到这一点。

4

1 回答 1

27

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

myrandom = random.Random(myseed)

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

于 2012-06-17T20:30:42.013 回答