我想生成具有高斯分布的离散随机数(对于1000个集合),其具有均值零和方差2.25。我在书NUMERICAL RECIPES in Fortran 90,第7章,第7.2节中看到了用于此的函数gasdev
,但我不知道如何使用这个函数。
如何使用合奏的数量以及均值和方差?
谢谢
答案 0 :(得分:1)
IMO,如何使用NR中的函数最好用NR本身编写。
如果你需要生成正态分布的实数,请谷歌进行“Box-Muller变换”,或直接转到Wiki page和/或数十个问题和答案。
如果您的要求是生成整数(您的意思是通过询问离散随机数?),我会说最简单的方式is to compute the cdf
答案 1 :(得分:0)
gasdev
返回正态分布的随机变量,其均值为0.0
,方差为1.0
,通常写为N(0, 1)
。您应该使用方差缩放结果,以匹配所需的分布。请注意,如果x
为N(0, 1)
(由gasdev
返回),则y = a + b*x
为N(a, b^2)
,即均值为{{1}的正态分布随机变量和a
的方差。
(顺便说一句,如果这是一个家庭作业,它应该被正确标记)