使用 set.seed 函数的原因

发布于 2022-07-28 22:58:07

在启动程序之前,我已经多次看到set.seedR 中的函数。我知道它基本上用于随机数生成。有什么特别需要设置的吗?

关注者
0
被浏览
4
1 个回答
  • 面试哥
    面试哥 2022-07-28
    为面试而生,有面试问题,就找面试哥。

    需求是对可重现结果的可能需求,例如,这可能来自尝试调试程序,或者当然来自尝试重做它的工作:

    这两个结果我们将“永远”不会重现,因为我只是要求一些“随机”的东西:

    R> sample(LETTERS, 5)
    [1] "K" "N" "R" "Z" "G"
    R> sample(LETTERS, 5)
    [1] "L" "P" "J" "E" "D"
    

    然而,这两个是相同的, 因为我设置了种子

    R> set.seed(42); sample(LETTERS, 5)
    [1] "X" "Z" "G" "T" "O"
    R> set.seed(42); sample(LETTERS, 5)
    [1] "X" "Z" "G" "T" "O"
    R>
    

    有大量关于这一切的文献;维基百科是一个好的开始。本质上,这些 RNG 被称为伪随机数生成器,因为它们实际上是 完全算法
    的:给定相同的种子,你会得到相同的序列。这 是一个特性 ,而不是一个错误。



推荐阅读
知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看