2

这张来自 Wikipedia 的图片有一个很好的例子,说明了我希望生成的那种功能:

伪高斯分布

现在我正在使用 Irwin-Hall 分布,它或多或少是高斯分布的多项式近似......基本上,您使用统一随机数生成器并对其进行 x 次迭代,然后取平均值。迭代次数越多,它就越像高斯分布。

这很不错;但是我希望能够拥有一个可以改变平均值的方法。例如,假设我想要一个介于 0 和 10 之间的数字,但7 左右。就像,平均值(如果我多次重复此函数)结果是 7,但实际范围是 0-10。

有没有我应该查找的,或者我应该使用标准高斯分布做一些花哨的数学?

4

3 回答 3

1

我在你的问题中看到了矛盾。从一侧你想要正态分布,它本质上是对称的,从另一侧你想要范围不对称地设置为平均值。

我怀疑您应该尝试查看其他分布密度函数,其类似于钟形曲线但不对称。像日志分布beta 分布

于 2010-05-14T07:06:30.667 回答
0

研究生成正常的随机变量。您可以生成成对的正态随机变量 X = N(0,1) 并将其转换为任何正态随机变量 Y = N(m,s) (Y = m + s*X)。

于 2010-05-18T16:22:55.903 回答
0

听起来截断正态分布正是医生所要求的。它本身并不是“计算简单”,但如果您有一个现有的正态分布实现,则很容易实现。

您可以生成具有所需均值、所需标准差以及两端任意位置的分布。您必须事先做一些工作来计算基础(非截断)正态分布的均值和标准差,以获得所需 TN 的均值,但您可以使用该文章中的公式。另请注意,您也可以使用此方法调整方差:)

我有 Java 代码(基于 Commons Math 框架),用于准确(较慢)快速(不太准确)实现此分发,包括 PDF、CDF 和采样。

于 2013-01-25T08:10:16.500 回答