/**
* 均方根(Root Mean Square, RMS)是一种均值函数,
* 用于衡量一组数的大小,而不考虑它们的符号。
* 它是输入数值平方的平均值的平方根。
* 该算法的时间复杂度为 `O(n)`,即线性时间,与数组的长度成正比。
*
* @param {Array<number>} x 包含一个或多个数据点的样本
* @returns {number} 均方根
* @throws {Error} 如果 x 为空
* @example
* rootMeanSquare([-1, 1, -1, 1]); // => 1
*/
function rootMeanSquare(x) {
if (x.length === 0) {
throw new Error("rootMeanSquare 至少需要一个数据点");
}
let sumOfSquares = 0;
for (let i = 0; i < x.length; i++) {
sumOfSquares += Math.pow(x[i], 2);
}
return Math.sqrt(sumOfSquares / x.length);
}
export default rootMeanSquare;