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