标准差

101 阅读1分钟
/**
 * 标准差
 * @param {Array} arr 数据
 * @param {Number} s 数据和
 * @param {Number} fix 保留的小数位数
 * @returns {Number}
 */

export function std(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(Math.pow(s / l, 0.5).toFixed(fix));
}