我有一个相当大的程序,在这里我使用random模块中不同文件中的函数。我希望能够在一个位置设置一次随机种子,以使程序始终返回相同的结果。可以做到python吗?
random
python
运行的主要python模块应该import random并调用random.seed(n)-random只要其他位置未重置种子,该代码就会在所有其他导入之间共享。
import random
random.seed(n)
我可以在不知道的地方重置种子吗?因为在主文件中只设置一次种子并不能解决问题
@MischaObrecht我猜是-种子仅在随机模块的首次导入时初始化-如果导入多次,它将不会执行初始化和重置种子-因此代码中必须有一个显式调用
如果要从
random
模块级代码中调用方法,即要在main中导入,则在进入in main之前random.seed(n)
,这些调用将在种子之前进行,因此将花费时间,并且有效地不可复制随机的。如果事实证明某些第三方代码正在重新植入RNG(不太可能,但可能),请注意,您可以通过
random.Random()
构造函数创建具有独立状态的其他随机数生成器,并在严格可重复性很重要的情况下使用这些生成器。这对我不起作用。而且我没有可复制的代码。我猜我将不得不检查所有导入库的文档...(请参阅stackoverflow.com/questions/37886997/…