Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/453.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在JavaScript中,从具有固定平均值、SD和范围的正态分布生成随机数?_Javascript_Random_Normal Distribution - Fatal编程技术网

在JavaScript中,从具有固定平均值、SD和范围的正态分布生成随机数?

在JavaScript中,从具有固定平均值、SD和范围的正态分布生成随机数?,javascript,random,normal-distribution,Javascript,Random,Normal Distribution,我学会了如何从这个答案中生成一个具有固定范围、平均值和sd的随机数列表,但我也学会了math.random()不遵循正态分布。我的问题是,在JavaScript中,是否可以生成一个遵循正态分布、具有固定范围、均值和标准差的随机数列表?i、 从2到100的正态分布中随机抽取10个数字;平均值应该是20,标准差应该是10 对于正态分布部分,我尝试从正态分布中提取随机数(0到1),以替换Math.random()函数: function randn_normal() { var u = 0,

我学会了如何从这个答案中生成一个具有固定范围、平均值和sd的随机数列表,但我也学会了math.random()不遵循正态分布。我的问题是,在JavaScript中,是否可以生成一个遵循正态分布、具有固定范围、均值和标准差的随机数列表?i、 从2到100的正态分布中随机抽取10个数字;平均值应该是20,标准差应该是10

对于正态分布部分,我尝试从正态分布中提取随机数(0到1),以替换Math.random()函数:

function randn_normal() {
    var u = 0, v = 0;
    while (u === 0) u = Math.random(); //Converting [0,1) to (0,1)
    while (v === 0) v = Math.random();
    let num = Math.sqrt(-2.0 * Math.log(u)) * Math.cos(2.0 * Math.PI * v);
    num = num / 10.0 + 0.5; // Translate to 0 -> 1
    if (num > 1 || num < 0) return randn_normal(); // resample between 0 and 1
    return num;
}
函数randn_normal(){
var u=0,v=0;
而(u==0)u=Math.random();//将[0,1]转换为(0,1)
而(v==0)v=Math.random();
设num=Math.sqrt(-2.0*Math.log(u))*Math.cos(2.0*Math.PI*v);
num=num/10.0+0.5;//转换为0->1
如果(num>1 | | num<0)返回randn_normal();//在0和1之间重新采样
返回num;
}

这是否回答了您的问题?另请参见