计算机应用于数学的数值计算,需要解决数学公式的表示及计算问题。本文给出线性表在多项式计算中的应用,主要讨论多项式在计算机的表示及加法计算。
在数学上,一个一元n次多项式可以按照升幂写成
其中
为多项式的系数,n为多项式的最高次数,没有未知数的项为常数项。
分析多项式结构,多项式由n+1个系数唯一确定,使用线性表存储多项的系数就可以表示一个多项式。
多项式的每一项的指数隐含在线性表的序号里。例如多项式:
可以使用下面的单链表表示:
链表第一个节点存储多项式第1项的系数3,第1个节点的序号为0,因此该项的指数为0,该项为常数项;链表第二个节点存储多项式第2项的系数2,第2个节点的序号为1,因此该项的指数为1,以此类推……
两个多项式的加法运算可以在两个线性表的基础上进行,例如下面的两个多项式P和Q:
若mn,则:
在线性表中两个多项式相加,可以将它们对应的系数分别相加,生成一个新的线性表,该线性表即为两个多项式相加的计算结果。不过采用这种数据结构来表示多项式,有一个很大的问题,当多项式次数很高且变化很大时,很难确定线性表的长度,只能以多项式的最高次数作为线性表的长度,即使该多项式只有几个单项,例如在处理类似下面的多项式时
虽然多项式只有3个单项式,但用上面线性表的节点数据结构存储该多项式,需要一个长度为的线性表,这样的数据结构设计会浪费很大的内存空间。可以考虑线性表的节点数据在存储多项式每项系数的同时,也存储每项的指数,这样就可以只存储多项式的非零项了。
订阅解锁TA的全部专属内容