Javascript 我需要半个高斯钟
我创建了一个函数,它返回一个高斯数,介于你输入的最小值和最大值之间。随机子函数给出的高斯数介于0和1之间,通常为0.5。我想知道是否有办法使数字趋于0。好像是半高斯钟Javascript 我需要半个高斯钟,javascript,arrays,random,numbers,gaussian,Javascript,Arrays,Random,Numbers,Gaussian,我创建了一个函数,它返回一个高斯数,介于你输入的最小值和最大值之间。随机子函数给出的高斯数介于0和1之间,通常为0.5。我想知道是否有办法使数字趋于0。好像是半高斯钟 function gaussianNumber(min, max, strength) { function random(){ var rand = 0; for (var i = 0; i < strength; i++) { rand += Math.random(); }
function gaussianNumber(min, max, strength) {
function random(){
var rand = 0;
for (var i = 0; i < strength; i++) {
rand += Math.random();
}
return rand / strength;
}
return Math.floor(random()*(max+1-min)+min);
函数高斯数(最小、最大、强度){
函数随机(){
var-rand=0;
对于(变量i=0;i
}这可能是应用中心极限定理生成高斯随机数的合理方法,但您得到的
random()
表达式是错误的。如果你想用G(0,1)
作为高斯N(0,1)
平均值为0和标准偏差1的近似值,你必须使用以下表达式:
G(0,1) = (Sum_1^n U(0,1) - n/2) / sqrt(n/12)
推荐的n
以12开头,不过您可以使用较少的样本进行实验
代码
有待进一步讨论。通过使用函数的绝对值,可以从这个函数中得到一半的高斯钟
有点不清楚最小值和最大值之间的wrt高斯是什么意思。你们希望你们的高斯平均值在哪里?你可以把平均值放在最小值和最大值之间,从技术上讲,它仍然在
function G(n) {
var rand = 0.0;
for (var i = 0; i != n; ++i) {
rand += Math.random();
}
return (rand - 0.5*n) / Math.sqrt(n/12.0);
}