在C中生成正态分布随机值的算法?
问题描述:
可能重复:
Converting a Uniform Distribution to a Normal Distribution在C中生成正态分布随机值的算法?
你好。
我想知道任何在C中实现的算法,它可以取0到1之间的一个随机值,平均值和标准偏差,然后返回一个正态分布的结果。
我现在没有足够的智力来解决这个问题。
我在互联网上找不到任何有用的东西。
谢谢。
答
Box-Muller是您需要的转换。
+0
谢谢你的答案,但我需要一个C实现或可读的伪代码,而不是一个难以理解的*页面。 – 2010-10-09 19:15:44
+0
我并不想在那里无礼,我只需要一些我可以理解并立即使用的东西。不过,我正在为该算法寻找一个体面的网站,所以感谢您的建议。 – 2010-10-09 19:18:20
谢谢你的答案。这是否足够有效,因为需要很多随机数字?显然需要32个才能获得足够好的表示。 – 2010-10-09 19:22:12
@Matthew Mitchell:无法确切地回答这个问题,不知道你的平台或你的准确性要求。你最好的选择可能是实现这两种方法和配置文件。我只能说Box-Muller变换需要对log,cos和sqrt进行评估,这可能很昂贵。 – 2010-10-09 19:41:31
这只适用于AI,并不一定100%准确。由于功能只会很少需要,我认为速度并不重要。 – 2010-10-09 19:44:00