数组的高斯分布生成

时间:2013-12-01 23:37:48

标签: c random

我正在尝试应用此处描述的方法2:Gaussian Distribution。 问题是我有一个4个数字的数组,范围从0到1,我想为该范围生成高斯分布。我编码了这个,但它不正确。我哪里错了?

float a[3]={0.3,0.7,0.2,0.1};
for (int k=0; k<3; k++) {
  for (int k1=1; k<4; k++) { 
    if(phase == 0) { 
      U = (rand() + a[k]) / (RAND_MAX + a[k1]);
      V = rand() / (RAND_MAX + a[k]);
      Z = sqrt(-2 * log(U)) * sin(2 * pi * V);
    } else Z = sqrt(-2 * log(U)) * cos(2 * pi * V);
    phase = 1 - phase;
    printf("\n%f",z);
  }
}

谢谢:)

0 个答案:

没有答案