• ベストアンサー

乱数の生成法

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

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

  • ベストアンサー
  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.2

> ただし、rand() を使わない方法を知りたいのですが、、、 いや、だから私が紹介したのは、その乱数を生成するためのアルゴリズムが 載っている情報なんですけど。 見ました?

mickmick2
質問者

お礼

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

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.1

奥村晴彦著『C言語による最新アルゴリズム事典』という本があるのですが、 そこにいくつか載っています。ソースが参考URLで取得できます。 乱数の生成方法と、そのソース名の対応は以下のとおり。 線形合同法 … crnd.c, macrornd.c Knuthの引き算法 … krnd.c M系列乱数 … mrnd.c Wichmann-Hillの乱数発生法 … whrnd.c

参考URL:
ftp://ftp.matsusaka-u.ac.jp/pub/algorithms/
mickmick2
質問者

補足

ただし、rand() を使わない方法を知りたいのですが、、、

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

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

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

  • ある乱数生成法により,生成した最初の乱数の値は固定するか確かめて頂きた

    ある乱数生成法により,生成した最初の乱数の値は固定するか確かめて頂きたいです. 0.0から1.0までの一様乱数を発生させる方法です. C言語のコードは以下に載せます. #define IA 16807 #define IM 2147483647 #define AM (1.0/IM) #define IQ 127773 #define IR 2836 #define MASK 123459876 float ran0(long *idum) { long k;   float ans; *idum ^= MASK; k=(*idum)/IQ; *idum=IA*(*idum-k*IQ)-IR*k; if (*idum < 0) *idum += IM; ans=AM*(*idum); *idum ^= MASK; return ans; } この乱数生成法をBVAで,計算の中で繰り返し用いようとしています. idumを任意の整数値に設定・再設定すれば乱数列が初期化されると書いてあったため,idumの値を変えてみましたが,生成された乱数の最初の値は固定されたままでした. そこで,もともとこの乱数生成法がそのようになっているのかを教えて頂きたいです. よろしくお願いします.

  • 乱数生成について

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

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

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

  • 乱数発生関数randomなど

    random, srandom, initstate, setstate で乱数を生成できることを知りましたが、運用方法がよくわかりません。c言語に詳しい方、for文を使って乱数を5個ほど表示させるプログラムを示してください。

  • 乱数の生成方法

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

  • 乱数生成の原理は?

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

  • 超幾何分布に従う疑似乱数の生成について

    今、超幾何分布に従う疑似乱数を生成するコードをScilabで書こうとしています。しかし、Scilabには超幾何分布に従う疑似乱数の関数が実装されていません。有識者の方で、わかる方がいましたら教えてください。 ソースコードに関してはC言語、Basic、Scilabのどれかで教えていただけたら、助かります。また書籍をご存じなら、書籍名を教えてください。 よろしくお願いいたします。

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

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

  • 乱数生成について

    c言語のプログラムで、1と-1をランダムにn個出力するプログラムを書きたいと思っています。どのようにすればいいでしょうか。