微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

JavaScript Math.random正态分布高斯钟形曲线?

如何解决JavaScript Math.random正态分布高斯钟形曲线?

我想知道JavaScript函数Math.random是否为正态分布

使用Javascript的Math.random 一个正态分布(高斯钟形曲线)。从 ES 2015,20.2.2.27 “使用依赖于实现的算法或策略返回一个正数大于或等于0但小于1的数字值,该数字值在该范围内随机或伪随机地选择,并且在该范围内具有大致均匀的分布。这函数不带参数。” 因此,当n足够高时,提供的集合将得到近似均匀的分布。间隔中的所有值将具有相等的出现概率(平行于x轴的直线,表示0.0到1.0之间的数字)。

我怎样才能得到正态分布的数字

有几种方法可以收集具有正态分布的数字。正如MaxwellCollard回答的那样,Box- Muller变换 确实将均匀分布转换为正态分布(可以在Maxwell CollardAnswer中找到代码)。

一个问题的另一个stackoverflow答案的答案具有对正态分布算法的其他均匀分布的答案。例如:Ziggurat,均匀率,反转CDF除了答案之一之外,还说:说:

Ziggurat算法对此非常有效,尽管Box-Muller变换更容易从头开始实现(而不是疯狂慢)。

最后

我想重建一个Schmidt机器(德国物理学家),该机器产生0或1的随机数,并且它们必须是正态分布的,因此我可以将它们绘制成高斯钟形曲线。

当我们只有两个值(0或1)时,高斯曲线看起来与具有2个可能值的均匀分布相同。这就是为什么简单

function randomZero_One(){
    return Math.round(Math.random());
}

就足够了。它将以近似相等的概率值0和1伪随机返回。

解决方法

我想知道JavaScript函数是否Math.random使用正态(相对于统一)分布。

如果没有,如何获得使用正态分布的数字?对于创建随机正态分布数字的算法,我在Internet上找不到明确的答案。

我想重建一台施密特机器(德国物理学家)。机器会产生0或1的随机数,它们必须是正态分布的,以便我可以将它们绘制为高斯钟形曲线。

例如,随机函数产生120个数字(0或1),并且这些求和值的平均值(均值)必须接近60。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。