一元多项式的表示及相加

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一元多项式的表示及相加相关的知识,希望对你有一定的参考价值。

符号多项式的操作,已经成为表处理的典型用例,在数学上,一个一元多项式Pn(x)可按升幂写成:

 

Pn(x)=p0+p1x1+p2x2+p3x3+…+pnxn

它由n+1个系数惟一确定。因此,在计算机里,它可用一个线性表P来表示:

P=(p0,p1,p2,p3,…,pn)

每一项的指数i隐含在其系数pi的序号里。

本节内容将主要讨论如何利用线性链表的基本操作为实现一元多项式的运算。

 

利用线性链表的基本操作来实现一元稀疏多项式的运算,实现抽象数据类型Polynomial。


ADT Polynomial{
数据对象:D={ ai | ai∈TermSet, i=1,2,...,m,  m≥0 
TermSet中的每个元素包含一个表示系数的实数和表示指数的整数}
数据关系:R1={ <ai-1, ai>|ai-1, ai∈D, 且ai-1中的指数值<ai中的指数值,i=2,……,n}
基本操作:
     CreatPolyn(&P,m)
操作结果:输入m项的系数和指数,建立一元多项式P。
     DestroyPolyn(&P)
初始条件:一元多项式P已存在。
操作结果:销毁一元多项式P。
     PrintPolyn(P)
初始条件:一元多项式P已存在。
操作结果:打印输出一元多项式P。
     PolynLength(P)
初始条件:一元多项式P已存在。
操作结果:返回一元多项式P中的项数。
    AddPolyn(&Pa,&Pb)
初始条件:一元多项式Pa和Pb已存在。
操作结果:完成多项式相加运算,即:Pa=Pa+Pb,并销毁一元多项式Pb。
    SubtractPolyn(&Pa,&Pb)
初始条件:一元多项式Pa和Pb已存在。
操作结果:完成多项式相减运算,即:Pa=Pa-Pb,并销毁一元多项式Pb。
    MultiplyPolyn(&Pa,&Pb)
初始条件:一元多项式Pa和Pb已存在。
操作结果:完成多项式相乘运算,即:Pa=Pa×Pb,并销毁一元多项式Pb。
}ADT Polynomial

 

实现上述定义的一元多项式,显然应采用链式存储结构。如何实现用这种线性表表示的多相式的加法运算。

根据一元多项式相加的运算规则:对于两个一元多项式所有指数相同的项,对应系数相加,若其和不为零,则构成“和多项式”中的一项;对于两个一元多项式中所有指数不相同的项,则分别复抄到“和多项式”中去。

以上是关于一元多项式的表示及相加的主要内容,如果未能解决你的问题,请参考以下文章

一元多项式的表示及相加

数据结构算法C语言实现---2.4一元多项式的表示及相加

一元多项式的表示及加减乘除运算

线性表及其实现

用java单链表实现一元多项式相加的算法?

线性表及其应用(多项式相加、相乘)----根据程序画出流程图及对每句程序加注释(c语言)