疑似乱数の生成について(一様乱数、正規乱数、指数乱数等)


モデル化とシミュレーションでは,乱数を扱う場面が多くなると思います.ここでは乱数について整理します.乱数の生成には,物理乱数,算術乱数,乱数サイコロ,乱数表などの利用があります.

コンピュ-タが生成する擬似乱数(EXCELを例に)

 数式処理ソフトは独自のアルゴリズムで乱数を生成しているようです.ここではまず,シミュレーションで頻繁に使用する一様乱数生成の関数を紹介します. おもに表計算のEXCELについて述べましょう.


次のEXCELのコマンドをMathematicaで実現しています。

実数の乱数 [ 0, 1)を生成するには.
[Graphics:../Images/index_gr_98.gif]
整数の乱数 [ 0, 10) を生成するには.
[Graphics:../Images/index_gr_99.gif]
サイコロの目をランダムに出すには.
[Graphics:../Images/index_gr_100.gif]
コインの裏表をランダムに出すには.
[Graphics:../Images/index_gr_101.gif]

*EXCELで乱数列を作るには,セルのコピ-を行う.

●一般的な乱数の生成法(累積分布の利用)

   次に、一様乱数以外のいろいろな分布に従う乱数(指数乱数,正規乱数など)の生成法について述べます.ある確率分布が与えられたとします.(確率分布 pi や f(x) )

●離散的な場合(確率分布 pi を累積する Pi )
人数 累積確率Pi
0 0.7
1 0.9
2 1

このことをもとに,例えば10枚のカ-ドや1から10までの一様乱数を利用するとよいです.

●連続的な場合(確率分布 f(x)を積分する):指数分布に従う乱数を例に

ある窓口に,単位時間に平均 2人のポアソン分布に従って客が来る場合,到着間隔は指数分布

[Graphics:../Images/index_gr_102.gif]

に従い、累積確率 F[t] は積分で求まります.

[Graphics:../Images/index_gr_103.gif]

このグラフは次のようになります.

[Graphics:../Images/index_gr_105.gif]

[Graphics:../Images/index_gr_106.gif]


このグラフを利用して指数分布に従う乱数を生成するには,y 軸を [0,1) の一様乱数 r とみて,

[Graphics:../Images/index_gr_107.gif]

を t について解けばよい.(逆関数)

[Graphics:../Images/index_gr_108.gif]

よって,1-r を r に置き換えて指数乱数を求める関数が得られます.

[Graphics:../Images/index_gr_109.gif]

これが指数乱数を与える関数で, r は [0,1) の一様乱数です.

表計算ソフト(EXCELの分析ツールの利用)

メニュ−[ツ−ル] → [分析ツ−ル]を選択後, [乱数発生] を利用することも便利です.

乱数に関する留意点

Converted by Mathematica      August 2, 2002