我正在尝试生成一些具有简单非均匀概率的随机数,以模仿逼真的数据以进行测试。我正在寻找一个接受 mu 和 sigma 作为参数并返回 x 的函数,其中 x 在一定范围内的可能性遵循标准钟形曲线或附近。它不需要非常精确,甚至不需要非常高效。生成的数据集不需要与我设置的精确 mu 和 sigma 匹配。我只是在寻找一个相对简单的非均匀随机数生成器。将可能的返回值集限制为整数就可以了。我见过很多建议,但似乎都不适合这个简单的情况。
Box-Muller 变换 http://en.wikipedia.org/wiki/Box-Muller_transform简而言之:
首先,从区间(0, 1]中获取两个独立的、均匀的随机数,称之为U和V。
然后你可以从公式中得到两个独立的单位正态分布的随机数
X = sqrt(-2 * log(U)) * cos(2 * pi * V);
Y = sqrt(-2 * log(U)) * sin(2 * pi * V);
这为您提供了 mu = 0、sigma = 1 的 iid 随机数;要设置 sigma = s,请将随机数乘以 s;要设置 mu = m,请将 m 添加到随机数中。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)