gpt4 book ai didi

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

转载 作者:IT王子 更新时间:2023-10-29 03:05:37 26 4
gpt4 key购买 nike

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

如果不是,我怎样才能得到使用正态分布的数字?对于创建随机正态分布数字的算法,我尚未在 Internet 上找到明确的答案。

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

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

最佳答案

根据我的经验,这是第一个关于“js gaussian random”的 Google 结果,我觉得有义务对该查询给出实际答案。

Box-Muller transform将 (0, 1) 上的两个独立均匀变量转换为两个标准高斯变量(均值 0,方差 1)。由于 sqrtlogcos 调用,这可能不是很高效,但此方法优于中心极限定理方法(求和 N 个统一变量)因为它不会将输出限制在有界范围内(-N/2,N/2)。这也很简单:

// Standard Normal variate using Box-Muller transform.
function randn_bm() {
let u = 1 - Math.random(); //Converting [0,1) to (0,1)
let v = Math.random();
return Math.sqrt( -2.0 * Math.log( u ) ) * Math.cos( 2.0 * Math.PI * v );
}

关于JavaScript Math.random 正态分布(高斯钟形曲线)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25582882/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com