多项式的加法与减法

一、多项式

在了解多项式的加减法之前,我们先回顾一下多项式的基本概念。

  1. 什么叫多项式

在数学中,由若干个单项式相加组成的代数式叫做多项式(若有减法:减一个数等于加上它的相反数)。

如 x³ + x² - 4x + 3、x² + 1、x³ 等

  1. 多项式的一些名词
    多项式的项:多项式中的每个单项式
    多项式的次数:单项式中的最高项次数
    常数项:多项式中不含字母的项
    如 x³ + x² - 4x + 3 有 4项,次数为3,常数项为3.

二、多项式的加法

OK,话不多说,直接展开正题。
其实本质上多项式的加法与减法是同一种运算,例如 “1 - 2"可以转换成加法运算"1 + (-2)” , 事实上接下来要讲的多项式的减法也是这么做的。所以只要解决了加法,减法也不是什么问题。

  • 那么如何解决多项式的加法呢 ?
    在这篇文章中,我们采用最简单的方法 —— 用数组表示多项式的系数,并且作加法运算。
    如 x³ + 4x 我们按常数项开始计数,它可以表示为:

    0 4 0 1

    x² - 4x + 3 可以表示为:

    3 -4 1

    对它们作加法运算:
    0 4 0 1
    3 -4 1

    3 0 1 1 就是最终结果,所以 (x³ + 4x) + ( x² - 4x + 3) = x³ + x² + 3
    注:以常数项为基准对齐,不用进位

代码示例

思路已经在上面了,接下来放出代码:

/     *************************************
  A、B和R分别用于存储作运算的多项式和最终的结果
      m、n和k是对应以上三个数组的长度
      *************************************/
void polynomial_add(double A[], int m, double B[], int n, double R[], int k)
{  //k = max(m,n);
	int i, j;
	
	for (i = 0; i < k; i++)   //初始化
	{
		R[i] = 0.0;
	}
	
	int max = m > n ? m : n;
	int min = m < n ? m : n;
	
	for (i = 0; i < min; i++)   //对齐部分的运算
	{
		for (j = 0; j < min; j++)
		{
			if (i == j)
			{
				R[i] += A[i] + B[j];
			}
		}
	}
	
	if(max==m)   //非对齐部分的运算
	{ 
		for (i = min; i < k; i++)
		{
			R[i] += A[i];
		}
	}
	else
	{
		for (i = min; i < k; i++)
		{
			R[i] += B[i];
		}
	}
}

三、多项式的减法

只需把减数(减号后面的多项式)的系数重置为对应的相反数即可。
代码示例:

void polynomial_sub(double A[], int m, double B[], int n, double R[], int k)//多项式减法
{
	int i;
	for (i = 0; i < n; i++)
	{
		B[i] = -B[i];
	}
	polynomial_add(A, m, B, n, R, k);
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值