🎲

Juliaの疑似乱数に種seedを指定する

2024/12/22に公開

日本語で検索しても欲しい情報にたどり着かなかったので記事にしておきます. 乱数に種(seed)を指定する方法は2つあります.

パッケージ

まずパッケージを読み込みましょう.

パッケージ
using Random

引数として渡す

MersenneTwister(12345)のように種を渡すことができます.

入力
MT = MersenneTwister(12345)
rand(MT, 10)
出力
10-element Vector{Float64}:
 0.5627138851056968
 0.8499394786290626
 0.37160535186424815
 0.28336464179809084
 0.381127966318632
 0.36580119057192695
 0.8350140149860443
 0.26002375370524433
 0.9223171788742697
 0.040441694559945285

Random.seed!()を使う

後からRandom.seed!()で指定することもできます. こちらの方が検索に引っかかりやすいですが, 個人的には上記の方が好みです.

入力
MT = MersenneTwister()
Random.seed!(MT, 12345)
rand(MT, 10)
出力
10-element Vector{Float64}:
 0.5627138851056968
 0.8499394786290626
 0.37160535186424815
 0.28336464179809084
 0.381127966318632
 0.36580119057192695
 0.8350140149860443
 0.26002375370524433
 0.9223171788742697
 0.040441694559945285

同じ乱数列が生成されていることが確かめられます.

https://docs.julialang.org/en/v1/stdlib/Random/#Random.MersenneTwister

Discussion