6

我读到种子用于初始化随机数生成器。但似乎种子的随机性对于从生成器获得良好的随机性并不重要。所以我想了解什么是种子?为什么这样称呼?最后,为什么要使用计算机系统中的时间来生成这些种子?

4

1 回答 1

10

一个伪随机数生成器产生一个数字序列。它不是真正随机的,但通常是一种数学计算,它产生的输出与一些理想的分布相匹配,并且没有明显的模式。为了生成这样的序列,必须为生成器存储状态,以便能够生成该序列中的下一个数字。每次使用上一步的输出的某些部分来更新状态。

播种显式初始化此状态。'种子'是一个起点,从它开始生长。在这种情况下,一个数字序列。

这可以用于始终生成相同的序列(通过使用已知的常量种子),这对于具有确定性行为很有用。这对于调试、某些网络应用程序、密码学等很有用。

或者,在您希望行为不可预测的情况下(每次运行程序时总是不同,可能是纸牌游戏),您可以使用可能不断变化的数字作为种子,例如时间。

序列的“随机性”不取决于选择的种子,尽管它确实取决于不重新播种序列。

于 2013-03-13T14:45:56.437 回答