python random.seed是如何工作的

python random.seed是如何工作的,python,random,Python,Random,我一直在遵循这个例子 他把这当作结果 >>> import random >>> rnd = random.Random(0) >>> [rnd.randint(0, 10) for i in range(10)] [9, 8, 4, 2, 5, 4, 8, 3, 5, 6] >>> rnd = random.Random(0) >>> [rnd.randint(0, 10) for i in range

我一直在遵循这个例子

他把这当作结果

>>> import random
>>> rnd = random.Random(0)
>>> [rnd.randint(0, 10) for i in range(10)]
[9, 8, 4, 2, 5, 4, 8, 3, 5, 6]
>>> rnd = random.Random(0)
>>> [rnd.randint(0, 10) for i in range(10)]
[9, 8, 4, 2, 5, 4, 8, 3, 5, 6]
>>> rnd = random.Random(1)
>>> [rnd.randint(0, 10) for i in range(10)]
[1, 9, 8, 2, 5, 4, 7, 8, 1, 0]
我没有什么问题

  • 为什么前两个序列是相同的
  • 当我们将1作为参数dos传递时,它意味着第一个值如何作为1传递

  • 因为它只是一个伪随机发生器。这是一个具有良好平方分布的函数(在数学意义上)。通常的做法是使用系统时间(毫秒)作为种子:

    rnd = random.Random(int(round(time.time() * 1000)))
    

    因为它只是一个伪随机发生器。这是一个具有良好平方分布的函数(在数学意义上)。通常的做法是使用系统时间(毫秒)作为种子:

    rnd = random.Random(int(round(time.time() * 1000)))
    

    前两个序列是相同的,因为您使用相同的值为它们设定种子。这是一个功能


    可设置种子使您能够通过重用同一种子有意重复序列。例如,这可以用于实现与原始游戏完全相同的游戏重播,尽管游戏使用随机数生成器进行游戏内遭遇战或某些AI决策。

    前两个序列是相同的,因为您使用相同的值对它们进行了播种。这是一个功能


    可设置种子使您能够通过重用同一种子有意重复序列。例如,这可以用于实现完全等同于原始版本的游戏重播,尽管游戏使用随机数生成器进行游戏内遭遇战或某些AI决策。

    因此,这意味着,如果我给出相同的种子,则对于任意数量的随机数,每一次
    n
    迭代都是相同的generators@user196264097对如果您给出相同的种子,那么您将从生成器中获得相同的序列。这就是伪随机数生成器的工作原理。这意味着,如果我给出相同的种子,那么对于任意数量的随机数,每个
    n
    迭代都是相同的generators@user196264097是的,如果您提供相同的种子,那么您将从生成器中获得相同的序列。这就是伪随机数生成器的工作原理。