代码之家  ›  专栏  ›  技术社区  ›  John Smith

如果用户未设置种子,如何选择种子?

  •  5
  • John Smith  · 技术社区  · 6 年前

    为了重现性,人们必须选择一个种子。在R中,我们可以使用 set.seed() 我的问题是,当种子没有明确设置时,计算机如何选择种子? 为什么没有默认种子?

    1 回复  |  直到 6 年前
        1
  •  12
  •   mischva11 Jochen Ritzel    4 年前

    伪随机数生成器(PRNG)需要一个默认的起始值,您可以使用 set.seed() . 如果没有给定,它通常需要基于计算机的信息。这可能是时间,cpu温度或类似的东西。如果你想要一个更随机的开始值,可以使用物理值,比如白噪声或核衰变,但是你通常需要一个外部信息源来获取这种随机信息。

    这个 documentation

    最初,没有种子;当需要种子时,将根据当前时间和进程ID创建一个新的种子。因此,默认情况下,不同的会话将给出不同的模拟结果。但是,如果恢复以前保存的工作区,则可能会从上一个会话还原种子。

    对于统计方法来说,由于验证和验证的原因,这一点很重要,但是当你涉及到密码学时,它就变得更加重要了。在这个领域,一个好的PRNG是强制性的。

    推荐文章