方差

91 阅读1分钟

/**

  • 方差
  • @param {Array} arr 数据
  • @param {Number} s 数据和
  • @param {Number} fix 保留的小数位数
  • @returns {Number} */
export function sd(arr, s = 0, fix = 1) {
  let m = 0,
    l = arr.length;
  if (l === 0) return 0;
  if (!s) {
    s = 0;
    for (let i = 0; i < l; i++) s += arr[i];
  }
  m = s / l;
  s = 0;
  for (let i = 0; i < l; i++) {
    s += Math.pow(arr[i] - m, 2);
  }
  return Number((s / l).toFixed(fix));
}