• 締切済み

乱数の検定方法

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

  • maka
  • お礼率100% (1/1)

みんなの回答

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

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

maka
質問者

お礼

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

関連するQ&A

  • エクセル 乱数について

    ある特定の数値から指定する範囲内での乱数を作成する方法をおしえてください。 例えば、 100=特定の数値 100から+10(指定する範囲内)までの乱数

  • 0~100の乱数を効率良く作る方法はないでしょうか?

    0~100の乱数を効率良く作る方法はないでしょうか? とある高負荷な処理の裏側で 1秒間に0~100の乱数が2~3000ずつ必要で、 できるだけ処理を軽くしたいと思っております。 現在は1個1個rand()で生成しているのですが、 多少数値にムラが発生しても構わないので 出来るだけ軽く、大量に乱数を作り出す 手法や設計の思想とでもいえるものは無いでしょうか? 何か教えて頂けますと幸いです。 よろしくお願いいたします。orz

  • Excelの乱数について

    excelワークシート関数で乱数を求める方法について質問です。 乱数を求める際に、正規分布の形で特定の数値(例えば0以上1未満の乱数を求めるとき、0.4や0.7)が最も多く出るようにし、その値から離れた数値ほど出にくくなるといった具合に数値の頻度に偏りを持たせることができるでしょうか。 ExcelはExcel2000、OSはWindows2000を使用しています。 よろしくお願いします。

  • エクセルで0超1未満の乱数を発生する方法

    タイトルの通りです。 EXCELのRAND関数は0以上1未満の乱数を発生しますが、0超1未満の乱数を作る方法を教えて下さい。 確率の検証用に乱数を作りたいのですが、0や1(0%や100%)は除きたいのです。もちろん非常に小さい数でも0でなければ採用したいのですが0だけはダメです。 実用上、RANDでも0は殆ど出ないとは思いますが…あるいは乱数を発生させておいて0になった時だけ再計算させれば良いのかもしれませんが、出来れば再計算無しで最初からそうしたいのです。

  • 指定した範囲の乱数がダブらない方法

    指定した範囲の数値から乱数を発生させ、指定した個数を取り出す。 数値はダブらない。

  • 乱数を確認する方法について

    プログラムをかいて正規乱数を発生させたのですが、それがきちんと正規乱数になっているか確かめる方法がわかりません。

  • エクセルで乱数を作成する方法

    質問させて頂きます。 エクセルで、9桁(000000001~999999999)の乱数を作成する方法(関数)を教えて下さい。 イロイロ試してみたのですが、小数点になってしまったり、桁数が合わなかったり(9桁以下になったり)、数値が重複したりしてしまいます。 過去にあった質問かもしれませんが困っています。 宜しくお願いいたします。

  • 乱数とは?

    乱数について、いくつか疑問に思っていることがあります。 乱数の定義は? 辞書には、 0から9までの一〇種類の数字が、それぞれ同じ確率で現れるように並べられた数字の列。 と、書いてあります。 と言うことは、各数字の現れる確率は10%です。 大量にDATAを取れば限りなく10%に近づくと言うことです。 そこで、 DATAが少ないと乱数にも偏った値が出て各数字10%にはなりません。 と言うことは、 各数字の発生確率が偏っている段階では、 次に現れる数字の予測がある程度可能だと思っていいのでしょうか? 確率の低い数字が出る確率が高い? そうなると、 予測が可能だと乱数とは言えないのではないでしょうか? 結果として確率が均等になればいいのであって、予測が出来る出来ないは関係ない?

  • 乱数の評価方法

    放射線物質を用いた乱数生成機を開発しています。 そこで乱数の評価したいのですが、有料のソフトウェアを用いる以外に方法はないのでしょうか? また乱数として認められる基準値などあるのでしょうか? お答えできる方いましたらお願いいたします。

  • 乱数の生成方法

    乱数を生成するソースコードを探しています rand関数で生成される乱数はよい乱数ではないようで それ以外でいい乱数を生成する方法はどのようなものがあるのでしょうか また、実装したソースコードのサンプルがあればWEBページなどを教えていただきたいです