- ベストアンサー
乱数を確認する方法について
プログラムをかいて正規乱数を発生させたのですが、それがきちんと正規乱数になっているか確かめる方法がわかりません。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
ソフト作成上の一般的な注意をあげましょう。 まず区間.統計では10-13程度の区間で最大値と最小値の間を分割します。疑似乱数の検定で使う場合には.1区間10個程度が集まるような状態にします。 区間は.1区間を大体10分割して位置が移動できるようにします。これは.区間内に偏って存在する場合や周期が存在する場合に.移動すると変なピークが現れる場合があります。周期の存在については.ある程度の個数(2個以上で適当な個数まで)での移動平均を求める演算を行い.この平均値を重ねて作図すると.周期が存在する場合には.ある特定の数で突然グラフの形状が変化します。周期を比較的簡単に求めることができます。 もし.2個・または3個対で使う場合には.平面または立体での偏りを検討する必要があります。一般に使われている組み込み関数の乱数を使い[0,1]の範囲の立体の各面に投影すると.たしか13本の直線に収束することは有名ですね。
その他の回答 (4)
- sen-sen
- ベストアンサー率31% (66/211)
>検定の仕方についてうかがいたいのですが、 >どのような方法で行うのがよいのでしょうか 素人考えでは、 ・乱数の分布が一様かどうかを調べる。 ・同じ数が繰り返すまでの間隔に偏りが無く、かつ、その分布が適当にばらついていることを調べる。 ・ある決まったカテゴリーの数が続けて出る回数の分布に偏りが無く、かつ、適当にばらついてことを調べる。 ・ある特定の数字列がある周期を持って繰り返していないかどうかを調べる。 などが思い浮かびます。 基本的な統計学の教科書を読めば問題は解決するのではないでしょうか。
統計の本を見つけて.「適合度の検定」を行ってください。 面倒ならば「科学技術サプルーチンパッケージ」あたりか.言語のマニュアルを探してみるとあるはずです。
- sen-sen
- ベストアンサー率31% (66/211)
発生させた乱数を規格化してから標準正規分布関数の逆関数を使って得られたデータに対して、乱数になっているかどうかを検定してみては、いかがでしょうか。
- nubou
- ベストアンサー率22% (116/506)
横軸に発生データ縦軸にそのデータの発生頻度でグラフを作って 平均と標準偏差を使って規格化し(z=(x-μ)/σ) N(0,1)と比較してみてはどうでしょう
補足
早速の回答ありがとうございます。検定の仕方についてうかがいたいのですが、どのような方法で行うのがよいのでしょうか