JavaScript趣题:计算方差

时间:2022-09-01 00:37:12

“方差”通常用于统计学和概率论中。

给定一个序列的数,如何求出它们的方差?

首先,求出它们的平均数,然后用每一个数减去平均数,求出它们的平方和,最后再除以序列的大小,就可以得到方差。

例如:给定一个序列,[1, 2, 2, 3]

先求平均数:

(1 + 2 + 2 + 3) / 4 => 2

再求方差:

((1 - 2)^2 + (2 - 2)^2 + (2-2)^2 + (3 - 2)^2) / 4 => 0.5

有时,这个结果它会是个很长的小数,我们不用求出这么多位,保留34位小数就可以了,这时就可以用到JStoFixed方法,对小数进行四舍五入。

var variance = function(numbers) {
var mean = 0;
var sum = 0;
for(var i=0;i<numbers.length;i++){
sum += numbers[i];
}
mean = sum / numbers.length;
sum = 0;
for(var i=0;i<numbers.length;i++){
sum += Math.pow(numbers[i] - mean , 2);
}
return sum / numbers.length;
};