标签: distribution gaussian normal-distribution
是否存在可以产生分布在正常(高斯)分布的部分上的数字的单遍算法?
我想指定基值(分布的中心),标准偏差以及最小值和最大值。
例如,我可能希望所有值在-0.5和+1标准偏差之间以与正态分布中相同的比例分布(显然增加以考虑丢失的尾部)。
显然,如果生成的数字介于最小值和最大值之间,则可以使用循环并仅退出,但如果min / max距离太近或距离尾部太远,则可能会持续很长时间。
我假设一种语言具有高斯随机数函数(我使用的是Java,但几乎可以读取任何内容)。
答案 0 :(得分:4)
您可以在最小和最大兴趣点计算给定高斯的erf,在这两个值之间生成随机数(均匀),并取反erf。
erf
我知道Apache库在Java中有一个erf函数,请参阅here,但我不知道在哪里指向erf的反转(最坏的情况,当然,你可以用Newton-Raphson来计算后者。
(我发现了一个反向erf here的算法,使用Java实现,但无法保证其质量。