三元多项式表示如下:

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元多项式;

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

相关链接:

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

数据结构5.4_m元多项式的表示的更多相关文章

  1. 数据结构28:广义表及M元多项式

    广义表,又称为列表.记作: LS = (a1,a2,…,an) ;( LS 为广义表的名称, an 表示广义表中的数据). 广义表可以看作是线性表的推广.两者区别是:线性表中的数据元素只能表示单个数据 ...

  2. 常用数据结构-namedtuple(命名元祖)

    namedtuple从根本上来说是一个带有数据名称的元祖.它包含元祖的所有特性,但也有一些元祖没有的额外特性.使用namedtuple可以很容易创建轻量级对象类型. namedtuple将是你的代码更 ...

  3. javascript实现数据结构:广义表

    原文:javascript实现数据结构:广义表  广义表是线性表的推广.广泛用于人工智能的表处理语言Lisp,把广义表作为基本的数据结构. 广义表一般记作: LS = (a1, a2, ..., an ...

  4. 看到了必须要Mark啊,最全的编程中英文词汇对照汇总(里面有好几个版本的,每个版本从a到d的顺序排列)

    java:  第一章: JDK(Java Development Kit) java开发工具包 JVM(Java Virtual Machine) java虚拟机 Javac  编译命令 java   ...

  5. IC卡复位应答ATR的数据元和它们的意义

    ISO/IEC 7816-3标准中对ATR的数据串和数据元做了规定和描述.ATR的数据元和它们的意义: 数据元 说明 TS 起始字符 T0 格式字符 TA1,TB1,TC1,TD1,... 接口字符 ...

  6. python基础知识五

    数据结构基本上就是---它们可以处理一些数据的结构.或者说,它们是用来存储一组相关数据的. python中有三种内建的数据结构---列表.元祖和字典. 我们将会学习如何使用它们,以及它们如何使编程变得 ...

  7. HashMap,LinkedHashMap,TreeMap的区别(转)

    Map主要用于存储健值对,根据键得到值,因此不允许键重复(重复了覆盖了),但允许值重复.Hashmap 是一个最常用的Map,它根据键的HashCode 值存储数据,根据键可以直接获取它的值,具有很快 ...

  8. map,set,list等集合解析以及HashMap,LinkedHashMap,TreeMap等该选谁的的区别

    前言: 今天在整理一些资料时,想起了map,set,list等集合,于是就做些笔记,提供给大家学习参考以及自己日后回顾. Map主要用于存储健值对,根据键得到值,因此不允许键重复(重复了覆盖了),但允 ...

  9. lua中self.__index = self是什么意思?

    example1 Account = {balance = 0} function Account:new(conf) conf = conf or {} setmetatable(conf,self ...

随机推荐

  1. 18-printf(*)的输出格式

    #include <bits/stdc++.h> using namespace std; int main(){ for(int i = 0; i < 26; i++){ cout ...

  2. lucene和solr

    我们为什么要用solr呢? 1.solr已经将整个索引操作功能封装好了的搜索引擎系统(企业级搜索引擎产品) 2.solr可以部署到单独的服务器上(WEB服务),它可以提供服务,我们的业务系统就只要发送 ...

  3. tensor 维度 问题。

    tf.argmax takes two arguments: input and dimension. example: tf.argmx(arr, dimension = 1). or tf.arg ...

  4. rpmbuild SPEC语法

    rpmbuild SPEC语法 摘自:http://bbs.chinaunix.net/thread-4179207-1-1.html spec文件写作规范 2008-09-28 11:52:17 分 ...

  5. 清除Vs2010的工作区影射关系的缓存信息的文件夹路径

    C:/Users/Administrator/AppData/Local/Microsoft/Team Foundation/3.0/Cache

  6. unbutu下wireshark编译安装(已更新)

    今天下午在ubuntu下进行编译安装wireshark,过程中出了很多错误,但最终安装成功了,这里写下自己的安装步骤和方法,有参考博文的安装编译方法,也有自己的总结和心得. 1 安装编译工具 $sud ...

  7. 面试题:测试给定的list,使用for,foreach,iterator删除元素的不同表现

    上代码: 1. 使用增强for循环(foreach) package com.xxx; import java.util.ArrayList; import java.util.List; /** * ...

  8. C++ 虚基类 派生与继承

    在学习设计模式时我就有一个疑问,关联和继承除了用法上的区别,好像在内存上并没有什么区别,继承也是父类作为了子类的元素(内存上),关联也是这样.而且关联好像更占内存一些.这就是设计模式里问题了“依赖倒转 ...

  9. window7 Oracle卸载步骤

    完全卸载oracle11g步骤:1. 开始->设置->控制面板->管理工具->服务(或 运行 services.msc) 停止所有Oracle服务.2. 开始->程序-& ...

  10. C#中base的作用

    using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threa ...