• ベストアンサー

乱数の数学的な定義はありますか?

数学の背景がないので、質問が変かも知れませんが、よろしくお願いします。 「乱数」には、数学的な定義がありますか? 例えば、「いかなる視点からも規則性のない数の並び」とか、「偶然にまかせた数の並び」とか言えるのでしょうか? また、ある数列を与えられたときに、それが、「乱数」かどうかを調べる方法はあるのでしょうか? というのは、たまたま、1が100個ならんだ数列でも、必ずしも「乱数」ではないと言えないような気がするのです。もし、偶然に任せるという意味で乱数を考えるとすると、たまたま、1が100個並ぶことも有り得るし、それを意識的に排除すると、むしろ、自然な「乱数」ではなくなってしまうような気がして、よくわからなくなってしまいました。

質問者が選んだベストアンサー

  • ベストアンサー
  • chiezo2005
  • ベストアンサー率41% (634/1537)
回答No.1

まず,数字の出現頻度もある1つの確率分布にしたがっていることが第一の条件です。 つまり,1から100の間の整数の100万個の一様乱数と言った場合には,1の出現頻度がほぼ1万個,2も同じく1万個・・・100も同じく一万個であることです。 次に,どの数字も他の数字と関係がないことが必要です。これははっきり言うのが難しいのですが,たとえば直前の数字とその数字の間の相関が無い(つまり1あとはいつも2だったりしないこと)。先の例だと 1の後の数字を調べても1から100までの数字が同じ頻度で並んでいるような数字のことです。 ご指摘のように,1が100個ならんだ数が乱数であるか無いかは母数いくつの集団について考えているかによります。100個の集団について考えてみると明らかに上記の2条件を満たしませんから,乱数とはいえません。 しかし,10の百乗くらいの数の母集団であれば,ある一箇所に1が100個続いても乱数といえるかもしれません。 乱数検定というのがあって,上記の2つの条件を調べるのもひとつです。 ほかにもいろいろな検定方法があり,乱数は暗号技術と密接な関係があるために,現在でもいろいろ研究されています。興味があれば,「乱数検定」で検索するとたくさん出てきます。

kobarero
質問者

補足

ご回答ありがとうございました。 乱数であるための2つの条件というのがわかりました。そして、その2つ目の条件について、非常に興味があることがあるので、もし、よろしければ、教えてください。 「どの数字も他の数字と関係がない」ということを確認する手段はあるものでしょうか? 第一の条件は満たすようにしつつ、意識的に、「数の間の規則性を発見されにくいように埋め込んだ」場合、それを発見する数学的アルゴリズムは、原理的に開発可能なものでしょうか?  例えば、10000個の数からなる乱数で、最初に出てきた素数と最後に出てきた素数は、必ず同じ値にするとした場合、そのことは、発見できるものでしょうか? これは、暗号解読の世界でしょうか?

その他の回答 (1)

  • rabbit_cat
  • ベストアンサー率40% (829/2062)
回答No.2

数値計算なんかで使う擬似乱数のアルゴリズムの良し悪しは、計算量と、まさにそういった乱数としての性質の良さによって評価されます。擬似乱数アルゴリズムや、その評価法は、暗号技術との絡みもあっていろんな研究がされているホットな分野ですし。 乱数性の基準はたくさんありますが、だいたいは、 ・平均値 ・自己相関 ・エントロピー ・カイ2乗検定 ・ラン(連続ビット)の出現分布のチェック ・ブロック検定(乱数列をたとえば8ビットごとのブロックとして扱うことを想定した評価) や、その組み合わせです。 米国商務省標準技術研究所(NIST)の乱数性テスト http://csrc.nist.gov/rng/ とか、 独立行政法人情報処理推進機構(IPA)の2003年度版擬似乱数評価基準 http://www.ipa.go.jp/security/fy14/crypto/pseudo_rundum/rundum_inve.pdf なんかが有名なんでしょうか。

kobarero
質問者

お礼

情報をどうもありがとうございました。

関連するQ&A