在 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 随机数生成器中设置随机种子的主要内容,如果未能解决你的问题,请参考以下文章

kbmMW基于硬件生成随机数

java怎么获得以当前时间为种子的随机数?

VB中randomize的作用

如何在 TableView Cell 中设置随机图像

随机种子random_state,random seed

如何用C语言生成时间的随机数