JavaScript 高斯分布随机

示例

该函数应提供标准偏差接近0的随机数。从一副纸牌中拾取或模拟骰子掷骰时,这就是我们想要的。Math.random()

但是在大多数情况下,这是不现实的。在现实世界中,随机性倾向于聚集在一个共同的正常值附近。如果将其绘制在图形上,则会得到经典的钟形曲线或高斯分布。

用该功能做到这一点相对简单。Math.random()

var randNum = (Math.random() + Math.random()) / 2; 

var randNum = (Math.random() + Math.random() + Math.random()) / 3; 

var randNum = (Math.random() + Math.random() + Math.random() + Math.random()) / 4;

在最后添加一个随机值会增加随机数的方差。除以您添加的次数可以将结果归一化为0-1

由于添加多个随机数比较麻烦,因此一个简单的函数将允许您选择所需的方差。

// v is the number of times random is summed and should be over >= 1

// 返回0-1排除之间的随机数

function randomG(v){ 

    var r = 0;

    for(var i = v; i > 0; i --){

        r += Math.random();

    }

    return r / v;

}

该图显示了v的不同值的随机值分布。左上角是标准单次调用,右下角相加8次。这是使用Chrome的5,000,000个样本Math.random()Math.random()

这种方法最有效 v<5

以上是 JavaScript 高斯分布随机 的全部内容, 来源链接: utcz.com/z/347067.html

回到顶部