logo

ジュリアでランダムシードを固定する方法 📂ジュリア

ジュリアでランダムシードを固定する方法

説明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