在 Julia 随机数生成器中设置随机种子
Posted
技术标签:
【中文标题】在 Julia 随机数生成器中设置随机种子【英文标题】:set the random seed in julia generator of random numbers 【发布时间】:2014-09-20 07:08:15 【问题描述】:我想使用随机生成器对 julia 中的正态分布数进行一些检查。所以我想要的是获得相同的伪随机数序列。
实际上,我做的是随机矩阵,所以我希望我的两个程序都生成:
A = randn(dim,dim)
H = (A + A')/sqrt(2)
同一个H矩阵
【问题讨论】:
【参考方案1】:我认为 Random.seed!(int) 出于某种原因仅适用于下一个随机数。每次调用时都需要重用它。您可以将随机种子设置为一个函数,虽然像
function rr()
rng = MersenneTwister(22);
return rng
end
然后在 rand() 函数内部调用
rand(rr(), 1)
Example
【讨论】:
【参考方案2】:更新的答案,适用于 Julia 0.7 及更高版本。
import Random
Random.seed!(1234)
dim = 5
A = randn(dim,dim)
H = (A + A')/sqrt(2)
先前的答案,适用于 Julia 0.6 及更早版本。
您正在寻找srand
function,例如
srand(1234)
dim = 5
A = randn(dim,dim)
H = (A + A')/sqrt(2)
总是会产生相同的结果。
【讨论】:
srand的参数范围是多少?srand
实际上有多个版本,请尝试methods(srand)
和?srand
了解更多信息。
srand
文档链接已失效。
@becko 不再! :)
srand 在 Julia 0.7/1.0 中不存在【参考方案3】:
在 Julia 0.7/1.0 中,您可以使用 Random.seed!(1234);
https://docs.julialang.org/en/v1/stdlib/Random/index.html#Generators-(creation-and-seeding)-1
【讨论】:
我认为这是你现在唯一可以使用的功能。以上是关于在 Julia 随机数生成器中设置随机种子的主要内容,如果未能解决你的问题,请参考以下文章