乱数の度数分布を調べたいC言語
乱数の度数分布をしらべたいのですがうまくいきません。
grand()は標準正規分布の乱数です。(検索してコピペしたものです。)
すいませんが、ご教授お願いします。
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define RAND() ((double)rand() / (1.0 + RAND_MAX))
double grand();
main(void){
int j, N, n[6];
double x;
N=1000;
for (j = 1; j <= N; j++) {
x = grand();
if(-1.5< x <= -1.0){n[0] = n[0] + 1;}
if(-1.0< x <= -0.5){n[1] = n[1] + 1;}
if(-0.5< x <= 0.0){n[2] = n[2] + 1;}
if(0.0< x <= 0.5){n[3] = n[3] + 1;}
if(0.5< x <= 1.0){n[4] = n[4] + 1;}
if(1.0< x <= 1.5){n[5]= n[5] + 1;}
}
printf(" %d \n %d \n %d \n %d \n %d \n %d \n", n[0], n[1], n[2], n[3], n[4], n[5]);
return 0;
}
double grand()
{
static double V1, V2, S;
static int phase = 0;
double X;
if(phase == 0) {
do {
double U1 = RAND();
double U2 = RAND();
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;
return X;
}