在Julia中生成随机数的时候如何设置随机种子

39

我想使用julia的正态分布随机数生成器进行一些检查。因此,我希望获得相同的伪随机数序列。

实际上,我生成随机矩阵,所以我希望我的两个程序都生成:

A = randn(dim,dim)                                                                                                                                                                           
H = (A + A')/sqrt(2)

相同的H矩阵

3个回答

45

针对Julia 0.7及更高版本的更新答案。

import Random
Random.seed!(1234)
dim = 5
A = randn(dim,dim)
H = (A + A')/sqrt(2)

先前的答案适用于 Julia 0.6 及更早版本。

您正在寻找srand 函数,例如:

srand(1234)
dim = 5
A = randn(dim,dim)
H = (A + A')/sqrt(2)

始终会产生相同的结果。


srand的参数范围是什么? - user2820579
srand实际上有多个版本,尝试使用methods(srand)?srand获取更多信息。 - IainDunning
srand 的文档链接已失效。 - a06e
@becko 不再了! :) - ahogen
2
在Julia 0.7/1.0中不存在srand函数。 - crlb
显示剩余2条评论

11

2
我认为这是您现在唯一可以使用的函数。 - crlb

1
我认为 Random.seed!(int) 只对下一个随机数产生影响,你需要每次调用时重新使用它。但是,你可以将随机种子设置为函数,例如:
function rr()
    rng = MersenneTwister(22);
    return rng
end

然后在rand()函数内调用它,如下:
rand(rr(), 1)

例子


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接