![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
RAND()関数は ((double)rand() / (1.0 + RAND_MAX))と定義します。
中心極限定理により、一様乱数を足し合わせると正規分布に近づくことから、
x = 分散 * (Σ[1~12]RAND() - 6) + 平均
で正規乱数が作れる。標準正規分布は分散1、平均0なのでその乱数は
x = Σ[1~12]RAND() - 6
ですよね。この乱数を例えば100個羅列するにはどうしたらいいのでしょうか?
もし間違ってたら指摘してください。
参考文献「Cによるシミュレーションプログラム 石川宏」
#include <stdio.h>
#include <stdlib.h>
#define RAND() ((double)rand() / (1.0 + RAND_MAX))
#define NUMBER 10000 /* 発生させる乱数の数 */
main(void)
{
int j;
double u, x;
srand(5);
for (j = 0; j <= 11; j++) {
u = u + RAND();
}
x = u - 6.0;
}
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_03.png?e8efa67)
No.1ベストアンサー
- 回答日時:
単に乱数発生部分をループで囲んだだけですが、これで良いのでは。
#include <stdio.h>
#include <stdlib.h>
#define RAND() ((double)rand() / (1.0 + RAND_MAX))
#define NUMBER 10 /* 発生させる乱数の数 */
int main(void)
{
int i;
int j;
double u, x;
srand(5);
for(i=0 ; i<NUMBER ; i++)
{
u = 0;
for (j = 0; j <= 11; j++) {
u = u + RAND();
}
x = u - 6.0;
printf("%f\n" , x);
}
return 0;
}
ありがとうございいます。
このu=0;がなかったから自分でもうまくいかなかったんだと思いますが、
このu=0;の意味するところを教えていただきますか?
No.3
- 回答日時:
乱数自体の分布が正規分布になるのでしょうか ・・・
発生させた乱数がある確立になる分布なら正規分布に近いと思いますけど
乱数自体の羅列をしたって意味が無いように思いますよ
RAND() の定義は 0以上1未満の倍精度実数を発生させているだけですよね
でしたら 0から15までの整数乱数で代用しても同じことなので
--- ここから ----
int ar[16] = {0};
int da[100] = {0};
int m = 0;
for ( int n=0; n < 100; n++ ) {
m = rand() % 16;
da[n] = m;
ar[m]++;
}
// 乱数の発生頻度を表示
for( n=0; n < 16; n++ ) {
printf( "%3d : %4d\n", n, ar[n] );
}
---- ここまで ----
期待通りの度数分布でしょうか
たいていは違うと思いますよ ・・・
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 統計学 Excelによるサンプルの拡大について 6 2023/08/22 16:03
- C言語・C++・C# カードシャッフルのブログラムを使ってc言語でブラックジャックをしたい 2 2022/04/12 15:13
- C言語・C++・C# C言語 プログラミング 4 2022/05/22 11:53
- 数学 以下の数学の問題を教えてください。 確率変数Xは標準正規分布N(0、1)に確率変数Yは平均3のポアソ 3 2022/12/02 19:13
- 統計学 統計学 最大値の標準偏差 15 2023/02/02 18:36
- C言語・C++・C# 10個の実数に対する降順ソート結果を出力するプログラムを作りたいのですが、以下のプログラムをどう直せ 1 2022/07/09 22:16
- 統計学 母集団分布を平均 μ, 分散 σ2 の正規分布と想定し, 母集団から無作為抽出した標本のデータ(標本 4 2023/01/30 20:25
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- C言語・C++・C# C言語の課題が出たのですが自力でやっても分かりませんでした。 要素数がnであるint型の配列v2の並 3 2022/11/19 17:41
- C言語・C++・C# このプログラミングの問題を教えてほしいです。 キーボードからデータ数nとn個のデータを入力し、平均値 3 2022/12/19 22:51
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「指定されたキャストは有効で...
-
複数桁10進数の*桁目だけを抽出...
-
C言語での引数の省略方法
-
市松模様
-
構造体の勉強中です 合計点の高...
-
#define _CRT_SECURE_NO_WARNIN...
-
「{ } で囲むだけ」は正しい?
-
C言語初心者です、、、お助けく...
-
C言語の構造体について
-
C言語でDxlibを使って3x3の奇数...
-
C言語における対称行列の作り方...
-
このプログラミング誰か教えて...
-
CStringの配列要素を関数で受け...
-
if と配列の組み合わせ
-
因数分解を行うプログラムについて
-
式は定数値が必要です」という...
-
C言語 エラーの原因がわからな...
-
数字列を3桁ごとにカンマで区切...
-
C言語のサイコロシミュレート
-
ファイルから読みこむ方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「指定されたキャストは有効で...
-
C言語での引数の省略方法
-
#define _CRT_SECURE_NO_WARNIN...
-
複数桁10進数の*桁目だけを抽出...
-
【C++】関数ポインタの使い方
-
C言語 エラーの原因がわからな...
-
c++でテンプレートのコードでわ...
-
(int *)の意味
-
ラップ関数とはどんなものですか?
-
数字列を3桁ごとにカンマで区切...
-
c言語のリダイレクトによる円...
-
比較回数と交換回数表示について
-
実数の整数部,小数部の取得
-
if と配列の組み合わせ
-
構造体の勉強中です 合計点の高...
-
PowerShellがうまくいかない
-
c言語の配列を使ってサイコロを...
-
課題でつまってます・・・
-
C言語のサイコロシミュレート
-
エラー 添字が付けられた値が、...
おすすめ情報