ジュリアでランダムシードを固定する方法
説明1
Juliaでは、ランダムシードは以下のように固定する。
seed!([rng=default_rng()], seed) -> rng
seed!([rng=default_rng()]) -> rng
入力変数rng
はランダムナンバージェネレータの略で、乱数を抽出するアルゴリズムを意味する。Random
パッケージでは、以下のオプションを提供している。
TaskLocalRNG
:デフォルトの設定値だ。Xoshiro
RandomDevice
MersenneTwister
コード
シードを0に固定して三回抽出した後、再び0に固定して三回抽出すると、同じ値が得られることが確認できる。
julia> using Random
julia> Random.seed!(0)
TaskLocalRNG()
julia> rand(1)
1-element Vector{Float64}:
0.4056994708920292
julia> rand(1)
1-element Vector{Float64}:
0.06854582438651502
julia> rand(1)
1-element Vector{Float64}:
0.8621408571954849
julia> Random.seed!(0)
TaskLocalRNG()
julia> rand(3)
3-element Vector{Float64}:
0.4056994708920292
0.06854582438651502
0.8621408571954849