在单个 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。
在我的程序中,我试图包含一个随机位置生成器,而不是保存生成的每个位置(供人们探索),我宁愿重复使用我用来生成开始位置的种子与,尽管这可能会与我的代码的其他部分发生冲突。有没有办法在 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。