Juliaでランダムシードを固定する方法
説明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
