在单个 Def 中随机播种

Seeding Random in a Single Def

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

您可以使用 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 random module