乱数

ns-2ではMRG32k3aという乱数系が使われているとのこと。

コンピュータでサイコロが振れるわけはない。一様にランダムな分布が得られる数式があって、擬似乱数を生成しているのは有名な話。で、たいていの言語にはrandomみたいなライブラリが用意されていている。けど、それってどうよ?という話を聞く。

Linuxのrand関数なんてのはシミュレーションの世界では避けてられているらしい。

まず、乱数の種に日付を入れるのはよくあることだけど、再現性がないのでよろしくない。最低限、何をタネにしたかの記録は必要。ヘンに日付を使っちゃうと、そういうところに意識が行かなくなるぞと。

もうひとつが、周期の問題。乱数の結果を次のタネに使う関係で、いつかは、最初にセットしたタネに戻る可能性がある。ということ。つまり、どこかのタイミングで一周しちゃう。こういった偏りが発生すると乱数の信用性がなくなる。だから、乱数アルゴリズムはちゃんとしたのを使おうよ。だって。

コメントをどうぞ。

TrackBack URI :