next up previous
: M 系列 : 線形合同法 : パラメータの推奨値

線形合同法の欠点

線形合同法は簡便かつ有効な疑似乱数発生法ではあるが、いくつか欠点がある。

  1. 合同法乱数は、上位の桁はランダムだが、下位の桁はランダムでない。
  2. 合同法乱数は、1 個ずつ使えばランダムだが、いくつか組にして使えば ランダムでない。
性質 1. から説明すると、線形合同法による疑似乱数列は 下位 k bit だけを見ると周期は高々 $2^k$ である。


[課題2] [課題1] で作ったプログラムに対し、上記の性質を確認してみよ。 複数のパラメータに対し試してみること。


性質 2. に関しては たとえば 0 から 15 までの乱数で、(x, y) の座標を生成することを考える。 ここで周期 16 の線形合同法で乱数を生成してみる。すると、 生成され る (x, y) の座標は 16 / 2 = 8 通りにしかならない。 (x, y) の座標は $16^2=256$ 個もあるのに、8 個の座標しか生成できないのです。 (x, y, z) の 場合は $16^3=4096$ 個の可能な座標があるのに、16 個の座標しか生成できません。


[課題3] [課題1] で作ったプログラムに対し、上記の性質を確認してみよ。 複数のパラメータに対し試してみること。 gnulpot の機能を使うと、2次元プロット、3次元プロット(splot を使う)で可 視化し易くなる。



Kiyohide Nomura 平成17年6月6日