我正在为直方图生成通常分布的数字。这是我的两个功能。首先用于生成,其次用于将它们转换为正态分布。出于某种原因,当我进行测试 printf 时,它只是返回最小负数。有人知道这件事吗?谢谢!
double s, u[1000], v[1000], z;
int transformed[1000];
void generateec(){
srand( time(NULL) );
for(int i = 0; i < 1000; ++i)
{
u[i] = rand() % 7-3;
v[i] = rand() % 7-3;
}
}
void transform(){
generateec();
for(int i = 0; i < 1000; ++i)
{
s = (u[i]*u[i])+(v[i]*v[i]);
transformed[i] = u[i]*(sqrt( (-2.0 * log(s) ) / s));
}
printf("%d %d %d \n", transformed[0], transformed[500], transformed[600]);
}
多谢你们!