zoukankan      html  css  js  c++  java
  • 数据结构5.4_m元多项式的表示

    三元多项式表示如下:

    P(x,y,z) = x10y3z2 + 2x6y3z2 + 3x5y2z2 + x4y4z + 6x3y4z + 2yz + 15

    然后对式子进行变形:

    P(x,y,z)=((x10+2x6)y3+3x5y2)z2+((x4+6x3)y4+2y)z+15

    上面的三元多项式可以看成是z的一元多项式。即P(x,y,z)=Az2+Bz1+Cz0

    其中A=((x10+2x6)y3+3x5y2)、B=((x4+6x3)y4+2y)、C=15;

    然后二元多项式A(x,y)又可以看成是关于y的一元多项式;B也如此;

    A(x,y)=((x10+2x6)y3+3x5y2)=Cy3+Dy2

    其中C=x10+2x6、D=3x5

    分解到此处可以看出C、D是关于x的一元多项式;

    这种嵌套结构把m元多项式层层分解;很好地表示了一元多项式。

     

    任何一个m元多项式可以分解出一个主变元,随后再分解出第二个变元等等;

     接下来可以用广义表的数据结构来表示m元多项式;

    1 typedef struct MPNode{
    2         ElemTag    tag;  //区分原子节点or
    3         int             exp;  //指数域  
    4         union{
    5                 float    coef;  //指向系数域
    6                struct   MPNode   *hp;  //表节点的表头指针
    7         };
    8         struct MPNode    *tp; //相当于线性链表的next,指向下一个元素的结点
    9 }* MPList;

    相关链接:

    数据结构28:广义表及m元多项式:https://www.cnblogs.com/ciyeer/p/9040516.html

  • 相关阅读:
    bzoj2959
    学习笔记::lct
    bzoj3203
    bzoj1319
    bzoj3625
    bzoj3992
    bzoj1565
    bzoj3513
    平常练习动归(1.胖男孩)———最长公共子序列
    2016 noip 复赛 day2
  • 原文地址:https://www.cnblogs.com/grooovvve/p/10398311.html
Copyright © 2011-2022 走看看