• ベストアンサー

中心極限定理についての質問です。

c言語で標準正規乱数を発生させるために中心極限定理を使用することについての質問なのですが、 まず、一様乱数[0-1]を発生させる関数を混合合同法を用いて作成しました。 この一様乱数発生関数を用いて中心極限定理に基づき、標準正規乱数を発生させる関数を作成したいのですが、中心極限定理の具体的な使用方法がどうしてもわかりません。 どうかアドバイスをよろしくお願いします。

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

  • ベストアンサー
  • atushi256
  • ベストアンサー率62% (10/16)
回答No.1

Wikipediaのこのページはご覧になったでしょうか? http://ja.wikipedia.org/wiki/%E4%B9%B1%E6%95%B0#_.E6.AD.A3.E8.A6.8F.E4.B9.B1.E6.95.B0 "12個の一様乱数(0,1]の和から6を減ずる方法もよく用いられる"と書いてあります。 また、以下のURLにも同じような情報があります。 http://econom01.cc.sophia.ac.jp/sda/normal.htm const int N = 12; float A[N]; for(int i=0;i<N;i++)A[i] = rand(); float B = 0; for(int i=0;i<N;i++) B += (A[i]-0.5f)

gasdfdf
質問者

お礼

回答ありがとうございます。 wikipedia等のページは見たのですが、実際にプログラムにする際、どのように組み込めばよいのかわかりませんでした。 atushi256さんのおかげでだいぶ理解できました。 ただ、もう1つ疑問があります。 この場で質問を増やすのは本当に申し訳ないのですが、 for(int i=0;i<N;i++) B += (A[i]-0.5f) のfとは何なのでしょうか??

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

その他の回答 (1)

  • backs
  • ベストアンサー率50% (410/818)
回答No.2

C言語については助言できませんが、C言語にある一様乱数を発生させる関数rand()を利用して正規乱数を発生させられれば良いのですよね? [C言語 正規乱数]とか[ボックス・ミューラー法]というキーワードで検索してみましたか? 例えば、 http://www.inf.ie.kanagawa-u.ac.jp/c_learn/class/norminv.html http://www.sci.kagoshima-u.ac.jp/~nishio/ACP2006/CHAP6/ACP2006_6_Resume.pdf など出てきますが。

gasdfdf
質問者

お礼

ありがとうございます! 参考になりました。 なんとか解決しそうです。

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

関連するQ&A