在网上下载了现成的实现高斯分布的代码,但是在看代码时却不明白其产生的公式。
x[i]=sqrt(-2*log(x1[i]))*cos(x2[i]*M_PI);
本来按照设想,计算高斯分布应该是按照高斯分布的概率密度函数来,但是上述公式确实看得晕。
后来才发现上述方法称作Box-Muller 方法。详细介绍见下面转载百度百科的解释:
转自:http://baike.baidu.com/view/1710258.htm
box-muller
Box-Muller 是产生随机数的一种方法。Box-Muller 算法隐含的原理非常深奥,但结果却是相当简单。
如果在 (0,1] 值域内有两个一致的随机数字 U1 和 U2,