首页 > 解决方案 > 在单个 Def 中随机播种

问题描述

在我的程序中,我试图包含一个随机位置生成器,而不是保存生成的每个位置(供人们探索),我宁愿重用我用来生成位置的种子,尽管这可以与我的代码的其他部分冲突。有没有办法可以在def范围内随机播种?或者至少在文件范围内?如果 stdlib random 不可能,是否可以单独使用一个?顺便说一句,我正在使用 python 3.8。

标签: pythonpython-3.xfunctionrandomrandom-seed

解决方案


您可以使用random.seed或创建Random基于特定种子的新对象。例如:

>>> from random import Random
>>> randomizer = Random(123)
>>> randomizer.randint(1, 100)
7
>>> randomizer.randint(1, 100)
35
>>> randomizer.randint(1, 100)
12

我可以使用相同的种子再次执行此操作,它会创建相同的随机数集。

>>> randomizer = Random(123)
>>> randomizer.randint(1, 100)
7
>>> randomizer.randint(1, 100)
35
>>> randomizer.randint(1, 100)
12
>>> randomizer = Random(123)
>>> randomizer.randint(1, 100)
7
>>> randomizer.randint(1, 100)
35
>>> randomizer.randint(1, 100)
12
>>> randomizer = Random(123)
>>> randomizer.randint(1, 100)
7
>>> randomizer.randint(1, 100)
35
>>> randomizer.randint(1, 100)
12

有关更多详细信息,请参阅 Python随机模块


推荐阅读