
C言語で正規分布の乱数を発生させたいのですがどうすればいいのでしょうか?
自分なりにネットで検索して調べたのですが
void gaussrand()
{
static double V1, V2, S;
static int phase = 0;
double X;
if(phase == 0) {
do {
double U1 = (double)rand() / RAND_MAX;
double U2 = (double)rand() / RAND_MAX;
V1 = 2 * U1 - 1;
V2 = 2 * U2 - 1;
S = V1 * V1 + V2 * V2;
} while(S >= 1 || S == 0);
X = V1 * sqrt(-2 * log(S) / S);
} else
X = V2 * sqrt(-2 * log(S) / S);
phase = 1 - phase;
}
こうありました。
例えば平均50の分散9の正規分布の乱数を1000個発生させて、配列seiki[1000]に代入したいときは、このプログラミングをどのようにすればいいのでしょうか?
もちろん、このソースではなく、他のもので説明していただけても全然構いません。
また、もしよろしければ、正規分布の他に、二項分布など他の分布でのデータの生成方法もお教えいただけたら幸いです。
よろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
c言語のプログラミングについて...
-
プログラムでの数字につく”f”の...
-
C言語を実行すると-infが出てき...
-
至急です! マクロ定義で #defi...
-
float型とdouble型の変数の違い...
-
C 開放してるのにエラー(doubl...
-
C言語でdouble型の小数点の引き...
-
浮動小数点の定数
-
プログラミングについての質問です
-
atan2 オーバーロード関数の呼...
-
C言語で-23乗を取り扱うには
-
EXE1→DLL→EXE2数値を受け渡す方法
-
c言語 標準体重計算のプログラ...
-
doubleの変数にintとintの割り...
-
斜辺と角度て底辺と高さを出したい
-
sin(x)の近似について
-
C言語 台形公式について
-
fgets()による繰り返し入力(c言語)
-
C言語の型による処理速度の違い
-
0から1までの乱数(実数値)を発...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プログラムでの数字につく”f”の...
-
C言語を実行すると-infが出てき...
-
doubleの変数にintとintの割り...
-
float型とdouble型の変数の違い...
-
c言語で、繰り返し文の中で、0....
-
至急です! マクロ定義で #defi...
-
C 開放してるのにエラー(doubl...
-
C言語の型による処理速度の違い
-
C言語 関数プロトタイプ宣言の...
-
float と double
-
ラグランジュの補間法のCプログ...
-
C言語のプログラムで#include<m...
-
c言語のコンパイルエラー canno...
-
2分法で方程式の複数の解を自...
-
2次方程式の解を求めるプログ...
-
C言語で台形公式を使った二重積...
-
Cプログラミングの問題です。ニ...
-
物体が往復する動きを作りたい
-
関数におけるif文とreturn文に...
-
doubleは常に%lfとするべきなのか
おすすめ情報