【问题标题】:Deterministic pseudorandom number generation in RR中的确定性伪随机数生成
【发布时间】:2013-11-19 23:06:23
【问题描述】:

我需要生成一个由“随机”数字组成的向量,但它们需要是完全确定的。数字来自的分布并不那么重要。在 R 中执行此操作的简单方法是什么?

不使用runif之类的原因是每次调用它都会返回不同的序列。

不生成一个序列(使用runif)并重用它的原因是调用是在不同的机器上进行的。我可以将序列硬编码到脚本中,但所需序列的长度在设计时是未知的,因此基于一些硬编码种子的伪随机序列更可取。

【问题讨论】:

    标签: r random prng


    【解决方案1】:

    您知道set.seed() 命令吗?

    R> set.seed(42); runif(3)           
    [1] 0.914806 0.937075 0.286140
    R> set.seed(42); runif(3)            # same seed, same numbers
    [1] 0.914806 0.937075 0.286140
    R> set.seed(12345); runif(3)         # different seed, different numbers
    [1] 0.720904 0.875773 0.760982
    R>
    

    【讨论】:

    • 是的,谢谢,本来打算这样做却被分心了。讨厌工作阻碍:)
    【解决方案2】:

    还有SoDa package(和manual [PDF])允许您包装其他操作并恢复开始和结束种子。它只是set.seed() 的包装,但您可以更轻松地自行检查(例如在单元测试中)。

    【讨论】:

      猜你喜欢
      • 2018-05-20
      • 1970-01-01
      • 2016-02-27
      • 1970-01-01
      • 2015-08-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-18
      相关资源
      最近更新 更多