-1

我想生成具有均值为零和方差为 2.25 的高斯分布的离散随机数(用于 1000 个集合)。我在 Fortran 90 中的 NUMERICAL RECIPES书第 7 章第 7.2 节中看到了gasdev用于此的函数,但我不知道如何使用此函数。

如何使用集合的数量以及均值和方差?

谢谢

4

2 回答 2

1

IMO,如何使用 NR 中的函数最好用 NR 本身编写。

如果您需要生成正态分布的实数,请在谷歌上搜索“Box-Muller 变换”,或直接访问Wiki 页面和/或 SO 上的数十个问题和答案。

如果您的要求是生成整数(您的意思是通过询问离散随机数吗?),我想说最简单的方法是计算 cdf

于 2012-07-08T17:43:07.413 回答
0

gasdev0.0返回具有均值和方差的正态分布随机变量1.0,通常写为N(0, 1). 您应该使用方差缩放结果以匹配所需的分布。请注意,如果xN(0, 1)(由 返回gasdev),则y = a + b*xN(a, b^2),即正态分布随机变量,均值为a,方差为b^2

(顺便说一句,如果这是一个家庭作业,它应该被正确标记)

于 2012-07-08T19:45:19.050 回答