• 締切済み

乱数の検定方法

ある数値群が乱数になっているか?乱数と言って良いか?を検証する方法の種類と、その求め方を教えて下さい。

みんなの回答

  • doroteasu
  • ベストアンサー率11% (4/34)
回答No.1

乱数とは?を考えて、その逆を検証していく方法を私は行ったことがあります。 ちなみに0から9までの数の数値群を検証を例に説明します。 ある数値群を目の前にして、 等確率性を検討します。(0から9までの各数字の頻度のばらつき) これはχ(カイ)2乗検定を行います。 次に系列相関検定を行います。これは規則性の有無を確かめるものです。 “012345678901234…”となっていた場合、 等確率性はありますが乱数とは言えませんよね こういうのを防ぐために行います。 次に飛び幅(私はこう呼んだ)を調べます。 これは隣り合う2つの数字の距離を検証するもので、 “13579…”の場合、特徴的に2ずつ増加しています。 このように人間の見た目ですぐ判断できればよいのですが 見た目があきらかに乱数だと思っても、よくよく調べると 何らかの規則性が出てくる場合があります。 以上の3つをあげましたが 方法はまだまだ他にもあるでしょう 私はこの3つを総合的に判断して すべてコンピュータに計算させて検証しました。 それぞれの詳しい方法はここでは説明が難しいので 割愛させて頂きます。すみません 乱数の定義というのは、そのときそのときで変わってきます。 どの程度の数値のばらつきで乱数と言って良いかは、 個人で判断するしかないと思います。 私の行った実験は、人に数値列を書いてもらう実験でしたが 同じ数字が2つ並ぶことはほとんどありませんでした。 コンピュータで乱数を作成すると、2つ並ぶことはよくあることです。 確率的にも1割の確率で発生して当然なのですが、 人間が書くと何故かほとんどないのです。面白いですよね? どういう勉強かわかりませんが 頑張ってください。参考にして頂けたらと思います。

maka
質問者

お礼

ありがとうございます。 知り合いが、乱数発生器?なるものを、電子回路の勉強で作ったのですが、 私に、本当に乱数になっているか調べてくれと言われて、どうすれば良いのか わからず困っていたところでした。 教えていた方法を、コンピュータに計算させるのにC言語でプログラムしようと思っていますが、系列相関検定と飛び幅検定の詳細がわからないので、出来るかどうかわかりませんが、がんばってみます。がんばってもわからず、教えを乞うかもしれませんが、そのときはまたよろしくお願いいたします。 また、他の方法をお気づきになられましたらお教えください。 ありがとうございました。

関連するQ&A