next up previous
: パラメータの推奨値 : 疑似乱数 : 疑似乱数

線形合同法

漸化式

\begin{displaymath}
I_{j+1} = {\rm mod} ( a I_{j} +c , M)
\end{displaymath} (1)

により発生される数列 $I_{1},I_{2},I_{3},\ldots, (0 \le I_{j} < M )$ を疑似乱数列とするものを 線形合同法(1948年頃提案された)と呼ぶ。 ここで、$M$ は正の整数で と呼び、$a,c$$0 \le a,c < M$ とい う整数でそれぞれ 乗数増分と呼ぶ。 $ I_{j}$$M$ で割る $x=I_{j}/M$ と、[0,1) 区間の一様乱数 $0\le x <1$ を得ることが出来る。

線形合同法により生成される疑似乱数列はいつかは元に戻り、その周期は $M$ 以下である。パラメータ $a,c$ の選び方により $ I_{j}$ の性質は大きく異なる。 例えば、$a=0$ では $I_{j}=c$$a=1,c=0$ では $I_{j}=I_{1}$$a=1,c=1$ では周期 $M$ ではあるが、とうてい乱数列とは呼べない。

[課題1] 線形合同法による疑似乱数列を生成するプログラムを作成してみよ。





Kiyohide Nomura 平成17年6月6日