【发布时间】:2015-06-11 12:11:44
【问题描述】:
我想在 R 和 Julia 中生成相同的随机数。两种语言似乎都默认使用 Mersenne-Twister 库,但在 Julia 1.0.0 中:
julia> using Random
julia> Random.seed!(3)
julia> rand()
0.8116984049958615
在 R 中生成 0.811...:
set.seed(3)
runif(1)
产生0.168。
有什么想法吗?
我对感兴趣的人的用例:通过将输出与 R 中等效库的输出进行比较来测试需要随机数生成(例如统计引导)的新 Julia 代码。
【问题讨论】:
-
一种粗略的方法是预先生成所有引导程序副本(或者可能只是索引)并将它们存储在两个程序都可以使用的文件中。
-
这不是一个答案,但我猜种子变成 MT 库的初始状态的方式不一样。我认为答案可以而且必须在源代码中找到(对开源来说是的)。
-
@joran 同意,这就是我最终可能会做的事情。不过,这需要做一些工作(至少对我来说——我是 R 的相对新手),因为这意味着要同时更改 R 和 Julia 源以在文件中查找随机数。
-
@IainDunning 对我来说听起来很合理。我想我先在这里问一下,以防有人能在 5 分钟内回答我可能需要一整天的时间:-)
-
使用
RCall没有帮助?
标签: r random julia mersenne-twister