【问题标题】:set the random seed in julia generator of random numbers在 Julia 随机数生成器中设置随机种子
【发布时间】:2014-09-20 07:08:15
【问题描述】:

我想使用随机生成器对 julia 中的正态分布数进行一些检查。所以我想要的是获得相同的伪随机数序列。

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

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

同一个H矩阵

【问题讨论】:

    标签: julia


    【解决方案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

      【讨论】:

      • 我认为这是你现在唯一可以使用的功能。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-23
      • 1970-01-01
      • 1970-01-01
      • 2021-05-15
      • 2017-08-29
      • 2015-03-14
      相关资源
      最近更新 更多