js实现多项式累加
多项式累加的 JavaScript 实现
多项式累加通常指对多个多项式进行求和运算。以下是一个完整的实现方法,包含多项式表示、累加逻辑和示例代码。
多项式表示方法
在 JavaScript 中,多项式可以用数组表示,数组索引对应多项式项的指数,数组值对应系数。例如多项式 3x² + 2x + 1 可以表示为 [1, 2, 3]。
基础累加实现
function addPolynomials(poly1, poly2) {
const result = [];
const maxLength = Math.max(poly1.length, poly2.length);
for (let i = 0; i < maxLength; i++) {
const coeff1 = poly1[i] || 0;
const coeff2 = poly2[i] || 0;
result.push(coeff1 + coeff2);
}
return result;
}
处理多个多项式累加
扩展上述函数以支持多个多项式相加:
function addMultiplePolynomials(...polynomials) {
if (polynomials.length === 0) return [];
let result = polynomials[0];
for (let i = 1; i < polynomials.length; i++) {
result = addPolynomials(result, polynomials[i]);
}
return result;
}
优化版本(原地修改)
对于性能敏感场景,可以使用原地修改的方式:
function addPolynomialsInPlace(poly1, poly2) {
const longer = poly1.length >= poly2.length ? poly1 : poly2;
const shorter = poly1.length < poly2.length ? poly1 : poly2;
for (let i = 0; i < shorter.length; i++) {
longer[i] += shorter[i];
}
return longer;
}
使用示例
const p1 = [1, 2]; // 2x + 1
const p2 = [3, 4, 5]; // 5x² + 4x + 3
const p3 = [0, 1]; // x
const sum = addMultiplePolynomials(p1, p2, p3);
console.log(sum); // 输出 [4, 7, 5] (5x² + 7x + 4)
注意事项
- 输入验证:实际应用中应添加对输入是否为数组的验证
- 稀疏多项式:对于稀疏多项式(如 x¹⁰⁰ + 1),可能需要使用对象或 Map 来优化存储
- 性能考虑:对于极高次多项式,可能需要特殊优化算法
扩展功能
可以添加多项式规范化功能,去除结果中高次的零系数:
function normalizePolynomial(poly) {
let i = poly.length - 1;
while (i >= 0 && poly[i] === 0) i--;
return poly.slice(0, i + 1);
}






