• ベストアンサー

乱数生成の原理は?

乱数(但し、真性乱数=物理乱数を除く。)の生成(ランダマイズ)の原理は、簡単に言うと、如何なるものですか。乱数表も、それで作るのですか。

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

  • ベストアンサー
  • SI299792
  • ベストアンサー率48% (715/1480)
回答No.3

簡単に言うと計算で出しています。 ただ、との計算方法も、毎回同じ乱数になります。 毎回違う乱数を出す為に、初期値に時間を使っています。 計算方法はここを見て下さい。

参考URL:
http://www.nt-s.ne.jp/product/campain/knowledge/missing-number.html
kimko_379
質問者

お礼

ほんまに、おおきに。

その他の回答 (2)

  • f272
  • ベストアンサー率46% (8018/17137)
回答No.2

疑似乱数の話であれば,過去の乱数から一定の規則によって次の乱数を発生させます。この規則の違いが疑似乱数の違いとなって現れます。 真の乱数であれば確定的な計算によって求めることはできませんが,疑似乱数は生成法と内部状態が既知であれば予測可能です。しかし疑似乱数であっても次の重要な性質をもつように作られています。1つは等出現性であり,もう一つは無相関性です。この性質がどの程度守られているかどうかが疑似乱数の性能を決めます。 コンピュータのなかった時代であれば,乱数表は疑似乱数を使用して作成したものでも有用でしたが,今ではすぐに計算できるのですからあまり意味がありません。真の乱数を発生させて書き留めたものでなければ乱数表を作る意味はありません。

kimko_379
質問者

お礼

おおきに。求めて居ります回答にはならない事を書いて居られますけれども。

  • aokii
  • ベストアンサー率23% (5210/22062)
回答No.1

簡単に言うと、過去の数から次の数が予測不能であることです。 例えば、Xorshiftという疑似乱数列生成法があります。George Marsagliaが2003年に提案し、演算が排他的論理和とビットシフトのみであるため高速であるなどの特徴があります。

kimko_379
質問者

お礼

おおきに。もう少し具体的な数学的原理を掻い摘んで(かいつまんで)御教え頂きたかったのですが。

関連するQ&A

  • 乱数生成について

    VisualBasic2010を使用しています。 コード内に複数回、乱数を生成しています。 普段は始めだけRandomizeして、Rnd関数を使用していて、毎回違う乱数を生成させているのですが、 今回は毎回同じ乱数を生成させたいのですが、どうやったらできるでしょうか? シード値をどうこうするとは、わかったのですがやり方がわかりません。 わかる方、どうぞよろしくお願いします。

  • 乱数の生成方法

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

  • 不確定性原理は物理乱数の乱数性の必要条件ですか?

    stomachman 様、その他の回答者様: 不確定性原理は、物理乱数の乱数性の必要条件の全体、または、必要条件の連言の連言肢の一つでしょうか。

  • RNG(乱数生成器)について

    RNG(乱数生成器)とは何なのでしょうか?? 売っていますか?

  • 真性乱数と物理乱数

    真性乱数を得るにはダイオードとか素粒子、宇宙線とか色々な物理乱数を利用する方法があるようですが、簡単さから考えるとダイオードを利用したものあ一番便利な気がするのですが、他の方法に比べてデメリットなどあるのでしょうか。それぞれの方法の、メリット・デメリットを教えていただけませんでしょうか。

  • 完全な乱数を生成する方法

    C言語で乱数を生成するときに、今まで srand(time(NULL)); を使用していたのですが、それだと1秒以内に複数の処理を行った際に、 同一の乱数が生成されてしまいます。 時間にとらわれずに完全にランダムな数字を出現させるにはどのような方法を取るのが簡単なのでしょうか? よろしくお願いします。

  • 乱数って・・・

     乱数は毎回同じ数字がでるようですが・・・どのように決めているのですか? ※Randomize をいれると毎回変わることは知っています

  • 乱数の生成法

    乱数を生成するようなショートプログラムを知りたいのですが、 どんなものがありますか? C言語でお願いします。

  • Mathematicaによる乱数生成について

    Mathematicaを用いて正規分布に係数をかけた物に従った乱数を生成したいのですが、ヘルプを調べても分からず困っています。 具体的に行いたいことは、 RandomReal[1/3*NormalDistribution[0,10], 100]          ~~~ のような事です。 正規分布の確率密度関数(平均0,分散10)に係数(ここでは1/3)をかけた分布に従う乱数を100個生成したいということです。 どなたか解決方法をご存知の方がいらっしゃいましたらよろしくお願いいたします。

  • 桁数の多い乱数の生成法

    50桁から300桁といった桁数の多い乱数の生成法を探しています。 乱数生成アルゴリズム等を使用するのは、ネットで調べてわかるのですが、具体的な方法がほとんど載ってませんでした。 詳しくのっているページがあれば、教えてください。