当前位置:首页 > JavaScript

js实现多项式累加

2026-03-01 23:53:40JavaScript

实现多项式累加的方法

多项式累加可以通过多种方式实现,以下是几种常见的方法:

使用数组存储系数并累加

将多项式的系数存储在数组中,数组的索引对应变量的幂次。例如,多项式 $3x^2 + 2x + 1$ 可以表示为 [1, 2, 3]

function addPolynomials(poly1, poly2) {
    const maxLength = Math.max(poly1.length, poly2.length);
    const result = [];

    for (let i = 0; i < maxLength; i++) {
        const coeff1 = poly1[i] || 0;
        const coeff2 = poly2[i] || 0;
        result.push(coeff1 + coeff2);
    }

    return result;
}

// 示例:计算 (3x^2 + 2x + 1) + (x^2 + 4x + 5)
const poly1 = [1, 2, 3];
const poly2 = [5, 4, 1];
console.log(addPolynomials(poly1, poly2)); // 输出 [6, 6, 4]

使用对象存储幂次和系数

如果多项式的幂次较高且稀疏,可以使用对象来存储幂次和系数的键值对。

function addPolynomials(poly1, poly2) {
    const result = {};

    // 累加第一个多项式的系数
    for (const power in poly1) {
        result[power] = (result[power] || 0) + poly1[power];
    }

    // 累加第二个多项式的系数
    for (const power in poly2) {
        result[power] = (result[power] || 0) + poly2[power];
    }

    return result;
}

// 示例:计算 (3x^2 + 2x + 1) + (x^2 + 4x + 5)
const poly1 = { 0: 1, 1: 2, 2: 3 };
const poly2 = { 0: 5, 1: 4, 2: 1 };
console.log(addPolynomials(poly1, poly2)); // 输出 { 0: 6, 1: 6, 2: 4 }

处理多项式字符串输入

如果输入是多项式字符串(如 "3x^2 + 2x + 1"),可以先将字符串解析为系数数组或对象,再进行累加。

js实现多项式累加

function parsePolynomial(str) {
    const terms = str.split(/\s*\+\s*/);
    const poly = {};

    terms.forEach(term => {
        const match = term.match(/(\d*)x\^?(\d*)|(\d+)/);
        let coeff, power;

        if (match[3]) {
            // 常数项
            coeff = parseInt(match[3], 10);
            power = 0;
        } else {
            // 含x的项
            coeff = match[1] === '' ? 1 : parseInt(match[1], 10);
            power = match[2] === '' ? 1 : parseInt(match[2], 10);
        }

        poly[power] = (poly[power] || 0) + coeff;
    });

    return poly;
}

function addPolynomials(poly1, poly2) {
    const result = {};
    for (const power in poly1) {
        result[power] = (result[power] || 0) + poly1[power];
    }
    for (const power in poly2) {
        result[power] = (result[power] || 0) + poly2[power];
    }
    return result;
}

// 示例:计算 (3x^2 + 2x + 1) + (x^2 + 4x + 5)
const poly1 = parsePolynomial("3x^2 + 2x + 1");
const poly2 = parsePolynomial("x^2 + 4x + 5");
console.log(addPolynomials(poly1, poly2)); // 输出 { 0: 6, 1: 6, 2: 4 }

注意事项

  • 输入的多项式可以是数组、对象或字符串形式,需根据实际需求选择解析方式。
  • 稀疏多项式(某些幂次系数为0)适合用对象存储,而密集多项式适合用数组存储。
  • 对于更高阶的多项式操作(如乘法、求导等),可以基于累加方法进一步扩展实现。

标签: 多项式js
分享给朋友:

相关文章

js实现轮播图

js实现轮播图

轮播图实现方法 基础HTML结构 <div class="slider"> <div class="slides"> <img src="image1.jpg…

js jquery

js jquery

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画设计和 Ajax 交互。它兼容多种浏览器,提供易于使用的 API,使开发者能够…

js钟表实现

js钟表实现

实现JavaScript钟表的基本方法 创建一个简单的JavaScript钟表可以通过以下步骤完成,涵盖数字和模拟两种形式。 数字钟表实现 HTML结构只需一个显示时间的容器: <div i…

js节流实现

js节流实现

节流的概念 节流(Throttle)是一种限制函数执行频率的技术,确保函数在一定时间间隔内只执行一次。常用于滚动事件、窗口调整等高频触发的场景。 基础实现方法 使用时间戳判断是否执行函数: fun…

js实现视口

js实现视口

js实现视口检测的方法 使用JavaScript检测元素是否进入视口(viewport)可以通过Intersection Observer API或手动计算元素位置实现。以下是两种常见方法: Int…

js实现定位

js实现定位

使用Geolocation API获取当前位置 在JavaScript中,可以通过浏览器内置的Geolocation API获取用户的地理位置信息。该API需要用户授权才能访问位置数据。 if (n…