3

是否有一种单遍算法可以产生分布在正态(高斯)分布的一部分上的数字?

我想指定一个基值(分布的中心)、一个标准偏差以及一个最小值和最大值。

例如,我可能希望所有值以与正态分布相同的比率分布在 -0.5 和 +1 标准差之间(显然增加以考虑缺失的尾部)。

显然,可以使用循环并且仅在生成的数字介于最小值和最大值之间时才退出,但是如果最小值/最大值靠得太近或沿着尾部太远,则可能会持续很长时间。

我假设一种具有高斯随机数函数的语言(我使用的是 Java,但几乎可以读取任何内容)。

4

1 回答 1

4

您可以在最小和最大兴趣点处计算给定高斯的erf,生成这两个值之间的随机数(均匀),然后取 inverse erf

我知道 Apache 库erf在 Java 中有一个函数,请参见此处,但我不确定在哪里指向您的倒数erf(当然,在最坏的情况下,您可以使用 Newton-Raphson 计算后者)。

erf (我在这里找到了一种逆算法,使用 Java 实现,但不能保证它的质量)。

于 2009-12-27T05:29:49.820 回答