编程获得正态分布的随机数

问题:给一个可以生成一致分布(Uniform Distribution)的随机数发生器,例如C标准库stdlib提供的rand(). 如何获得满足正态分布(Gaussian Distribution)的随机数。

Box-Muller方法:

假设 U, V 是在 (0, 1] 之间一致分布的相互独立的随机数,用它们生成两个相互独立的正态分布的随机数X, Y

X = sqrt(-2ln(U)) * cos(2 * pi * V)

Y = sqrt(-2ln(U)) * sin(2 * pi * V)

 

posted on 2011-08-21 12:13  infgeoax  阅读(312)  评论(0编辑  收藏  举报

导航