当前位置:文档之家› 一元多项式的最大公因式的几种求法

一元多项式的最大公因式的几种求法

一元多项式的最大公因式的几种求法
一元多项式的最大公因式的几种求法

一元多项式的最大公因式的几种求法

苏昌怀

( 陇东学院数学系 甘肃 庆阳 745000)

论文提要:多项式理论是高等代数的重要组成部分,求最大公因式在多项式理论研究中占有显著地位。本文从辗转相除、矩阵的初等变换以及矩阵的斜消变换等不同角度给出了一元多项式的最大公因式的不同求法。

关键词: 最大公因式; 辗转相除; 初等变换; 斜消变换

1.辗转相除法

辗转相除法是求两个多项式的最大公因式的一般方法,在每次作除法时用的是带余除法。它的原理和一般实例可以参见《高等代数》。按照《高等代数》中的辗转相除法求多项式的最大公因式时,往往会出现较为复杂的分数运算。为了运算的简化,我们可以用一个非零常数去乘被除式或者除式。这种方法不仅在辗转相除法的开始可以用,而且在辗转相除的过程中也这是由于若()x f =()x q ()x g +()x r 于o ≠C ∈p,我们有()()[]()x g x Cq x Cf =+()x Cr ,及()()()[]+??

?

???=x Cg x q C x f 1()x

r 故

()()()()()()()()()()()

x g x f x r x g x Cr x g x g x Cf ,,,),(===()()()()()()()()()()()()x g x f x r x g x r x Cg x Cg x f ,,,,===

另外,为了简化计算,在辗转相除的过程中,若遇到两个多项式的次数相同时,可以任去一个作除式,另一个作为被除式。并且为了减小多项式的系数,也可被除式减去除式的若干倍再做辗转相除,不改变()()()x g x f ,的结果,()()()(),x r x g x q x f +=

()()()()()[]()()x r x g x u x q x g x u x f +-=-,

()()()()

()()()

()()()

()x r

x

f

x

r

x

g

x

g

x

g

x

u

x

f,

,

,=

=

-,

由此,辗转相除法得到了进一步的简化。

例1:设()x

x

f=4 +3x3-x2-4x-3,()x

g=3x3+10x2+2x-3,求()x f,()x

g。

-3

乘以-

5

1

X+2

乘以3

x

x -

乘以1

3 -

从而,()()

()3

,+

=x

x

g

x

f

设432 ()

242

f x x x x x

=+---, 432

()22

g x x x x x

=+---求:((),())

f x

g x

从而,2

,(()())

2f x g x x

=

-

2矩阵的初等变换法

我们知道,在多项式空间

()

x p 与向量空间p

n 1

+ 可以建立同构映射:

()a a a

a a

x

a x

a x

a n n

n n n

n

011

1

1

1

,,,, ---→

+

+

++

此外

(1)()()()()()()x f x g x g x f ,,= (2)()()()()()()x kg x f x g x f ,,= (3)()()()()()()()x g x kg x f x g x f ,,+= (4)()()()()()()()()x g x g x s x f x g x f ,,+= (5)设a 0≠0,()()()()()

()x g x f x g x f x

m

,,=,z m ∈。

由以上知识可以得到一下结论:若用A=

?

????--b b

b

b a a a

a n n

n n 0

1

1

011

表示多项式 ()x f = a a x

a x

a n n n

n

011

1

+

+

++

-- ,与()x g = b x b x b x b n n n n 0111++++-- 的待求最大公因

式,则对A 实行初等行变换,不改变两个多项式的最大公因式;当0a ≠0时,

??????--

b b

b

b a a a a n n

n n 01

1

011??

?

????--00

2

11b

b

b a a a

a n n

n n

,即它们表示的两个多项式的待求最大公因式相等。

运用这个结论可以利用矩阵的初等变换求多项式的最大公因式,特别是求多个多项式的最大公因式时优势更明显。 例3:设)

(x f

=34243

3

4-++-x x x x ,()6

423

++-=x x x x g ,()222

3

+--=x x x x h

求()()()()x h x g x f ,,

解:A=

????

??????-----21

2

10

6141034241→???????

???-----42

2

006141034241

?????

?

??

???-----00

4

22

0614134241

??????????-----34

2

4

1

0614100211

→???????

???-----321

000633000211

????????

???-----32

100

6330021100

→????

?

??

???----00

000

1100021100

→??????????----00

0110021100

???????

???----→00

00

00110022000

????????

???----00

01100022000

→????

?

??

???00

0000011000

所以 , ()()()()1,,+=x x h x g x f

3矩阵的斜消变换法

矩阵的斜消变换分为左斜消变换和右斜消变换。

设A=()ij

a 为m ×n 阶矩阵,若A 的第i 行从左向右第一个不为零的元素为1

,+s i a

第j 行

的第一列元素不为零(i ≠j ),则称将第i 行的N-S 个元素in

s i S i a a a ....,2,1

,,++乘以数C 斜

加到第j 行元素s

jn j j a a a

-...,21

上的变换为第i 行到第j 行的左斜消变换,记为L )(C s ji ;

若A 的第i 行从右夏管左第一个元素不为零的元素为,is a 1<=s<=n ,第j 行的第N

列元素A 不为零(i ≠j ),则称第i 行的S 个元素is i i a a a ....,21乘以数C 斜加到第j 行元素:a jn s n j a a ,...1,+-上的变换为第i 行到第j 行的右斜消变换,记为

()C R s

n ji

-

我们约定,用左斜消变换化简矩阵时,若所得到的矩阵的前若干列元素全为零时,要及时消去这些列再做变换;用右斜消变换化简矩阵时,若所得的矩阵的或若干列元素全为零是,要及时消去这些列在2做变换。这样可以达到简化矩阵的目的。 根据《基于矩阵斜消变换的最大公因式求解》一文,我们有以下结论: 设()()m i a x a x

a x a x f in n i n i n

il i ,...2,1.....1,1

2=++++=--

为m 个多项式(至少有一个常数项

不为零),A 为与多项式F (X )(i=1,2….m )献对应的矩阵,则对A 施行矩阵的第一,第二种初等行变换以及左斜消变换不改变与其对应的这组多项式的最大公

因式,并且总可以将矩阵A 化为如下形式的矩阵:C=

????

?

??????-0....

............0...00 (1)

12t b b

此时 ()()()()12

21

2

1

......,...,---+++=

t t t m

b x

b x

x f x f x f

例4:用矩阵的斜消变换求例3中的()()()x h x g x f ,, 的最大公因式 ()()()()x h x g x f ,,。

解:A=???

?

?

???

??-----21

2

1

61410

34241()()1,1023112--L L ????

?

?????-----21

21

4220032100

()11

32L

????

?

?????-----21

2

1

21103210

()

1132L ????

?

???

??----21

1

2

11321

()()

1,10320

12-L L

????

????

??---00

2

11110()___11

21-L ????

?

???

??--002

211

()2021L ????

?

?????000011

所以()()()()1,,+=

x x h x g x f

参考文献:

【1】北京大学数学系几何与代数教研室,高等代数[M],北京:高等教育出版社,2003:13~15页

【2】郁金祥基于矩阵斜消变换的最大公因式求解[J],数学实践与认识2005年第11期

【3】高基全斜消变换与结式计算的简化[J]。数学通报,1993年第11戎

(完整版)提公因式法因式分解练习题

因式分解---------提公因式法 下列从左到右的变形中,哪些是因式分解,哪些不是。 (1))2(3362 2 3 b a a b a a -=- (2))1(2 3 2 x x x x --=+- (3)))((2 2 b ab a b a ++-33b a -= (4))3)(2(--x x 652+-=x x (5)㎡=m ×m (6)㎡+m=m 3( ) 二、用提公因式法因式分解(一) (1)332168b a ab - (2)22mn n m +- (3)2 515x xy -- (4)3224 1ab b a - (5)ab b a b a -+2233 (6) 3 22316128ay y a y a -+- (7)am m a m a 126323+--(8)xy y x y x ++-2 2 3 2 用提公因式法因式分解(二) (1)2 )()(b a b a +-+ (2))()(x y y y x x -+- (3))(2)(62 n m n m +-+(4))(2)(32 y x x y -+- (5))()(3y x x y x ----(6)2 2 )()(m n n n m m --- (7))(4)(6p q q q p p +-+ (8))(4)(122 x y ab y x b a --- (9)))(())((y x b a y x b a -+-++ 用提公因式法因式分解(三) (1))(2)(72a b y b a x --- (2) )3()3(52 2x a x --- (3) 23)()(2b a b a +-+ (4)2 22)3()3(a b x b a x --- 5))(3)(2p q b q p a ---(6)2 2 3 )1(8)1(6x p x p --- (7)2 )1()1(---a a a (8)2 2 )()()(b a b a b a --+- (9))1()1(2)1(3x c x b x a -+---- (10))32()23()1(2x x x -+-- 用提公因式法因式分解(四) (1)2 )())((y x x y x y x x +--+

顺序链式一元多项式加法、减法、乘法运算的实现

1.1设计内容及要求 1)设计内容 (1)使用顺序存储结构实现多项式加、减、乘运算。 例如: 10321058)(2456+-+-+=x x x x x x f ,x x x x x x g +--+=23451020107)( 求和结果:102220128)()(2356++-+=+x x x x x g x f (2)使用链式存储结构实现多项式加、减、乘运算, 10305100)(1050100+-+=x x x x f ,x x x x x x g 320405150)(10205090+++-= 求和结果:1031040150100)()(102090100++-++=+x x x x x x g x f 2)设计要求 (1)用C 语言编程实现上述实验内容中的结构定义和算法。 (2)要有main()函数,并且在main()函数中使用检测数据调用上述算法。 (3)用switch 语句设计如下选择式菜单。 ***************数据结构综合性实验**************** *******一、多项式的加法、减法、乘法运算********** ******* 1.多项式创建 ********** ******* 2.多项式相加 ********** ******* 3.多项式相减 ********** ******* 4.多项式相乘 ********** ******* 5.清空多项式 ********** ******* 0.退出系统 ********** ******* 请选择(0—5) ********** ************************************************* *请选择(0-5): 1.2数据结构设计 根据下面给出的存储结构定义: #define MAXSIZE 20 //定义线性表最大容量

一元多项式加减乘除运算

中国计量学院实验报告 实验课程:算法与数据结构实验名称:一元二项式班级:学号: 姓名:实验日期: 2013-5-7 一.实验题目: ①创建2个一元多项式 ②实现2个多项式相加 ③实现2个多项式相减 ④实现2个多项式相乘 ⑤实现2个多项式相除 ⑥销毁一元多项式 实验成绩:指导教师:

二.算法说明 ①存储结构:一元多项式的表示在计算机内可以用链表来表示,为了节省存储 空间,只存储多项式中系数非零的项。链表中的每一个结点存放多项式的一个系数非零项,它包含三个域,分别存放该项的系数、指数以及指向下一个多项式项结点的指针。创建一元多项式链表,对一元多项式的运算中会出现的各种可能情况进行分析,实现一元多项式的相加、相减操作。 ②加法算法

三.测试结果 四.分析与探讨 实验数据正确,部分代码过于赘余,可以精简。 五.附录:源代码#include<> #include<> #include<> typedef struct Polynomial { float coef; int expn; struct Polynomial *next; }*Polyn,Polynomial; 出多项式a和b\n\t2.多项式相加a+b\n\t3.多项式相减a-b\n"); printf("\t4.多项式相除a*b\n\t5.多项式相除a/b\n\t6.销毁多项式\n"); printf("\t7.退出

\n*********************************** ***********\n"); printf("执行:"); scanf("%d",&flag); switch(flag) { case(1): printf("多项式a:");PrintPolyn(pa); printf("多项式b:");PrintPolyn(pb);break; case(2): pc=AddPolyn(pa,pb); printf("多项式a+b:");PrintPolyn(pc); DestroyPolyn(pc);break; case(3): pd=SubtractPolyn(pa,pb); printf("多项式a-b:");PrintPolyn(pd); DestroyPolyn(pd);break; case(4): pf=MultiplyPolyn(pa,pb); printf("多项式a*b:");PrintPolyn(pf); DestroyPolyn(pf);break; case(5): DevicePolyn(pa,pb); break; case(6): DestroyPolyn(pa); DestroyPolyn(pb); printf("成功销毁2个一元二项式\n"); printf("\n接下来要执行的操作:\n1 重新创建2个一元二项式 \n2 退出程序\n"); printf("执行:"); scanf("%d",&i); if(i==1) { // Polyn pa=0,pb=0,pc,pd,pf;//定义各式的头指针,pa与pb在使用前付初值NULL printf("请输入a的项数:"); scanf("%d",&m); pa=CreatePolyn(pa,m);// 建立多项式a printf("请输入b的项

因式分解提公因式法含答案

【知能点分类训练】 知能点1 因式分解的意义 1.下列从左到右的变形,属于因式分解的是(). A.(x+3)(x-3)=x2-9 B.x2-9+x=(x+3)(x-3)-x C.xy2-x2y=xy(y-x) D.x2+5x+4=x(x+5+) 2.下列变形不属于分解因式的是(). A.x2-1=(x+1)(x-1) B.x2+x+1 4 =(x+ 1 2 )2 C.2a5-6a2=2a2(a3-3) D.3x2-6x+4=3x(x-2)+4 3.下列各式从左到右的变形中,哪些是整式乘法哪些是因式分解哪些两者都不是 (1)ad+bd+cd+n=d(a+b+c)+n (2)ay2-2ay+a=a(y-1)2 (3)(x-4)(x+4)=x2-16 (4)x2-y2+1=(x+y)(x-y)+1知能点2 提公因式法分解因式

4.多项式-7ab+14abx-49aby的公因式是________. 5.3x2y3,2x2y,-5x3y2z的公因式是________. 6.下列各式用提公因式法分解因式,其中正确的是(). A.5a3+4a2-a=a(5a2+4a) B.p(a-b)2+pq(b-a)2=p(a-b)2(1+q) C.-6x2(y-z)3+x(z-y)3=-3x(z-y)2(2x-z+y) D.-x n-x n+1-x n+2=-x n(1-x+x2) 7.把多项式a2(x-2)+a(2-x)分解因式等于(). A.(x-2)(a2+a) B.(x-2)(a2-a) C.a(x-2)(a-1) D.a(x-2)(a+1) 8.下列变形错误的是(). A.(y-x)2=(x-y)2 B.-a-b=-(a+b) C.(a-b)3=-(b-a)3 D.-m+n=-(m+n)

多项式最大公因式的求解

多项式最大公因式的求法 定理1 设)(x)(n ,f (x),(x),f f n 221≥ 是P[x]中n 个多项式.P[x]中多项式d(x)称为 )(x)(n ,f (x),(x),f f n 221≥ 的最大公因式,如果它满足下面的两个条件: (1)d(x)是(x),f (x),(x),f f n 21的公因式. (2)(x),f (x),(x),f f n 21的公因式全是d(x)的因式. 定理2 设)(),(),(x h x g x f 是][x P 中的多项式,P[x]中多项式d(x)是)(),(),(x h x g x f 的最大公因式,c 是任意的非零常数,则有))(),()()(())(),(()(x g x g x h x cf x g x f x d -==. 证明:当)(x f 、)(x g 有一个为零,例如0)(=x g ,那么结论显然成立. 当0)(≠x g 时,则有)()(x f x d ,)()(x g x d . 从而)()()()(x g x h x cf x d -,即)(x d 是)()()(x g x h x cf -与)(x g 的一个公因式,令 )()()()(x g x h x cf x c -,)()(x g x c .根据整除的性质,我们有)()(x f x c ,所以)()(x d x c . 所以))(),()()(())(),(()(x g x g x h x cf x g x f x d -== 方法1:用辗转相除法求最大公因式 引理 如果 )3(121≥n (x),f (x),(x),f f n- 的最大公因式存在,那么 ) 2(21≥n (x),f (x),(x),f f n 的 最 大 公 因 式 也 存 在 , 且 (x)) (x)),f ,f (x),(x),f ((f (x))(x),f ,f (x),(x),f (f n n-n n-121121 =. (1) 证明:由题意,假设(x),f (x),(x),f f n-121 的最大公因式为)(1x d ,那么(x)d 1与(x)f n 的最大公因式)(x d 也是存在的. (2) 又由(1)、(2)式,可知n)i (x), (d(x)|f i ≤≤1. 假设c(x)是)(x)(n ,f (x),(x),f f n 221≥ 的一个公因式,由(1)式可得(x)c(x)|d 1.这样c(x)就是(x)d 1与(x)f n 的一个公因式,再由(2)式可得c(x)|d(x). 所以(x)) (x),f ,f (x),(x),f (f d(x)n n-121 =. 定理3 设)2)((,),(),(21≥n x f x f x f n 是][x P 中的n 个多项式,则在P[x]中存在一个最大公因式d(x),且d(x)可以表示成(x),f (x),(x),f f n 21的一个组合,即有p[x]中多项式 (x),u (x),(x),u u n 21使(x)(x)f u (x)(x)f u (x)(x)f u d(x)n n +++= 2211. 由定理3对一般情况, 设1 1110110(),()n n n n n n n n f x a x a x a x a g x b x b x b x b ----=++ ++=++ ++,不妨设m n ≥

数据结构中实现一元多项式简单计算

数据结构中实现一元多项式简单计算: 设计一个一元多项式简单的计算器。 基本要求: 一元多项式简单计算器的基本功能为: (1)输入并建立多项式; (2)输出多项式; (3)两个多项式相加,建立并输出和多项式; (4)两个多项式相减,建立并输出差多项式; #include #include #define MAX 20 //多项式最多项数 typedef struct//定义存放多项式的数组类型 { float coef; //系数 int exp; //指数 } PolyArray[MAX]; typedef struct pnode//定义单链表结点类型 { float coef; //系数 int exp; //指数 struct pnode *next; } PolyNode; void DispPoly(PolyNode *L) //输出多项式 { PolyNode *p=L->next; while (p!=NULL) { printf("%gX^%d ",p->coef,p->exp); p=p->next; } printf("\n"); } void CreateListR(PolyNode *&L,PolyArray a,int n) //尾插法建表 { PolyNode *s,*r;int i; L=(PolyNode *)malloc(sizeof(PolyNode)); //创建头结点 L->next=NULL; r=L; //r始终指向终端结点,开始时指向头结点for (i=0;i

数据结构一元多项式的计算

课程设计成果 学院: 计算机工程学院班级: 13计科一班 学生姓名: 学号: 设计地点(单位): 设计题目:一元多项式的计算 完成日期:年月日 成绩(五级记分制): _________________ 教师签名:_________________________ 目录 1 需求分析 ......................................................................... 错误!未定义书签。 2 概要设计 ......................................................................... 错误!未定义书签。 2.1一元多项式的建立 ............................................................... 错误!未定义书签。 2.2显示一元多项式 ................................................................... 错误!未定义书签。 2.3一元多项式减法运算 ........................................................... 错误!未定义书签。 2.4一元多项式加法运算 ........................................................... 错误!未定义书签。 2.5 设计优缺点.......................................................................... 错误!未定义书签。3详细设计 .......................................................................... 错误!未定义书签。 3.1一元多项式的输入输出流程图........................................... 错误!未定义书签。 3.2一元多项式的加法流程图................................................... 错误!未定义书签。 3.3一元多项式的减法流程图.................................................. 错误!未定义书签。 3.4用户操作函数....................................................................... 错误!未定义书签。4编码 .................................................................................. 错误!未定义书签。5调试分析 .......................................................................... 错误!未定义书签。4测试结果及运行效果...................................................... 错误!未定义书签。5系统开发所用到的技术.................................................. 错误!未定义书签。参考文献 ............................................................................. 错误!未定义书签。附录全部代码................................................................... 错误!未定义书签。

因式分解专题1_用提公因式法(含答案)

1、用提公因式法把多项式进行因式分解 【知识精读】 如果多项式的各项有公因式,根据乘法分配律的逆运算,可以把这个公因式提到括号外面,将多项式写成因式乘积的形式。 提公因式法是因式分解的最基本也是最常用的方法。它的理论依据就是乘法分配律。多项式的公因式的确定方法是: (1)当多项式有相同字母时,取相同字母的最低次幂。 (2)系数和各项系数的最大公约数,公因式可以是数、单项式,也可以是多项式。 下面我们通过例题进一步学习用提公因式法因式分解 【分类解析】 1. 把下列各式因式分解 (1)-+--+++a x abx acx ax m m m m 2213 (2)a a b a b a ab b a ()()()-+---32222 分析:(1)若多项式的第一项系数是负数,一般要提出“-”号,使括号内的第一项系数是正数,在提出“-”号后,多项式的各项都要变号。 解:-+--=--+++++a x abx acx ax ax ax bx c x m m m m m 221323() (2)有时将因式经过符号变换或将字母重新排列后可化为公因式,如:当n 为自然数时,() ()()()a b b a a b b a n n n n -=--=----222121;,是在因式分解过程中常用的因式 变换。 解:a a b a b a ab b a ()()()-+---32222 ) 243)((]2)(2))[(() (2)(2)(222223b b ab a b a a b b a a b a b a a b a ab b a a b a a ++--=+-+--=-+-+-= 2. 利用提公因式法简化计算过程 例:计算1368 987521136898745613689872681368987123?+?+?+?

因式分解一_提取公因式法和公式法_超经典

因式分解(一) ——提取公因式与运用公式法 【学习目标】(1)让学生了解什么是因式分解; (2)因式分解与整式的区别; (3)提公因式与公式法的技巧。 【知识要点】 1、提取公因式:型如()ma mb mc m a b c ++=++,把多项式中的公共部分提取出来。 ☆提公因式分解因式要特别注意: (1)如果多项式的首项系数是负的,提公因式时要将负号提出,使括号内第一项的系数是正的, 并且注意括号内其它各项要变号。 (2)如果公因式是多项式时,只要把这个多项式整体看成一个字母,按照提字母公因式的办法提出。 (3)有时要对多项式的项进行适当的恒等变形之后(如将a+b-c 变成-(c-a-b )才能提公因式, 这时要特别注意各项的符号)。 (4)提公因式后,剩下的另一因式须加以整理,不能在括号中还含有括号,并且有公因式的还应继续提。 (5)分解因式时,单项式因式应写在多项式因式的前面。 2、运用公式法:把我们学过的几个乘法公式反过来写就变成了因式分解的形式: ()()22a b a b a b -=+-; ()2 222a ab b a b ±+=±。 平方差公式的特点是:(1) 左侧为两项;(2) 两项都是平方项;(3) 两项的符号相反。 完全平方公式特点是: (1) 左侧为三项;(2) 首、末两项是平方项,并且首末两项的符号相同; (3) 中间项是首末两项的底数的积的2倍。 ☆运用公式法分解因式,需要掌握下列要领: (1)我们学过的三个乘法公式都可用于因式分解。具体使用时可先判断能否用公式分解,然后再选择适当公式。(2)各个乘法公式中的字母可以是数,单项式或多项式。 (3)具体操作时,应先考虑是否可提公因式,有公因式的要先提公因式再运用公式。 (4)因式分解一定要分解到不能继续分解为止,分解之后一定要将同类项合并。 【经典例题】 例1、找出下列中的公因式: (1) a 2b ,5ab ,9b 的公因式 。 (2) -5a 2,10ab ,15ac 的公因式 。 (3) x 2y(x -y),2xy(y -x) 的公因式 。

多项式辗转相除法求最大公因式

#include #include #include struct chain // 定义一个多项式的结构体 { int n; // 该多项式的最高次数 double *an; // 存放多项式的系数 }; void creat_chain(struct chain *c) // 建立一个多项式 { int i,n; double ai; printf(" 请输入该多项式最高次数:"); scanf("%d",&n); (*c).n = n; (*c).an = (double *)calloc(n+1,sizeof(double)); // 给该多项式系数动态分配内存printf(" 按下列格式输入系数:(例如x^4 + 2x^3 - 7x^1 + 5 输入:1 2 0 -7 5)\n"); printf(" 等待输入:"); for(i=n;i>=0;i--) { scanf("%lf",&ai); (*c).an[i] = ai; } } void show(struct chain c) // 按照多项式的格式显示多项式 { int i=c.n; printf(" 多项式是:"); while(i>=0) { if((i!=c.n)&&(c.an[i]>=0)) printf(" + "); switch(i) { case 1:printf("%.2lfX",c.an[i]);break; case 0:printf("%.2lf",c.an[i]);break; default:Pri ntf("%.2lfX^%d",c.a n[i],i);break; } i--; } Printf("\n");

C语言一元多项式计算

C语言一元多项式计算集团标准化工作小组 #Q8QGGQT-GX8G08Q8-GNQGJ8-MHHGN#

#include <> #include <> #include <> #define LEN sizeof(node) //结点构造 typedef struct polynode { int coef; //系数 int exp; //指数 struct polynode *next; }node; node * create(void) { node *h,*r,*s; int c,e; h=(node *)malloc(LEN); r=h; printf("系数:"); scanf("%d",&c); printf("指数:"); scanf("%d",&e); while(c!=0) { s=(node *)malloc(LEN); s->coef=c; s->exp=e; r->next=s; r=s; printf("系数:"); scanf("%d",&c); printf("指数:"); scanf("%d",&e); } r->next=NULL; return(h);

} void polyadd(node *polya, node *polyb) { node *p,*q,*pre,*temp; int sum; p=polya->next; q=polyb->next; pre=polya; while(p!=NULL&&q!=NULL) { if(p->exp>q->exp) { pre->next=p; pre=pre->next; p=p->next; } else if(p->exp==q->exp) { sum=p->coef+q->coef; if(sum!=0) { p->coef=sum; pre->next=p;pre=pre->next;p=p->next; temp=q;q=q->next;free(temp); } else { temp=p->next;free(p);p=temp; temp=q->next;free(q);q=temp; } } else { pre->next=q; pre=pre->next; q=q->next; } } if(p!=NULL) pre->next=p; else pre->next=q; } void print(node * p) {

《因式分解--提公因式法》教案

《15.4.1因式分解——提公因式法》教案 广西桂平市社步一中黄郁贞 一、教学目标 ㈠、知识与技能:(1)使学生了解因式分解的意义,理解因式分解的概念。 (2)认识因式分解与整式乘法的相互关系——互逆关系,并能运用这种关系寻求因式分解的方法。 ㈡、过程与方法:(1)由学生自主探索解题途径,在此过程中,通过观察、类比等手段,寻求因式分解与因数分解之间的关系,培养学生的观 察能力,进一步发展学生的类比思想。 (2)由整式乘法的逆运算过渡到因式分解,发展学生的逆向思维能力。 (3)通过对分解因式与整式的乘法的观察与比较,培养学生的分析问题能力与综合应用能力。 ㈢、情感态度与价值观:让学生初步感受对立统一的辨证观点以及实事求是的科学态度。 二、教学重点和难点 重点:因式分解的概念及提公因式法。 难点:正确找出多项式各项的公因式及分解因式与整式乘法的区别和联系。

-1)= 个整式的

五、学生学习活动评价设计 在本节教学设计中,对学生的评价方式:自评、互评、教师评价等。通过多样化的评价方式,激励、促进学生积极参与自主学习、实验探究、讨论交流中,并学会和同伴合作的良好学习习惯。例如: 1.个人回答问题次数:正确次数:改正人: 2.小组自评实验结论:活动1:正确、不完善、错误; (在所属情况下面打对勾)活动2:正确、不完善、错误。 活动…… 3.例题完成情况:小组内互评并把同伴错误之处改正过来。 4.课堂完成情况练习:小组内互评并把同伴错误之处改正过来。 六、教学反思 ㈠、教材分析 本节课选自人教版数学八年级上册第十五章第四节第一个内容(P165-167)。因式分解是进行代数恒等变形的重要手段之一,它在以后的代数学习中有着重要的应用,如:多项式除法的简便运算,分式的运算,解方程(组)以及二次函数的恒等变形等,因此学好因式分解对于代数知识的后继学习具有相当重要的意义。

一元多项式计算问题课程设计

长沙学院课程设计说明书 题目一元多项式计算问题系(部) 计算机系 专业(班级) 10级软件D班 姓名向栋良 学号2010022D08 指导教师邓旭东 起止日期2011.9.4-2011.9.8

课程设计任务书 课程名称:数据结构与算法 设计题目:一元多项式计算问题 已知技术参数和设计要求: 问题描述: 设计一个稀疏多项式简单计算器 基本要求: (1)输入并分别建立多项式A和B (2)输入输出多项式,输出形式为整数序列:n,c1,e1,c2,e2……,其中n是多项式的项数,ci和ei是第i项的系数和指数,序列按指数降序排列 (3)完成两个多项式的相加、相减,并将结果输出; 测试数据: (1) A+B A= 3x14-8x8+6x2+2 B=2x10+4x8+-6x2 (2) A-B A=11x14+3x10+2x8+10x6+5 B=2x14+3x8+5x6+7 (3) A+B A=x3+x1B=-x3-x1 (4) A+B A=0 B=x7+x5+x3+x1 (5) A-B A=100x100+50x50+20x20+x B=10x100+10x50+10x20+x 选作内容: (1).多项式在x=1时的运算结果 (2)求多项式A和B的乘积 设计工作量: 40课时 日期节次地点设计方式9月4日(周日)1-4 科1408 讲授内容 9月4日(周日)5-8 科1608 答疑 9月5日(周一)1-4科1408上机调试 9月5日(周一)5-8 科1608 答疑 9月6日(周二)1-4科1408上机调试 9月6日(周二)5-8 科1608 答疑 9月7日(周三)1-4科1408上机调试 9月7日(周三)5-8 科1608 答疑 9月8日(周四)1-4科1608答疑 9月8日(周四)5-8 科1408 答辩

多项式的最大公因式

多项式的最大公因式 问题: (一). 多项式的最大公因式的定义是什么? 设f(x)与g(x)是P[x]中两个多项式,P[x]中多项式d(x)称为f(x)与g(x)的最大公因式,如果满足下面两个条件: (1).d(x)是f(x)与g(x)的公因式; (2).f(x),g(x)的公因式全是d(x)的因式。 我们约定用( f(x),g(x))表示首项系数为1的那个最大公因式。 定理1:对于P[x]中任意两个多项式f(x),g(x),在P[x]中存在一个最大公因式d(x),且d(x)可以表示成f(x),g(x)的一个组合,即有P[x]中多项式u(x),v(x)使 d(x)=u(x)f(x)+v(x)g(x) 引理:设f(x),g(x),q(x),h(x)∈F(x),g(x)≠0,且 f(x)=g(x)q(x)+h(x) 则f(x)与g(x)与q(x)与h(x)有相同的公因式,因而有相同的最大公因式,且 ( f(x),g(x))=( g(x),h(x)) 定理2:F(x)的任意两个多项式f(x)与g(x)一定存在最大公因式。 (二).用来求最大公因式的方法 (1).辗转相除法: 如果f(x),g(x)∈P[x],g(x)≠0,且q q(q),q q(q)∈P[x],使 f(x)=q1(q)g(x)+q1(q) g(x)=q2(q)q1(q)+q2(q) q1(q)=q3(q)q2(q)+q3(q)

?? q q?2(q)=q q(q)q q?1(q)+q q(q) q q?1(q)=q q+1(q)q q(q)+0 其中?(q q(q))≥0,则q q(q)是f(x)与g(x)的一个最大公因式。 (2).串位加减法 (3).矩阵求法: A=(f(x) g(x) )一系列初等行变换 → ( d(x) ) d(x)=( f(x),g(x)) 例1.设f(x)=q4+3q3?q2?4x?3 g(x)=3q3+10q2+2x?3 求( f(x),g(x)) 解:法1辗转相除法。

一元多项式计算器

一元多项式计算器 目录 摘要 (1) 1绪论 (1) 2系统分析 (1) 2.1功能需求 (1) 2.2数据需求 (1) 2.3性能需求 (1) 3总体设计 (2) 3.1系统设计方案 (2) 3.2功能模块设计 (2) 4详细设计 (3) 4.1建立多项式 (4) 4.2多项式相加 (4) 4.3多项式相减 (5) 4.4多项式相乘 (5) 4.5计算器主函数 (6) 5调试与测试 (7) 5.1调试 (7) 5.2测试 (8) 6结论 (9) 结束语 (9) 参考文献 (9) 附录1-用户手册 (10) 附录2-源程序 (12)

摘要 随着生活水平的提高,现代科技也日益发达。日常生活中多位计算再所难免,因此设计一个简单计算器可解决许多不必要的麻烦。 开发这样一个程序主要运用了C的结点,链表等方面知识。系统主要实现了多项式的建立,多项式的输入输出,以及多项式加减乘等运算。 报告主要从计算器的程序段,对输入输出数据的要求,计算器的性能,以及总体的设计来介绍此计算器程序的实现过程。 关键词:多项式;链表;结点 1绪论 随着日益发达的科技,计算器已应用于各行各业。设计一个计算器需要运用C中多方面知识,更是以多项式的建立,输入输出,以及结点,链表为主。(扩充) 任务书。。。。。 2系统分析 2.1 功能需求 多项式的建立多项式输入输出多项式加减乘等运算 2.2数据需求 在输入过程中,首先要确定输入的数据,数据不能是字母,只能是数字。不能连续输入数据,必须按要求配以空格输入要计算的数据。 (1) 链节节点数字 (2) 数字 2.3 性能需求 系统必须安全可靠,不会出现无故死机状态,速度不宜过慢。

因式分解-提公因式法(含答案)

13.5.1 因式分解-提公因式法 【知能点分类训练】 知能点1 因式分解的意义 1.下列从左到右的变形,属于因式分解的是(). A.(x+3)(x-3)=x2-9 B.x2-9+x=(x+3)(x-3)-x C.xy2-x2y=xy(y-x)D.x2+5x+4=x(x+5+) 2.下列变形不属于分解因式的是(). A.x2-1=(x+1)(x-1)B.x2+x+1 4 =(x+ 1 2 )2 C.2a5-6a2=2a2(a3-3)D.3x2-6x+4=3x(x-2)+4 3.下列各式从左到右的变形中,哪些是整式乘法?哪些是因式分解?哪些两者都不是? (1)ad+bd+cd+n=d(a+b+c)+n (2)ay2-2ay+a=a(y-1)2 (3)(x-4)(x+4)=x2-16 (4)x2-y2+1=(x+y)(x-y)+1 知能点2 提公因式法分解因式 4.多项式-7ab+14abx-49aby的公因式是________. 5.3x2y3,2x2y,-5x3y2z的公因式是________. 6.下列各式用提公因式法分解因式,其中正确的是(). A.5a3+4a2-a=a(5a2+4a) B.p(a-b)2+pq(b-a)2=p(a-b)2(1+q) C.-6x2(y-z)3+x(z-y)3=-3x(z-y)2(2x-z+y) D.-x n-x n+1-x n+2=-x n(1-x+x2) 7.把多项式a2(x-2)+a(2-x)分解因式等于(). A.(x-2)(a2+a)B.(x-2)(a2-a) C.a(x-2)(a-1)D.a(x-2)(a+1) 8.下列变形错误的是(). A.(y-x)2=(x-y)2B.-a-b=-(a+b) C.(a-b)3=-(b-a)3D.-m+n=-(m+n) 9.分解下列因式: (1)6abc-3ac2(2)-a3c+a4b+a3 (3)-4a3+16a2-26a (4)x(m-x)(m-y)-m(x-m)(y-m)

一元多项式计算(数据结构课程设计)

一元多项式计算(数据结构课程设计)

一、系统设计 1、算法思想 根据一元多项式相加的运算规则:对于两个一元多项式中所有指数相同的项,对应指数相加(减),若其和(差)不为零,则构成“和(差)多项式”中的一项;对于两个一元多项式中所有指数不相同的项,则分别写到“和(差)多项式”中去。 因为多项式指数最高项以及项数是不确定的,因此采用线性链表的存储结构便于实现一元多项式的运算。为了节省空间,我采用两个链表分别存放多项式a 和多项式b,对于最后计算所得的多项式则利用多项式a进行存储。主要用到了单链表的插入和删除操作。

(1)一元多项式加法运算 它从两个多项式的头部开始,两个多项式的某一项都不为空时,如果指数相等的话,系数就应该相加;相加的和不为零的话,用头插法建立一个新的节点。P 的指数小于q的指数的话就应该复制q的节点到多项式中。P的指数大于q的指数的话,就应该复制p节点到多项式中。当第二个多项式空,第一个多项式不为空时,将第一个多项式用新节点产生。当第一个多项式空,第二个多项式不为空时,将第二个多项式用新节点产生。 (2)一元多项式的减法运算 它从两个多项式的头部开始,两个多项式的某一项都不为空时,如果指数相等的话,系数就相减;相加的和不为零的话,用头插法建立一个新的节点。p的指数小于q的指数的话,就应该复制q的节点到多项式中。P的指数大于q的指数的话就应该复制p的节点到多项式中,并且建立的节点的系数为原来的相反数;当第二个多项式空,第一个多项式不为空时,将第一个多项式用新节点产生。当第一个多项式空,第二个多项式不为空时,将第二个多项式用新节点产生,并且建立的节点的系数为原来的相反数。 2、概要设计 (1)主函数流程图: (注:a代表第一个一元二次方程,b代表第二个一元二次方程)

因式分解提公因式法含答案

【知能点分类训练】 知能点1因式分解的意义 1 ?下列从左到右的变形,属于因式分解的是( )? A ? (x+3) (x — 3) =x 2 - 9 B ? x 2 — 9+x= ( x+3) (x — 3)— x 2 2 2 C ? xy — x y=xy (y — x ) D . x +5x+4=x ( x+5+ ) 2?下列变形不属于分解因式的是( )? 1 1 A ? x 2 —仁(x+1) (x — 1) B ? x 2 +x+—= (x+— ) 2 4 2 C ? 2a 5 — 6a 2 =2a 2 (a 3 — 3) D ? 3x 2 — 6x+4=3x (x — 2) +4 3?下列各式从左到右的变形中,哪些是整式乘法哪些是因式分解哪些两者都不是 (1) ad+bd+cd+n=d (a+b+c ) +n (2) ay 2 — 2ay+a=a (y — 1) 2 (3) (x — 4) ( x+4) =x 2 — 16 (4) x 2— y 2 +1= (x+y ) (x — y ) +1 知能点2提公因式法分解因式 4.多项式—7ab+14abx — 49aby 的公因式是 ___________ (2) — a 3c+a 4b+a 3 (4) x ( m — x ) ( m — y ) — m (x — m ) ( y — m ) 知能点3利用因式分解解决问题 10. 9992 +999= _________ = __________ ? 11 .计算(—2) 2007 + (— 2) 2008 的结果是()? A . 2 B .— 2 C . 2007 D .— 1 A . 5a 3 +4a 2 — a=a (5a 2 +4a ) B . p ( a — b ) 2+pq (b — a ) 2 =p (a — b ) 2 (1+q ) C . —6x 2 (y — z ) 3+x (z — y ) 3=— 3x (z- —y ) 2 ( 2x — z+y ) D . —x n — x n+1 — x n+2 = — x n (1 — x+x 2 ) 5. 3x 2y 3 , 2x 2 y ,— 5x 3y 2 z 的公因式是 __________ ? 6?下列各式用提公因式法分解因式,其中正确的是( )? 7?把多项式a 2 (x — 2) +a (2 — x )分解因式等于( )? A ? (x — 2) (a 2 +a ) C ? a (x — 2) (a — 1) &下列变形错误的是( )? A ? (y — x ) 2= (x — y ) 2 C ? (a — b ) 3 = — ( b — a ) 3 B ? (x — 2) ( a 2 — a ) D ? a (x — 2) (a+1) B ? — a — b=— ( a+b ) 9 .分解下列因式: (1) 6abc — 3ac 2 (3)— 4a 3+16a 2 — 26a

一元多项式的计算数据结构课程设计

一元多项式的计算—加,减 摘要(题目)一元多项式计算 任务:能够按照指数降序排列建立并输出多项式; 能够完成两个多项式的相加、相减,并将结果输入; 目录 1.引言 2.需求分析 3.概要设计 4.详细设计 5.测试结果 6.调试分析 7.设计体会 8.结束语 一:引言: 通过C语言使用链式存储结构实现一元多项式加法、减法和乘法的运算。按指数

降序排列。 二:需求分析 建立一元多项式并按照指数降序排列输出多项式,将一元多项式输入并存储在内存中,能够完成两个多项式的加减运算并输出结果 三:概要设计 存储结构:一元多项式的表示在计算机内可以用链表来表示,为了节省存储空间,只存储多项式中系数非零的项。链表中的每一个结点存放多项式的一个系数非零项,它包含三个域,分别存放该项的系数、指数以及指向下一个多项式项结点的指针。创建一元多项式链表,对一元多项式的运算中会出现的各种可能情况进行分析,实现一元多项式的相加、相减操作。 1.单连表的抽象数据类型定义: ADT List{ 数据对象:D={ai|ai∈ElemSet,i=1,2,…,n,n≥0} 数据关系:R1={| ai-1, ai∈D,i=2,…,n} 基本操作: InitList(&L) //操作结果:构造一个空的线性表 CreatPolyn(&L) //操作结果:构造一个以单连表存储的多项试 DispPolyn(L) //操作结果:显示多项试 Polyn(&pa,&pb) //操作结果:显示两个多项试相加,相减的结果 } ADT List 2.本程序包含模块: typedef struct LNode //定义单链表 { }LNode,*LinkList; void InitList(LinkList &L) //定义一个空表 { } void CreatPolyn(LinkList &L) //用单链表定义一个多项式 { } void DispPolyn(LinkList L) //显示输入的多项式

相关主题
文本预览
相关文档 最新文档