深入探究多项式乘法的快速算法

深入探究多项式乘法的快速算法
深入探究多项式乘法的快速算法

深入探究多项式乘法的快速算法

焦作市第一中学 闵梓轩

一、 高精度、多项式与生成函数

1.1 高精度 在OI 中我们有时会碰到一些问题的必要数值超出64位整形的范围,这个时候我们就需要用到高精度方式存储。而高精度数的思想是进制思想的一个具体体现,出于正常人类的习惯,我们所使用的高精度数都采用10进制,即每一位都表示十进制上的一个数,从0~9,更进一步,为了优化高精度数运算所花费的时间与空间,我们采用了万进制,即每一位存0~9999的数,这样同时优化了程序效率,同时在输出上也没有什么太大的问题(每一位不足1000补0即可)。

当然,我们也可以用三进制、五进制、450进制,8964进制的高精度数,虽然因为在输出时会变得非常麻烦而没有人去用,但是它们的可行性正对应了进制的一种思想,比如一个十进制数12450,它的算数含义是0123410*010*510*410*210*1++++二进制数10010,它的算数含义是1

42*12*1+(把为0的位忽略),这样形如

),0(*0N a x a x a i i n i i i ∈<≤∑=的每一位上的数字在数值表示上都乘上了某个数的一个幂的数正是进制思想的基础。在编程实现上这样的一个数我们通常用整形数组来表示,a[i]表示i 次项的系数,如果数组长度为n ,那么学过高精度的人都知道两个数相加的时间复杂度是θ(n),两个数相乘的时间复杂度是O(n^2),在信息学竞赛中,这样的时间复杂度足以满足大部分题目的需求,因为一般来说我们的数值都不会达到10^100000次方这么大。

1.2多项式

熟悉数学的我们能够发现上面这样的一个式子,如果忽略了括号中的内容的限制,那么

我们可以发现这样的式子其实就是我们所学的n 次多项式∑∞==0*)(i i i x a x A ,

比如十进制数12450就是05421234++++x x x x 当x=10的时候的数值嘛。所以,当一个值b 代入多项式A(x)时,这个式子也就变成了一个值A(b)。但是要注意的是多项式的系数是没有限制的,所以多项式可以用浮点数组表示,而且我们可以惊奇地发现多项式的加法和乘法在代码上除了不需要进位之外和高精度是一样的。所以说,我们所见的b 进制数值,就是一个当x=b 的多项式的取值而已。但是在多项式中,x 的意义仅仅是一个符号而已,ai*x^i 你可以理解为ai 在数组的第i 个位置。

我们需要注意的是,n 次多项式的数组表示需要用到n+1个数,为什么?因为有n 个含x 的项和一个常数项,所以我们一般把多项式A(x)的最高次项的次数+1称作为这个多项式的次数界(次数界的真正意义是系数不为零的最高次项的次数+1,下文中提到的“次数界“为

了更清晰的算法表述,将其定义为按需求扩展后的数组长度,此时最高次项可能是为零的。)。所以,存储一个次数界为n 的多项式只需要开一个长度为n 的数组就行了。

现在我们需要严格地定义多项式的运算,以下假定A 、B 的次数界分别为n 、m :

∑∑∑∑∑-==--==+-====+=

+=22002

2010)(,那么)()()(D 定义)()(,那么)()()(定义n k k i k i

k i n k k k j i j i n i i i i x b a x b a x D x B x A x x b a x C x B x A x C 注意D 的次数界:两个次数界为n 和m 的多项式相乘时,积的次数界为n+m-1,D 被称为A 和B 的卷积。

这样一来求和就是从0到n-1枚举i ,将ai 和bi 相加的结果作为ci 即可,时间复杂度θ(max(n,m))。求积就是从0到n-1两层枚举i 和j ,将ai 和bj 相乘的结果加到d(i+k)上,时间复杂度θ(nm)。说白了就是不用进位的高精度乘法。

1.3 生成函数

然而多项式在OI 中有什么用呢?好像除了高精度之外没有什么卵用。但是熟悉组合数

学的小伙伴们会了解一个叫做生成函数的东西,生成函数是什么呢?是∑∞=0*i i i

x a ,

看到了木有,和多项式简直一模一样,而且如果把∞换成n ,那这个式子不就真的变成多项式了吗?在组合数学中,数列A 的生成函数的i 次项系数ai 就是这个数列的第i 项。然而我们在生成函数解决问题时是用得到乘法的,有人可能会说这TM 有无穷项你乘个卵?但是我们真正关心的没有那么多项,比如我们可能会只关注这个数列的第n 项,这个时候第n+1项以及往后的数值我们就没有必要再乘了(相当于对x^(n+1)取模,同余原理懂吧?懂吧?就像组合计数时要求你对一个大质数取模避免高精度一样),这个时候,生成函数的乘法就变成了多项式乘法!O(n^2)的乘法或许对于高精度来说足够了,但是对于只需要算常数次乘法,并且只关心其中一项的生成函数来说,你需要计算的,可能有很多位。比如我们需要计算一个一个数列的第n 项,也就是这个数列生成函数的第n 位,那么如果当n=300000的时候你的乘法就会瞬间爆炸,那么,有没有更快的算法呢?

二、分而治之

分治思想对于计算机科学而言就像心脏,而数组这样的形式是很容易引起我们的分治欲望的,我们不如来看看是否能够通过对数组进行分治而来实现优化。

2.1 裂项相乘

对于数组来说,最基本的分治就是从中分开了,一般的数组分治就是取左端点右端点加起来除以二省略余数作为分治的界限,但是如果数组的长度正好是偶数的话思路分治算法会更加方便一些,直接从中间分开就行了,两边长度一样的。

我们注意到,生成函数如果只有有限项不为0的话,那么它就是多项式,如果我们反过来想,这个性质就变成了可以通过往多项式最高位后面补0来无限地增加数组的长度。比如我们如果有249个项,可以往最高位补个0来让它变成250个项,这不就容易分治了吗?

那么现在关键是如何分治,数组分治就是把数组分成连续的多份嘛,而由于很多原因(比如基于二进制的位运算常数很小,二分比多分编程实现更容易而且渐进复杂度是一样的)我们通常采用二分,也就是把数组一分为二,此时由于上面的性质我们不妨假设我们所需要面

对的多项式已经有偶数项了,我们设它为2n ,然后把它从中间(当然有的基于数组的分治可能不是从正中间,比如下面我们要讨论的)分为两个有n 项的数。由于运算是两个多项式的事情,所以我们需要另一个数组,把第一个数组分成A 和B ,第二个数组分成C 和D 。

这里为了画图方便,n=5。

那么我们该如何分治呢?我们可以注意到第一个多项式的数组表示是B 数组右移n 位和A 数组拼接起来的,那么这在多项式中意味着什么呢?第一个多项式可以表示成(A+B*x^n ),不是吗?那么第二个多项式就可以表示成(C+D*x^n )。那么两个多项式相乘

就变成了n n n n x BC AD x BD AC x D C x B A *)(*)*)(*(2+++=++,此处乘以x 的n

次方只是表示将这个多项式乘出来之后往右移n 位。

这样的话我们需要计算AC 、BD 、AD 、BC 四组多项式的乘积并进行相加,需要注意的是如果要继续对这几组多项式乘法施展递归的方法,我们需要n 也是偶数,而继续递归下去就会发现我们最初的数组长度必须是2的幂,但这没什么,来人,给我添0。所以,在以下的叙述中我们都假定n 是2的幂 假定n 是2的幂 假定n 是2的幂(因为很重要所以说三遍)算一下这个算法的时间复杂度T(n)=4*T(n/2)+O(n),主定理解递归式得T(n)=O(n^2)(主定理是什么自己查),嗯,好像并没有什么卵用,常数上还因为递归的缘故比原来大了,但这并不代表我们的思路没有卵用。

现在考虑是否可以通过将式子变形来少计算几次乘积呢?这里AC 和BD 是必须要计算出来的乘积(思考为什么),所以现在考虑(AD+BC)的变形,由于我们已经计算出了AC 和BD ,那么是否可以直接把这个结果利用上呢?先相加起来AC+BD+AD+BC=(A+B)(C+D),所以AD+BC=(A+B)(C+D)-AC-BD ,那么整个式子就变成了:

n n n n x BD AC D C B A x BD AC x D C x B A *)))(((*)*)(*(2--++++=++

这样一来,我们只需要计算AC 、BD 、(A+B)(C+D)三次乘法就行了,然后进行加加减减,时间复杂度T(n)=3*T(n/2)+O(n),解得:

)()()3()(58.13log log 22n O n O O n T n ≈==

这样的复杂度看起来可能有些玄学,那么它究竟是怎样的呢?举个栗子,当n=100000(一般来说十万这个数量级是O(nlogn)与O(n^2)的分界线)时,这个式子约等于0.8亿,仍然可以满足,但是已经接近极限了,再加上递归的巨大常数,是很勉强的。而当n=300000时,这个式子约等于4.5亿,已经爆掉了。虽然我们将多项式乘法通过这样的分治算法进行了优化,但仍然无法满足我们的需求。

我们可以发现这样的分治没有达到对数级别,这意味着一个坏消息:我们还没做到位,以及一个好消息:我们可以做得更好。

2.2另一种分治

既然从中间分治不够完美,我们不妨退一步,从多项式的表达式中寻求规律。

1133221101

1......)(---=+++++==∑n n i n i i x a x a x a x a a x a x A

从中间分治试过了,那如果我们按照奇偶性分开呢?

)

)(...)()()(())(...)()()(()...()...()(12/2122512302112/222241221202145230122442200--------+++++++++=+++++++++=n n n n n n n n x a x a x a x a x x a x a x a x a x a x a x a x a x x a x a x a x a x A

我们发现如果按照奇偶项分开,左右两边的形式都是一样的,而且都可以被表示成一个多项式的形式,也就是说,A(x)可以这样被表示:

∑∑<<==

+=n i i i

R n i i i L R L x x A x x A x xA x A x A i 是奇数,i 是偶数,22a )(,a )(,其中)()()( 那么这样的分治有什么卵用呢?答:取值的时候有用。

如果我们要将n 个不同的x 值代入到A(x)中,那么就会产生n 个值,这样的操作叫做多项式的求值。求一个值的时间复杂度是O(n)(利用秦九韶算法),那么求n 个值的时间复杂度就是O(n^2),但我们可以从上面这个式子中发现这样一个性质:

)()()(),()()(2222i R i i L i i R i i L i x A x x A x A x A x x A x A -=-+= 这意味着什么?我们可以选择n/2个x 值,把n/2个x^2代入到AL 和AR 中,然后根据上面的性质,就能求出n 个A(xi)值了,这n 个A(x)的值分别是n/2个x 和n/2个-x 代入A(x)的值,按照这样的算法,我们可以得出这样分治求值的复杂度:

)log ()()2/(*2)(n n O n O n T n T =+=

好的,现在我们成功地偏离了主题:说好的求乘积呢?不慌,不慌。

三、变换与反演

3.1另一种表示方式

上面我们讨论到了从多项式的系数表达求出了值,也就是说我们可以快速地找到对于已知系数ai 的多项式A(x),n 个不同的x 值到n 个取值的对应关系,即:

))(),...,(),(),((),...,,,(),...,,,(121012101210---→+n n n x A x A x A x A a a a a x x x x 这像一个化学反应方程式,现在想:如果我们知道了左边的和右边的,我们是否可以求出中间的呢?也就是说如果我们知道有一个次数界为n 的多项式,知道n 个不同的x 值以及它们代入所得的n 个不同的取值,是否可以求出这个多项式的系数从而确定这个多项式呢? )),...,,,()))(,()),...,(,()),(,()),(,((1210???11221100---→n n n a a a a x A x x A x x A x x A x 这看起来像个数学题,然而我们好像做过这样的数学题:已知二次函数f(x)经过三个点,求f(x)的表达式。

这就变得有意思了吗?上面那个例子正是知道(x0,f(x0)),(x1,f(x1)),(x2,f(x3))三个点,求一个次数界为2+1=3的多项式的系数。数学老师告诉我们:这是可行的,只不过可能会有些难算。但这没什么,毕竟计算机的一个优势就在于计算速度快,现在我们关心的是这样的一个性质是否对于任意一个n 都成立呢?要想严格地证明这个问题,我们就要先严格地描述这个问题。如果我们用yi 这样一个直观的东西来表示A(xi)的话,上面的求值可以表示为:

为矩阵)、、(,即Y 1101101121110111

21110110201000A X Y XA y y y a a a x x x x x x x x x x x x n n n n n n n n n =?????

???????=??????????????????????????--------- 上面所叙述的求值操作就是在已知X 和A 的情况下求Y ,那么我们要求的问题就是已知X 和Y 来求A ,那这个问题就很简单了,我们只需要求出来X 的逆矩阵就行了,这样Y X A 1-=。不幸的是,不是每一个矩阵都有逆矩阵的,但幸运的是,X 是必然有逆矩阵的。

像X 这样有个性的矩阵当然得有个自己的名字了,它叫做范德蒙矩阵,而它的行列式是这样的:

∏<≤<--------=n i j j i n n n n n n n a a x x x x x x x x x x x x 0112111011

121110110

201000)(..............

............................................至于如何推导……我也不知道

可以看到,如果n 个xi 都不相同的话,范德蒙矩阵的行列式就不为零,而我们知道矩阵有逆当且仅当其行列式不为零。

现在,我们知道了,一个次数界为n 的多项式的系数与其在n 个不同x 值处的取值存在一一对应的关系:

))())(,(),...,,(),,(),,((),...,,,(112211001210后的取值代入为其中x A x y y x y x y x y x a a a a i i n n n ---? 既然存在这样一个一一对应的关系,那么我们就可以用值而不是系数的形式表示一个多项式,也就是说现在多项式有两种表示方式,一种是箭头左边的用n 个系数来表示的系数表示,另一种是箭头右边的用n 个不同x 值以及其取值的点值表示。点值表示,是系数表示的一种变换,转化的操作叫做求值;而从点值表示到系数表示,即是反演,我们将其叫做插值。点值表示同样需要长度与次数界相同的数组,不过是两个,一个是x[]一个是y[],虽然经过后面的探究之后我们几乎没可能这么用,但这样会有助于我们的理解。

现在我们新发现了一种与系数表示截然不同的表示方法,现在我们不妨开始研究它的性质,既然本文的目的是研究快速算法,那么我们不妨可以看看点值表达的多项式是如何进行运算的,以下给定次数界为n 的多项式A 和B (即我们已知其系数表示或点值表示)之间的运算关系:

∑∑∑∑∑∑∑∑∑∑∑∑∑∑-=-=-=-=-==+-==--==+-=-=-=-========

=+=+=+=+==+=+=1

01

0101022022002201

10101

0*)(*)(*)()()()()b ()(C )()()()(n j bp ap j p j n i i p i n i n j j p j i p i k

p n k k j i j i p p n k k i k i k i n k k k j i j i n i bp ap p p i

p i n i n i i

i i p i i p cp n i i

i i y y x b x a x b x a x b a x C y x b a x b a x B x A x C y y x B x A x b x a x a x y x b a x B x A x C 若若 我们发现,如果有A 和B 的点值表示,那么我们就可以求出在Θ(n)的时间内求出它们的和的点值表示,甚至它们的积的点值表示,这不就是我们梦寐以求的快速乘法吗?让我们梳理一下思路:

[][][][]的点值表示的点值表示和插值求值的系数表示的系数表示和相乘

相乘C B A T ogn C A n n )

()

((???))nl (B 2ΘΘ→↑↓Θ→ 研究这么半天,我们发现了一条捷径,离成功只有一步之遥了,让我们来看看插值的运算吧:

插值有两步:第一步矩阵求逆,普通的算法Θ(n^3),对于范德蒙矩阵,更快的算法有Θ(n^2)。第二步逆求值,因为逆矩阵并不一定是范德蒙矩阵的形式,所以我们不能用上文分治的方法Θ(nlogn)的时间逆求值,此时进行插值的复杂度为Θ(n^2),这样一来插值的时间复杂度为:Θ(n^3)。

陷入困境了呢。 3.2问题的发现

我们一步一步地后退,审视我们在思考的过程中是否漏掉了什么东西。

好消息是我们少考虑到一个“问题”,坏消息是它是一个“problem ”:在求值的过程中会涉及到一个数的i 次方,而i 是可能会达到100000的,这就造成了一个灾难:数值的精度问题。如果我们用整数代入的话,按照指数函数的增长速度来看,那么用不了几次方就会爆掉64位长整形,需要借助高精度,但问题是我们研究的就是特么的高精度的变种,这不就是个没用边界的递归,死循环了吗。如果我们用浮点数的话,那么这个浮点数的精度……十万次方,看着办吧。

在OI 中,每当我们所需要计算的结果会很大时,会让我们把结果对一个大质数取模,从而避免高精度而关注算法本身。注意,这样的问题通常都是组合数学问题,这跟我们要解决的问题所属的范围恰好一致。如果在求值的时候运用取模来把乘法降为O(1)就可以解决这个灾难了,但是问题在于取模的话运算结果是否正确呢?并不一定。而且求逆的问题依然

没有得到解决。该怎么办呢?实际上,到最后我们确实会将这个算法置于模运算的意义之上,但这并不是我们现在要讨论的问题。

模运算是在循环群上进行的,循环这个词给了我们一个解决精度的思路,但以普通高中生的知识层面是无法沿着这个思路解决问题的,不过不虚,我们不是普通高中生,我们是OIER 。所以我们现在需要做的是放下对算法的研究,补充基础知识。这个过程是很生硬的知识传输,但我会尽量以一种亲民的方法来讲。学习新知识是很痛苦的,但是学会了会有一种豁然开朗的欣喜和自豪,这在自然科学这条道路上行走时是无法避免的。

3.3复杂的数值问题要用复杂的数解决

为了解决这个复杂的问题(complex problem)接下来我们要以毒攻毒(好像毒的都是自己),介绍一个超出常识的概念:复数(complex number)。

复数的定义是这样的:复数c (complex 的首字母)=a+bi ,其中a 和b 均属于实数集,而i 也不是程序员们平时所说的循环变量,在这里i 被赋予了一个超越常识的意义:1-=i 。因为c 是由两个数组成的,所以我们也可以把复数c=a+bi 表示成(a,b)。这样像不像一个坐标表示?从某种意义上来说,是的。既然知道了复数集这样一个集合,那么我们需要研究一下它们的运算关系:加法和乘法,减法和除法实际上就是加(乘)上另一个数的加(乘)法逆元:

),a (,解得0,11

)0,1(),(),,()

,()(),()()()(*)(*)

,()()()()(那么:

),,(),,(a 设2222111b

a b b a u bx ay by ax bx ay by ax u u y x yi x u b a bi a bi a u bc ad bd ac i bc ad bd ac di c bi a v u d b c a i d b c a di c bi a v u d c di c v b a bi u +-+==+=-==+-==+=--=--=+-=-+-=++-=++=++=+++=+++=+=+==+=--- 有了这样的运算法则,我们就可以在计算机上对复数进行运算了,一个复数可以定义为一个含有两个double 的结构体,然后按上面的式子来定义它们的加减乘除函数(最直观的方法还是重载运算符)即可。不过,在c++中内置了复数类complex ,它定义好了加减乘除法,但具体要用时请参考别人的代码,使用时我们需要含入库,需要使用时声明complex c;即可(嫌麻烦的可以用typedef )。注意,库里内置的东西在评测时不开-O2常数是很大的,最好还是尝试自己写一下。(C++实现见附录代码)

我们发现复数的加法和向量的加法是一模一样的,这是否能启发到我们的乘法呢?不慌,我们再来看以下的内容:

复数的指数形式定义是这样的:u i u e iu sin cos +=,其中e 为自然常数。为了阅读方便我们定义g=e^i (在其它书籍或资料中没有这样的定义,g 只是我为了方便大家理解胡乱

起的),这样的话θθθsin cos i g +=。那么我们就可以发现这样:

))

sin(),(cos()

cos sin cos sin ,sin sin cos (cos ),

sin ,(cos ),sin ,(cos βαβααββαβαβαββααβαβα++=+-======+g uv g v g u 设

感觉好爽啊。这样的话我们就可以把复数表示成向量了,而它们的相乘就是倾斜角相加!或许你可能在哪里听到过世界上最美的数学公式:01=+πi e ,现在我们可以解释它了,而且可以按我们的思路发现ππ2mod 2,1u u g g g ==,这些性质来自于我们学过骂过的三角函数的各种性质。

下面我们再来讨论真正用得着的东西:单位复数根。同样超越常识的它的定义是这样的:在超越常识的复数域内,存在有数,这个数的n 次方等于1,而且这样的数不止一个,而是

有n 个,分别为)1,...,2,1,0(-=n i i n ω,其中1n ω被称为主n 次单位复数根,被简写为n ω。

按照定义,我们可以直接找到这n 个数,看图:

(截自第四版的算导) 这张图已经很清晰了吧?那么我就直接给公式了:n k k n g πω

2*=。没错,就是将一个

单位圆分成n 份取其中的第k 份。

接下来介绍一个重要的定理:

。,0d 以及,0,0整数dn k n dk k n ωω=>≥≥? 这个定理在算法导论上被称消去引理,由此我们可以联想到,如果n 是2的幂的话,那么将k n ω平方其实就相当于将n 除以2。

回头想一想,我们到现在为止利用到了复数的哪些性质解决了哪些问题?我们遇到的问题有二:数值的精度问题,以及插值运算的问题。现在看来,数值的精度问题已经得到了完

美地解决,因为运用单位复数根的幂指数是循环的,这是因为n pk n

pk n p k n mod )(ωωω==。

这样一来,只要我们取k n k x ω=代入到多项式中求值就可以了。 3.4快速傅里叶变换

快速傅里叶变换(fast Fourier transform,FFT ),这就是本文所要介绍的算法真正的名字,它所蕴含的思想正是上文所介绍的运用分治,在Θ(nlogn)的时间内完成n 个不同的值的求值运算,并采用n 个n 次单位复数根作为n 个值代入多项式来解决精度问题。而且如果给定n 的话,n 个单位复数根就确定了,那么这个多项式的点值表示就仅用一个数组就可以做到,

所以我们在计算过程中直接把系数数组变换为点值数组就行了。具体做法我用中文伪代码来解释:

.}1413

;,.

12;*,复数.

1112/0.

10;)2/,(快速傅里叶变换.

9;)2/,(快速傅里叶变换.

8);,,,a (复数数组.

7;),,,(复数数组.

6;1复数.

5;

)/2sin(*)/2cos(复数.4返回;

.31

如果.2{

),数组长度数组快速傅里叶变换(复数.12/131220n n n k k Rk Lk R L n R n L y x a y x a a y a x n to k for n a n a a a a a a a a n i n n n a ωωωωωππω=-=+===-====+===+-- (c++实现见附录代码)

我们来用归纳法来证明,对于次数界为n 的复数数组(实数其实也是复数)a ,以及它的长度n (n 为2的幂),该程序在运行之后能够正确地计算出a 的傅里叶变换,也就是将多

项式的系数数组a 输入并运行之后,a 数组就从系数数组变为数值数组,其中)(k n k A a ω=。

程序第2、3行给出了递归边界,当n=1时,相当于多项式只有一个常数项,那么不管代入什么值它的值都不会变,所以直接结束递归调用即可。

当n=2^q(q>1)时,程序第6~9行创建aL 和aR 数组并对它们进行递归调用求值。第4~5行为初始化单位复数根,程序第10~13行是通过分治的方法,利用已得出的两个子数组的值,

进行求值,其中第13行的乘法保证了在第k 次循环执行时,k n ωω=。看不懂的,请自行

回头看上文介绍的分治求值方法。

好了,现在我们已经成功地解决了利用单位复数根进行求值的问题,至于两个点值表示相乘,那都不会你就来看这个?

3.5快速傅里叶逆变换(我一般习惯把逆变换叫做反演)

现在我们就差一步了,那就是插值,我们需要做到对单位复数根的范德蒙矩阵求并逆求值,看起来一点也不简单。不急,我们再来介绍一个性质:

∑-==?1

0j 0)(,有整除的非负整数和不能被正整数(求和引理)n j k n k n n ω

这是一个很好理解的引理,因为当n 和k 互质时,n 个j 和k 相乘会得到n 个不同的值(这涉及到数论的理论),根据循环的性质,这n 个值也就是n 个不同的n 次单位根,而上面的那个单位圆的图告诉了我们一个很明显的事实,n 个n 次单位根的和为0。至于另一种更严格的证明,参见《算法导论》。

好了,矩阵乘法是啥?∑-==10n k kj ik ij b a c ,现在我们知道[]

j i c a ij ij n ij ====,ω

(中括号为艾弗森约定,当括号内的表达式为真时取值为1,否则为0),现在要做的是求b ,既然原矩阵的取值是n 次单位复数根,而这n 个在乘法意义下是循环的,那我们为啥不假设

b 也是n 次单位复数根?我们先假设ij

n ij ij a b ω==',此时∑

-=+='10)(ij n k j i k n c ω,这个形式

和求和引理很相近了,我们可以发现0否则,c 时,='='=+ij

ij c n n j i 。而我们要求的是0否则,1c 时,='='=ij

ij c j i 。那么我们就可以发现,只需要令上面c’那个式子忠的i+j 变为i-j ,就能根据求和引理满足后半句了,此时前半句的式子依然为n ,但这并不麻烦,我们只需要将其除以n 就行了,所以我们得出n b ij n ij /-=

ω,此时我们再进行验证:[]∑∑-=--======

10)(101n k j i k n n k kj ik ij j i n b a c ω。完美。 那么,逆矩阵求出来了,而且逆矩阵的形式和一个范德蒙矩阵接近,逆求值呢?

∑∑-=-=--==101

0)(11n p n p p k n p p pk n k y n y n a ωω 逆求值和求值多么相近,我们只需要对y 数组运行快速傅里叶变换,并且把单位复数根取反,最后得出的结果再除以n ,那么我们就能够得出a !现在,我们对上面的程序进行改进,增加一个参数,使得f 为1时对a 执行傅里叶变换,当f 为-1时对a 执行傅里叶逆变换:

.}

17;/.

1610fo .

151如果.

14;13

;,.

12;*,复数.

1112/0.

10;)2/,(快速傅里叶变换.

9;)2/,(快速傅里叶变换.

8);,,,a (复数数组.

7;),,,(复数数组.

6;1复数.

5;)/2sin(**f )/2cos(复数.

4返回;.

31如果.

2{

),整数,数组长度数组快速傅里叶变换(复数.12/131220n n a a n to k r f y x a y x a a y a x n to k for n a n a a a a a a a a n i n n f n a k k n n k k Rk Lk R L n R n L =-=-===-=+===-====+===+--ωωωωωππω

新的程序比原来的程序多出了14~16行,这是因为逆变换后数组元素要除以n 。并且请

注意第四行,这么改的原理是这样的:

)/2sin()/2cos()/)(*2sin()/)(*2cos(n k i n k n k i n k k n ππππω-=-+-=- 大功告成了,让我们来用伪代码梳理一下整个过程:

}

.8;返回.

7);1,,c 快速傅里叶变换(.

6.

510.

4);1,n ,b 快速傅里叶变换(.

3);1,n ,a 快速傅里叶变换(.

2{

),长度,复数数组多项式乘法(复数数组.1c n b a c n to k for n b a k k k -=-=

貌似真的很简单,就和上面的框图解释的一样: [][][][]的点值表示的点值表示和)nl (插值求值)nl (的系数表示的系数表示B 和相乘)()

(相乘2C B A ogn ogn C A n n ΘΘ→Θ↑↓Θ→

算法第2~3行为求值,第4~5行为相乘,第6行为插值,求出成绩c 并在第7行返回结果。需要注意的是,长度n 是不小于c 的长度的2的幂。我们需要枚举出最小的大于等于a,b 长度和的2的幂,当然大点也无所谓,只要你不介意让自己的程序跑得更慢一些。

3.6优美的蝶代

作为oier ,发现一个递归的算法之后,首先要想到能不能将其转化为迭代的形式,因为迭代的实现往往比迭代的要搞笑。

首先我们从递归树入手,首先来看当n=8时的情形:

在一层层的递归一直到底层之后,最后数组元素所在的位置变换为了它二进制翻转后的位置。比如原来的下标为4(100)的元素,变到了第1(001)的位置,而0(000)、2(010)、5(101)、7(111)由于它们的二进制是回文串,所以递归后位置并没有发生改变。

该如何解释这一神奇的现象呢?其实并不难,在第一次递归调用的时候,我们将原数组按照奇偶划分为了左右两个部分,偶数在左,奇数在右,而奇偶的判断依据是二进制末位是

否为0,这也就相当于将原数组按照二进制末位为第一关键字重新排序。而进行递归调用时将n 除以2,也代表着在以后的划分中将最末尾抹去不参与了(因为都一样),所以,倒数第二位,也就相当于第二关键字。在我们平时的排序中,是按照二进制最高位(第一位)为第一关键字,第二位为第二关键字以此类推进行排序的,而这样的递归划分是从最末尾倒着来的,这也就很好地解释了为什么递归进行完之后所有元素的下标都进行了二进制翻转。 我们既然知道了这样一个规律,那么就可以直接将数组元素进行二进制翻转,然后从底层向上进行求值即可。将二进制翻转的操作,我们叫做蝶形变换,因为它真实的递归树像蝴蝶一样美(当然文科生无法理解这种数学的美)。中文伪代码如下:

.}

18;/.

1710fo .

161如果.

15;2*.

14;.

13.

12;]2/[,][.

11;]2/[*],[.

1012/0.

9;1.

80.

7);/2sin(*)/2cos(.

62.

5);]][[],[a 交换(.

4][如果.

31

0.2{

),整数,数组长度数组快速傅里叶变换(复数.1n n a a n to k r f len len len i i y x len k i a y x k i a len k i a y k i a x len to k for n i until i for len i f len n len until len for k R a k k R k n to k for f n a k k n =-=-===+==-=+++=+++=+=-=====+=>=<-=ωωωωωππω

循环5~14行枚举数组长度从底向上迭代(从2开始是因为最底一行不用计算),第7~13行枚举本层各个区间的起点,第9~12行和递归版本一样进行计算。

现在该解决的问题都解决了,甚至我们还对这个算法进行了迭代的优化,到这里为止快速傅里叶变换就算基本结束了。

但是上文还是留下了一个问题。 3.6*快速数论变换

还记得本文开头所说的研究多项式快速乘法的目的是什么吗?并不是解决高精度问题,而是要解决组合数学中生成函数的乘法问题,而这一类问题往往由于结果过大是需要对一个大质数取模的,这个大质数往往会是2的幂的倍数+1。当遇到这类问题时,直接进行复数运算最后再进行取模的话,可能会承受无法估计的精度问题所带来的不确定性,那么,对此我们是否有解决的办法呢?

当然有,因为在我们提出利用复数来解决幂次方的精度问题之前,便想到了整数群的循环性质,而单位复数根的运算恰好运用了这样的性质。现在我们研究完了基于复数的快速傅里叶变换,是否可以回头看看整数群也拥有这些性质呢?

快速傅里叶变换核心的核心在于复数群有n 个n 次单位复数根,而且它们之间的运算满

足循环的性质。那么整数群呢?是否也有n 个不同的n 次方为1的数呢?

。k |1)-p ()当且仅当p mod (1,那么的生成元为数群根据费马小定理,设整k ≡g g Z p 由这个性质,我们可以知道g 的p 个幂次方正好对应了p 个不同的数,再看上面的那个

式子,我们再来找n 次方为1的数不就简单了吗?我们只需令主n 次单位根n 1

-=p n g ω。由

于n 是2的幂,所以很显然n|(p-1)。我们不妨再来验证一下整数群上n 次单位根的性质:

)不整除(0)(,,,11

0mod )(n 1

1k n g g n k k m n n k n k

n j

i n j i p j n i

n p n

n ∑-=++--======ωωωωωωω

很好,这样,看来我们只是正确地取了n 1

-=p n g ω,就完美地解决了一切问题,发现了一个新的算法。《算法导论》上这种算法被称为基于模运算的FFT ,但是在现实中,人们似乎更习惯把它称为快速数论变换(number theoritic transform,NTT )。

你问我生成元咋求?没得求,自己暴力搜,你会发现一个模一个质数的循环群有一大坨。你问我逆变换的除法咋办?我咋没听说过整数群还有除法了?你问我乘法逆元咋求?n^(p-1)=1,不就是n*n^(p-2)=1,n^-1不就是n^(p-2)?快速幂会吧?再不济扩展欧几里得总会用吧?你问我题目要求模的质数-1不是2的幂的倍数,这我没办法,用中国剩余定理,找几个2的幂的倍数运算,最后还原就行了,麻烦是麻烦,但你只能骂出题人然后默默写。 得,大功告成。

四、总结

本文的目的是探究算法,而不是介绍算法,目的在于研究一个算法背后所蕴含的思想和它所产生的动机,所以最后,我们要来回顾这个算法究竟用到了哪些思想。

首先就是分治,分治思想是很多算法和数据结构的核心思想,也算是计算机科学的基础,对于数组这样的研究对象,在本文中两次用到了分治,一次是从中间分开,左右分别进行递归,另一次更巧妙,按照奇偶分开,虽然后者对问题的解决并没有什么直接作用,但却启发我们发现另一条复杂度可能更低的路径,而这条路径正是我们最终解决这个问题的途径,学oi ,就是要“取巧”,明修栈道,暗度陈仓。另外有意思的一点是,从中间分治是将数组按二进制最高位分开,而按奇偶分治,则是将数组按二进制最低位重排序之后分开。

之后我们提到了变换与反演,这是解决数学问题的一个十分重要的思想,它的核心思想就是将一个数学对象在不同的等价形式之间进行转换,然后选择一个合适的形式解决问题,最后再将问题转换回我们所要求的形式。在本文中,数学对象就是多项式,不同的等价形式就是系数表示和点值表示,转换就是傅里叶变换和逆变换,而合适的解决问题的形式就是利用点值表示的性质在线性时间度内完成乘法运算。在3.6节的最后提到的中国剩余定理,其实运用的变换与反演的思想。

解决问题的主算法,利用到了循环群的性质,一个是n 次单位复数根,而另一个就是循环,这两个性质帮助我们解决了数值精度问题和矩阵求逆的问题,最终解决了问题。虽然很多人在看这篇文章时对此并不了解,但看完之后想必也明白了。

可以看到,FFT 不是简简单单的解决多项式乘法问题的模板而已,否则我也不会花这么多时间和精力来写这么一个总结了,它背后所隐藏的分治、变换反演的思想和利用到的循环群的性质可能是我们以前未曾发现的。研究算法,目的还是要针对将来要遇到的题目创造算法,就像庖丁解牛一样,如果你把这个算法研究透了,在以后的考试和比赛中还有什么可惧怕的呢?如果真能做到“手中无剑,心中有剑”,还有什么难题是解决不了的呢?

五、附录

5.1感谢

感谢我的指导老师——焦作市第一中学的刘小刚老师,给了我如此多支持、鼓励和帮助,让我能够顺利地写完这篇总结。

感谢黄山大神提供了一个供我瞻仰的背影,给予了我前进的动力。

感谢李震这样一个优秀的朋友和竞争对手。

感谢焦作一中机房17届的每一位同学的陪伴以及16届学长们的帮助,以及14届徐王子浩学长在我oi路上的指导、鼓励和帮助。

5.2参考文献

《算法导论》

《生产函数的运算与组合计数问题》——杭州学军中学金策

5.3源程序

Complex.h

这是复数的定义和运算。

多项式乘多项式试题精选(二)附答案

多项式乘多项式试题精选(二) 一.填空题(共13小题) 1.如图,正方形卡片A类、B类和长方形卡片C类各若干张,如果要拼一个长为(2a+b),宽为(a+b)的长方形,则需要C类卡片_________张. 2.(x+3)与(2x﹣m)的积中不含x的一次项,则m=_________. 3.若(x+p)(x+q)=x2+mx+24,p,q为整数,则m的值等于_________. 4.如图,已知正方形卡片A类、B类和长方形卡片C类各若干张,如果要拼成一个长为(a+2b)、宽为(a+b)的大长方形,则需要A类卡片_________张,B类卡片_________张,C类卡片_________张. 5.计算: (﹣p)2?(﹣p)3=_________;=_________;2xy?(_________)=﹣6x2yz;(5﹣a)(6+a)=_________. 6.计算(x2﹣3x+1)(mx+8)的结果中不含x2项,则常数m的值为_________. 7.如图是三种不同类型的地砖,若现有A类4块,B类2块,C类1块,若要拼成一个正方形到还需B类地砖 _________块. 8.若(x+5)(x﹣7)=x2+mx+n,则m=_________,n=_________. 9.(x+a)(x+)的计算结果不含x项,则a的值是_________. 10.一块长m米,宽n米的地毯,长、宽各裁掉2米后,恰好能铺盖一间房间地面,问房间地面的面积是_________平方米. 11.若(x+m)(x+n)=x2﹣7x+mn,则﹣m﹣n的值为_________. 12.若(x2+mx+8)(x2﹣3x+n)的展开式中不含x3和x2项,则mn的值是_________. 13.已知x、y、a都是实数,且|x|=1﹣a,y2=(1﹣a)(a﹣1﹣a2),则x+y+a3+1的值为_________.

沪科数学七下《 整式乘法《多项式与多项式相乘》教案2

《多项式与多项式相乘》 【教学目标】: 理解多项式乘法法则;灵活运用多项式乘以多项式的运算法则. 【教学重点】: 多项式乘法的运算. 【教学难点】: 探索多项式乘法的法则,注意多项式乘法的运算中“漏项”、“符号”的问题. 【教学过程】: 情境导入 复习单项式×多项式运算法则. 整式的乘法实际上就是. 单项式×单项式. 单项式×多项式 多项式×多项式 组织讨论: 如图,计算此长方形的面积有几种方法? 如何计算?小组讨论,你从计算中发现了什么? 由于(m +n )(a +b )和(ma +mb +na +nb )表示同一个量, 即有(m +n )(a +b )=ma +mb +na +nb 探索法则与应用 根据乘法分配律,我们也能得到下面等式: (m +n )(a +b )=ma +mb +na +nb 总结多项式与多项式的乘法法则. 理论依据: 乘法对加法的分配律. 多项式乘以多项式先用一个多项式的每一项乘以另一个多项式的每一项,再把所得的积相加 例题讲解巩固练习. 1、计算下列各题. (1)(x +2)(x +3) (2)(a -4)(a +1) (3))31))(21(+-y y (4))4 36))(42(-+x x (5)(m +3n )(m -3n ) 2、某零件如图所示,求图中阴影部分的面积S.

练习点评: 在讲解、练习过程中,提醒学生法则的灵活、正确应用,注意符号,不要漏乘注意: 一定要用第一个多项式的每一项依次去乘第二个多项式的每一项,在计算时要注意多项式中每个单项式的符号 课堂总结 主要针对以下方面: 1、多项式×多项式. 2、整式的乘法. 用一个多项式中的每一项乘遍另一个多项式的每一项,不要漏乘在没有合并同类项之前,两个多项式相乘展开后的项数应是这两个多项式项数之 积. 本资源的初衷,是希望通过网络分享,能够为广大读者提供更好的服务,为您水平的提高提供坚强的动力和保证。内容由一线名师原创,立意新,图片精,是非常强的一手资料。

多项式乘以多项式及乘法公式习题(终审稿)

多项式乘以多项式及乘 法公式习题 文稿归稿存档编号:[KKUY-KKIO69-OTM243-OLUI129-G00I-FDQS58-

多项式乘以多项式及乘法公式 副标题 题号一二三总分 得分 一、选择题(本大题共12小题,共36.0分) 1.若(x-1)(x+3)=x2+mx+n,则m+n=()A.-1B.-2C.-3D.2 2.若,则p、q的值为()A.p=-3, q=-10B.p=-3,q=10C.p=7,q=-10D.p=7,q=10 3.若代数式的结果中不含字母x的一次项,那么a的值是 A.0B.2 C. D.- 4.(x-2)(x+3)的运算的结果是() A.x2-6? B.x2+6? C.x2-5x-6? D.x2+x-6 5.如果(x+1)(x2-5ax+a)的乘积中不含x2项,则a为() A. B.- C.-5 D.5 6.若代数式x2+kxy+9y2是完全平方式,则k的值是() A.3 B.±3 C.6 D.±6 7.9x2-mxy+16y2是一个完全平方式,那么m的值是()A.12B.-12C.±12D.±24 8.下列多项式乘法,能用平方差公式计算的是()A.(-3x-2)(3x+2)B.(-a-b)(-b+a)C.(-3x+2)(2-3x)D.(3x+2)(2x-3)

9.若x2-nx+16是一个完全平方式,则n等于()A.4B.±4C.8D.±8 10.若-ax+x2是一个完全平方式,则常数a的值为() A. B. C.1D.±1 11.已知,,则的值为() A.7 B.5 C.3 D.1 12.下列各式能用平方差公式计算的是() ①② ③④ A.①②B.②③C.①③D.③④ 二、填空题(本大题共7小题,共21.0分) 13.若(x-5)(x+20)=x2+mx+n,则m=______,n=______. 14.已知(x-1)(x+3)=ax2+bx+c,则代数式9a-3b+c的值为 ______. 15.在x+p与x2﹣2x+1的积中不含x,则p的值为. 16.多项式x2-6x+9因式分解的结果为________. 17.(2a-b)(-2a-b)=______;(3x+5y)(______)=25y2-9x2. 18.已知,那么. 19.若是一个完全平方式,则▲. 三、计算题(本大题共7小题,共42.0分) 20.若(x2+mx-8)(x2-3x+n)的展开式中不含x2和x3项,求m和n的值. 21. 22.已知(x+y)2=18,(x-y)2=4,求下列各式的值:(1)x2+y2;(2)xy. 23.已知:x+y=6,xy=4,求下列各式的值

深入探究多项式乘法的快速算法

深入探究多项式乘法的快速算法 焦作市第一中学 闵梓轩 一、 高精度、多项式与生成函数 1.1 高精度 在OI 中我们有时会碰到一些问题的必要数值超出64位整形的范围,这个时候我们就需要用到高精度方式存储。而高精度数的思想是进制思想的一个具体体现,出于正常人类的习惯,我们所使用的高精度数都采用10进制,即每一位都表示十进制上的一个数,从0~9,更进一步,为了优化高精度数运算所花费的时间与空间,我们采用了万进制,即每一位存0~9999的数,这样同时优化了程序效率,同时在输出上也没有什么太大的问题(每一位不足1000补0即可)。 当然,我们也可以用三进制、五进制、450进制,8964进制的高精度数,虽然因为在输出时会变得非常麻烦而没有人去用,但是它们的可行性正对应了进制的一种思想,比如一个十进制数12450,它的算数含义是0123410*010*510*410*210*1++++二进制数10010,它的算数含义是1 42*12*1+(把为0的位忽略),这样形如 ),0(*0N a x a x a i i n i i i ∈<≤∑=的每一位上的数字在数值表示上都乘上了某个数的一个幂的数正是进制思想的基础。在编程实现上这样的一个数我们通常用整形数组来表示,a[i]表示i 次项的系数,如果数组长度为n ,那么学过高精度的人都知道两个数相加的时间复杂度是θ(n),两个数相乘的时间复杂度是O(n^2),在信息学竞赛中,这样的时间复杂度足以满足大部分题目的需求,因为一般来说我们的数值都不会达到10^100000次方这么大。 1.2多项式 熟悉数学的我们能够发现上面这样的一个式子,如果忽略了括号中的内容的限制,那么 我们可以发现这样的式子其实就是我们所学的n 次多项式∑∞==0*)(i i i x a x A , 比如十进制数12450就是05421234++++x x x x 当x=10的时候的数值嘛。所以,当一个值b 代入多项式A(x)时,这个式子也就变成了一个值A(b)。但是要注意的是多项式的系数是没有限制的,所以多项式可以用浮点数组表示,而且我们可以惊奇地发现多项式的加法和乘法在代码上除了不需要进位之外和高精度是一样的。所以说,我们所见的b 进制数值,就是一个当x=b 的多项式的取值而已。但是在多项式中,x 的意义仅仅是一个符号而已,ai*x^i 你可以理解为ai 在数组的第i 个位置。 我们需要注意的是,n 次多项式的数组表示需要用到n+1个数,为什么?因为有n 个含x 的项和一个常数项,所以我们一般把多项式A(x)的最高次项的次数+1称作为这个多项式的次数界(次数界的真正意义是系数不为零的最高次项的次数+1,下文中提到的“次数界“为

整式的乘法计算题

一、计算 1.a2·(-a)5·(-3a)3 2.[(a m)n]p 3.(-mn)2(-m2n)3 4.(-a2b)3·(-ab2) 5.(-3ab)·(-a2c)·6ab2 6.(-ab)3·(-a2b)·(-a2b4c)27.(3m-n)(m-2n). 8.(x+2y)(5a+3b). 9.5x(x2+2x+1)-(2x+3)(x-5) 10. (-2x-5)(2x-5) 11. -(2x2+3y)(3y-2x2) 12. (a-5) 2-(a+6)(a-6)

13. (2x -3y )(3y +2x )-(4y - 3x )(3x +4y ) 14. 3(2x +1)(2x -1)-2(3x +2)(2- 3x ) 15. (31x +y )(31x -y )(9 1x 2+y 2) 16. )1)(1)(1)(1(42x x x x ++-+ 二、基础训练 1.多项式8x 3y 2-12xy 3z 的公因式是_________. 2.多项式-6ab 2+18a 2b 2-12a 3b 2 c 的公因式是( ) A .-6ab 2c B .-ab 2 C .-6ab 2 D .-6a 3b 2c 3.下列用提公因式法因式分解正确的是( ) A .12abc-9a 2b 2 =3abc (4-3ab ) B .3x 2y-3xy+6y=3y (x 2-x+2y ) C .-a 2+ab-ac=-a (a-b+c ) D .x 2y+5xy-y=y (x 2+5x ) 4.下列多项式应提取公因式5a 2b 的是( ) A .15a 2b-20a 2b 2 B .30a 2b 3-15ab 4-10a 3b 2 C .10a 2b-20a 2b 3+50a 4b D .5a 2b 4-10a 3b 3+15a 4b 2 5.下列因式分解不正确的是( ) A .-2ab 2+4a 2b=2ab (-b+2a ) B .3m (a-b )-9n (b-a )=3(a-b )(m+3n ) C .-5ab+15a 2bx+25ab 3y=-5ab (-3ax-5b 2y ); D .3ay 2-6ay-3a=3a (y 2-2y-1) 6.填空题: (1)ma+mb+mc=m (________); (2)多项式32p 2q 3-8pq 4m 的公因式是_________; (3)3a 2-6ab+a=_________(3a-6b+1);(4)因式分解:km+kn=_________; (5)-15a 2+5a=________(3a-1); (6)计算:21××=_________. 7.用提取公因式法分解因式: (1)8ab 2-16a 3b 3; (2) -15xy-5x 2; (3)a 3b 3+a 2b 2-ab ; (4) -3a 3m-6a 2m+12am . 8.因式分解:-(a-b )mn-a+b . 三、提高训练 9.多项式m (n-2)-m 2(2-n )因式分解等于( ) A .(n-2)(m+m 2) B .(n-2)(m-m 2) C .m (n-2)(m+1) D .m (n-2)(m-1)

多项式的乘法教学设计

15.1.5 整式的乘法2 【课题】:多项式的乘法 【教学时间】: 【学情分析】:(适用于特色班)学生前面已学习了幂的运算性质、单项式的乘法、单项式与多项式的乘法及乘法的分配律,适当地进行复习,即可巩固前面的学习,也为多项式乘法的学习打好基础,使学生较容易地把多项式乘法归结为单项式的乘法。 【教学目标】: (一)教学知识点 探索并了解多项式与多项式相乘的法则,并运用它们进行运算. (二)能力训练要求 让学生主动参与到一些探索过程中去,逐步形成独立思考,主动探索的习惯,培养思维的批判性、严密性和初步解决问题的愿望和能力. (三)情感与价值观要求 在发展推理能力和有条理的语言、符号表达能力的同时,进一步体会学习数学的兴趣,提高学习数学的信心,感受数学的简洁美. 【教学重点】:多项式与多项式相乘的法则。 【教学难点】:运用法则进行混合运算。 【教学突破点】:整体思想的贯彻。 【教法、学法设计】:合作探究式分层次教学,讲授、练习相结合。 【课前准备】:课件 【教学过程设计】: 教学环节教学活动设计意图 一、师生互动,探究分类 1.练一练:教科书第175页练习1、2 2.前面这节课我们研究了单项式与单项式、单项式与多项式相乘的方法,请同学回忆方法. 二、创造问题情境,探究新知 我们再来看一看第一节课悬而未决的问题: 为了扩大绿地面积,要把街心花园的一块长a米,宽m米的长 方形绿地增长b米,加宽n米(课件展示街心花园实景,而后抽象成 数学图形,并用不同的色彩表示出原有部分及其新增部分).提出问 题:你能用几种方法表示扩大后绿地的面 积?不同的表示方法之间有什么关系? 用不同的方法怎样表示扩大后的绿地 面积?用不同的方法得到的代数式为什么是 相等的呢?这个问题激起学生的求知欲望, 引起学生对多项式乘法学习的兴趣. 从实际生 活中的实例引 入,体现了数 学知识源于生 活,调动学生 学的积极性。

多项式算法

#include #include #include #include #include #define NULL 0 //************************************************** typedef struct LNode { float coef;//系数 int exp;//指数 struct LNode *next; }LNode, *Polyn; //************************************************** //销毁传递过来的链表【多项式】 void DestroyPolyn(Polyn &L) { Polyn p; p=L->next; while(p) { L->next=p->next; free(p); p=L->next; } free(L); } //************************************************** /*判断指数是否与多项式中已存在的某项相同*/ int JudgeExp(Polyn L,Polyn e) { Polyn p; p=L->next; while(p!=NULL&&(e->exp!=p->exp)) p=p->next; if(p==NULL) return 0; else return 1; } //******************************************************** //创建一个项数为n的多项式,有头结点 void CreatePolyn(Polyn &L,int n)

乘法公式与因式分解

乘法公式、多項式與因式分解 主題一:乘法公式的判別與求值 1. 乘法公式 1.2222)(b ab a b a ++=+(和的平方) 2.2222)(b ab a b a +-=-(差的平方) 3.22))((b a b a b a -=-+ (平方差) 4.(a+b)(c+d)=ac+ad+bc+bd (乘法分配律) 5. ac bc ab c b a c b a 222)(2222+++++=++(三項和的平方) 6.3223333)(b ab b a a b a +++=+(和的立方) 7.3223333)(b ab b a a b a -+-=-(差的立方) 8.3322))((b a b ab a b a +=+-+(立方和) 9.3322))((b a b ab a b a -=++-(立方差) 10.42242222))((b b a a b ab a b ab a ++=+-++ 2. 求值公式: (1) a 2+b 2=(a +b )2-2ab =(a -b )2+2ab 【若已知a +b 及ab ,欲求a -b 時,須先算出(a -b )2,再用平方根來求】 (2) x 2+x 21=(x +x 1)2-2=(x -x 1)2+2 (3) a 2+b 2+c 2+ab +bc +ca = 2 1〔(a +b )2+(b +c )2+(c +a )2〕 (4) (a +b )2=(a -b )2+4ab (5) (a -b )2=(a +b )2-4ab 3.乘法公式的應用與式子的展開: (1)(ax +b )(cx +d )=acx 2++ad x +bcx +bd (2)(ax +b )2=(ax )2+2×ax ×b +b 2=a 2x 2+2abx +b 2 (3)(ax -b )2=(ax )2-2×ax ×b +b 2=a 2x 2-2abx +b 2 (4)(ax +b )(ax -b )=(ax )2-b 2=a 2x 2-b 2 (5)(-ax +b )2=(ax -b )2;(-ax -b )2=(ax +b )2 主題二:多項式 1. 多項式的定義:由數和文字符號x 進行加法和乘法運算所構成的式子。多項式的文字x 不可在分母、指數、根號內與絕對值內,且須為有限項。 例:231 +X ,22-X ,5-X ,.....12+++X X 不是X 的多項式。 2.多項式的次數: (1) 只含一個文字的多項式,以文字的最高次數為此多項式之次數。 (2) 含二個或二個以上文字的多項式,以各項中文字的次數總和的最高次數為此多項式之次數。 (3) 常數多項式,包含零次多項式(只有常數項,且不為0)及零多項式(就是0)。

5.多项式乘以多项式练习题

5.多项式与多项式相乘 一、选择题 1.计算(2a-3b)(2a+3b)的正确结果是() A.4a2+9b2B.4a2-9b2C.4a2+12ab+9b2D.4a2-12ab+9b2 2.若(x+a)(x+b)=x2-kx+ab,则k的值为() A.a+b B.-a-b C.a-b D.b-a 3.计算(2x-3y)(4x2+6xy+9y2)的正确结果是() A.(2x-3y)2B.(2x+3y)2C.8x3-27y3D.8x3+27y3 4.(x2-px+3)(x-q)的乘积中不含x2项,则() A.p=q B.p=±q C.p=-q D.无法确定 5.若0<x<1,那么代数式(1-x)(2+x)的值是() A.一定为正B.一定为负C.一定为非负数D.不能确定6.计算(a2+2)(a4-2a2+4)+(a2-2)(a4+2a2+4)的正确结果是() A.2(a2+2)B.2(a2-2)C.2a3D.2a6 7.方程(x+4)(x-5)=x2-20的解是() A.x=0 B.x=-4 C.x=5 D.x=40 8.若2x2+5x+1=a(x+1)2+b(x+1)+c,那么a,b,c应为() A.a=2,b=-2,c=-1 B.a=2,b=2,c=-1 C.a=2,b=1,c=-2 D.a=2,b=-1,c=2 9.若6x2-19x+15=(ax+b)(cx+d),则ac+bd等于() A.36 B.15 C.19 D.21 10.(x+1)(x-1)与(x4+x2+1)的积是() A.x6+1 B.x6+2x3+1 C.x6-1 D.x6-2x3+1 二、填空题 1.(3x-1)(4x+5)=_________. 2.(-4x-y)(-5x+2y)=__________. 3.(x+3)(x+4)-(x-1)(x-2)=__________. 4.(y-1)(y-2)(y-3)=__________. 5.(x3+3x2+4x-1)(x2-2x+3)的展开式中,x4的系数是__________.

多项式的乘法优秀教案

多项式的乘法 【教学目标】 1.经历探索多项式的乘法运算法则的过程,掌握多项式与多项式相乘的法则。 2.会运用单项式与单项式,单项式与多项式,多项式与多项式相乘的法则,化简整式。 3.会用多项式的乘法解决简单的实际问题。 【教学重难点】 多项式与多项式相乘的运算。 【教学过程】 一、创设情境,引出课题 小明找来一张铅画纸包数学课本,已知课本长a 厘米,宽b 厘米,厚c 厘米,小明想将课本封面与封底的每一边都包进去m 厘米,问如果你是小明你会在铅画纸上裁下一块多大面积的长方形? 二、引出新知,探究示例 1.合作探索学习:有一家厨房的平面布局如图1 (1)请用三种不同的方法表示厨房的总面积。 (2)这三种不同的方法表示的面积应当相等,你能用运算律解释吗? (3)通过上面的讨论,你能总结出单项式与多项式相乘的运算规律 吗? (让学生以同桌合作的形式进行探索,然后表达交流) 答: (1)总面积:(a+n)(b+m);a(b+m)+n(b+m)或b(a+n)+m(a+n);ab+am+nb+nm (2)总面积相等,由此可得到(a+n)(b+m)=a(b+m)+n(b+m)……① =ab+am+nb+nm ……② 第①步运用分配律把(b+m)看成一个数,第②步再运用分配律。 (3)由(a+n)(b+m)=ab+am+nb+nm 师生共同总结得出多项式与多项式相乘的法则: (学生归纳,教师板书) 2.运用新知,计算例题 例1:计算 n a m 右侧 矮矮柜 b

(1)(x+y)(a+2b) (2)(3x-1)(x+3) (3)(x-1)2 解:(1)(x+y)(a+2b)=x ?a+x ?(2b)+y ?a+y ?(2b)=ax+2bx+ay+2by (2)(3x-1)(x+3)=3x2+9x-x-3=3x2+8x-3 (3)(x-1)2=(x-1)(x-1)=x2-x-x+1=x2-2x+1 教师在示范过程中引导学生注意这三题都按多项式相乘的法则进行,运算过程中注意符号,防止漏乘,结果要合并同类项。 例2,先化简,再求值:(2a-3)(3a+1)-ba(a-4),其中a= 721- 解:(2a-3)(3a+1)-ba(a-4)=6a2+2a-9a-3-6a2+24a=17a-3 当a=721-时,原式=17a-3=17×(1719-)-3=-19-3=-22 注意的几点:(1)必须先化简,再求值,注意符号及解题格式。 (2)当代入的是一个负数时,添上括号。 (3)在运算过程中,把带分数化为假分数来计算。 反馈练习:计算当y=-2时,(3y+2)(y-4)-(y-2)(y-3)的值。 三、分层训练,能力升级 1.填空 (1)(2x-1)(x-1)= (2)x(x2-1)-(x+1)(x2+1)= (3)若(x-a)(x+2)=x2-6x-16,则a= (4)方程y(y-1)-(y-2)(y+3)=2的解为 2.某地区有一块原长m 米,宽a 米的长方形林区增长了200米,加宽了15米,则现在这块地的面积为 平方米。 3.某人以一年期的定期储蓄把2000元钱存入银行,当年的年利率为x ,第二年的年利率减少10%,则第二年到期时他的本利和为多少元? 四、小结 让学生谈谈通过这节课的学习,有哪些收获与疑问?教师及时总结内容并解答疑惑。 【作业布置】 课本的分层作业题。

乘法公式、指数基本运算与多项式

第 一 章 乘法公式、指數基本運算與多項式 §§乘法公式、指數基本運算與多項式 1.乘法公式: (1)(a+b)2=a 2+2ab+b 2 (2)(a -b)2 =a 2-2ab+b 2 (3)(a+b+c)2=a 2+b 2+c 2+2ab+2bc+2ca (4)(a+b)(a -b)=a 2-b 2 (5)(a+b)(a 2-ab+b 2)=a 3+b 3 (6)(a -b)(a 2+ab+b 2)=a 3-b 3 (7)(a+b)3=a 3+3a 2b+3ab 2+b 3= a 3+b 3+3ab(a+b) (8)(a -b)3=a 3-3a 2b+3ab 2-b 3= a 3-b 3-3ab(a -b) (9)(x+a)(x+b)=x 2+(a+b)x+ab (10)(a+b)(c+d)=ac+ad+bc+bd (11)(a+b+c)(a 2+b 2+c 2-ab -bc -ca)=a 3+b 3+c 3-3abc 2.指數律: (1)a m ×a n =a m+n (2)a m ÷a n =a m -n ---a ≠0 (3)(a m )n =a m×n (4)(ab)n =a n b n (5)n n n b a b a =?? ? ??---b ≠0 (6)a ≠0?a 0=1 (7)n n a 1 a =----a ≠0 (8)n n 1 a a =---a>0 (9)n m a =n m a ---a>0

3.求值公式: [型一]已知a+b 和ab 之值: (1)a 2+b 2=(a+b)2-2ab (2)a 3+b 3=(a+b)3-3ab(a+b) (3)a 4+b 4=(a 2+b 2)2-2a 2b 2 (4)(a -b)2=(a+b)2-4ab [型二]已知a -b 和ab 之值: (1)a 2+b 2=(a -b)2+2ab (2)a 3-b 3=(a -b)3+3ab(a -b) (3)(a+b)2=(a -b)2+4ab [型三]分式型,已知x 1x +或x 1 x -之值: (1)2x 1x x 1x 2 22 -??? ? ?+=+ (2)2x 1x x 1x 2 22 +??? ? ?-=+ (3)4x 1x x 1x 2 2-??? ? ? +=??? ??- (4)4x 1x x 1x 2 2+??? ? ? -=??? ??+ (5)??? ??+-??? ??+=+x 1x 3x 1x x 1x 3 33 (6)??? ? ?-+??? ??-=-x 1x 3x 1x x 1x 3 33 4.商高定理(畢氏定理):?A BC 中,∠C=900 ,則2 2AB BC AC =+, 即直角三角形兩股長的平方和等於斜邊的平方。 常見的直角三角形三邊長: (1)四類型:(3,4,5)、(5,12,13)、(7,24,25)、(8,15,17)。 (2)將五類型的三邊按一定比例放大或縮小也可成為直角三角形。例:(3,4,5)→(6,8,10)→(9,12,15)→……。 5.坐標平面上兩點間的距離及中點坐標求法: 設坐標平面上相異兩點A (x 1,y 1)、B(x 2,y 2),O 為原點,則: (1)()()221221y y x x AB -+-= (2)AB 中點M 的坐標為?? ? ??++2y y ,2x x 2121 B C

浙教版七年级数学下册多项式的乘法作业练习

3.3 多项式的乘法 一.选择题(共4小题) 1.已知(x﹣m)(x+n)=x2﹣3x﹣4,则m﹣n的值为() A.1 B.﹣3 C.﹣2 D.3 2.(x2+ax+8)(x2﹣3x+b)展开式中不含x3和x2项,则a、b的值分别为()A.a=3,b=1 B.a=﹣3,b=1 C.a=0,b=0 D.a=3,b=8 3.若2x3﹣ax2﹣5x+5=(2x2+ax﹣1)(x﹣b)+3,其中a、b为整数,则a+b之值为何?()A.﹣4 B.﹣2 C.0 D.4 4.下列计算错误的是() A.(x+a)(x+b)=x2+(a+b)x+ab B.(x+a)(x﹣b)=x2+(a+b)x+ab C.(x﹣a)(x+b)=x2+(b﹣a)x+(﹣ab) D.(x﹣a)(x﹣b)=x2﹣(a+b)x+ab 二.填空题(共8小题) 5.若(x+1)(x+a)展开是一个二次二项式,则a= 6.定义运算:a⊕b=(a+b)(b﹣2),下面给出这种运算的四个结论:①3⊕4=14;②a⊕b=b⊕a; ③若a⊕b=0,则a+b=0;④若a+b=0,则a⊕b=0.其中正确的结论序号为.(把 所有正确结论的序号都填在横线上) 7.已知m+n=3,mn=﹣6,则(1﹣m)(1﹣n)= . 8.已知(3x﹣p)(5x+3)=15x2﹣6x+q,则p+q= . 9.如图,正方形卡片A类、B类和长方形卡片C类各若干张,如果要拼一个长为(a+3b),宽为(2a+b)的长方形,则需要C类卡片张. (第9题图) 10.一个三角形的底边长为(2a+6b),高是(3a﹣5b),则这个三角形的面积是.11.计算下列各式,然后回答问题. (a+4)(a+3)= ;(a+4)(a﹣3)= ; (a﹣4)(a+3)= ;(a﹣4)(a﹣3)= .

多项式乘多项式练习题

整式乘法:多项式乘多项式习题(4) 一、选择题 1.计算(2a-3b)(2a+3b)的正确结果是() A.4a2+9b2B.4a2-9b2C.4a2+12ab+9b2D.4a2-12ab+9b2 2.若(x+a)(x+b)=x2-kx+ab,则k的值为() A.a+b B.-a-b C.a-b D.b-a 3.计算(2x-3y)(4x2+6xy+9y2)的正确结果是() A.(2x-3y)2B.(2x+3y)2C.8x3-27y3D.8x3+27y3 4.(x2-px+3)(x-q)的乘积中不含x2项,则() A.p=q B.p=±q C.p=-q D.无法确定 5.若0<x<1,那么代数式(1-x)(2+x)的值是() A.一定为正B.一定为负C.一定为非负数D.不能确定6.计算(a2+2)(a4-2a2+4)+(a2-2)(a4+2a2+4)的正确结果是() A.2(a2+2)B.2(a2-2)C.2a3D.2a6 7.方程(x+4)(x-5)=x2-20的解是() 8.A.x=0 B.x=-4 C.x=5 D.x=40 9.若2x2+5x+1=a(x+1)2+b(x+1)+c,那么a,b,c应为() A.a=2,b=-2,c=-1 B.a=2,b=2,c=-1 C.a=2,b=1,c=-2 D.a=2,b=-1,c=2 10.若6x2-19x+15=(ax+b)(cx+b),则ac+bd等于() A.36 B.15 C.19 D.21 11.(x+1)(x-1)与(x4+x2+1)的积是() A.x6+1 B.x6+2x3+1 C.x6-1 D.x6-2x3+1 二、填空题 1.(3x-1)(4x+5)=__________. 2.(-4x-y)(-5x+2y)=__________. 3.(x+3)(x+4)-(x-1)(x-2)=__________. 4.(y-1)(y-2)(y-3)=__________. 5.(x3+3x2+4x-1)(x2-2x+3)的展开式中,x4的系数是__________.

哈密顿图判定问题的多项式时间算法

哈密顿图判定问题的多项式时间算法 姜新文等** (410073,国防科技大学计算机学院,长沙) Abstract: 本文给出一个称为 问题的定义及其多项式时间判定算法。已经证明包括哈密顿图判定问题在内的众多 完全问题可以多项式归结到 问题。 问题的多项式时间判定算法就是 完全问题的多项式判定算法。本文结果暗示 。本文涉及的内容属于简单的图论问题算法设计的入门性范畴,被计算机、数学和信息安全等类专业本科以上知识背景覆盖。相关专业本科甚至专科以上学生通过适当求教算法设计、计算复杂性、图论、运筹学和密码算法相关教师和权威可以阅读本文。 Key words: Algorithm, problem, problem, complete problem 1 问题引入及若干定义 哈密顿图判定问题是 完全问题。为了求解该问题,我们需要对问题进行转化。为缩短证明长度,以分段确认,分割围歼,综合众多意见,我们提出 问题,并将注意力集中在 问题多项式时间判定上。 算法是一堆动作的有序集合。为一个问题设计算法是容易的,将一些动作凑在一起即可。设计算法的困难性和严肃性在于,你的算法是否实现了你的计算目标?于是需要证明。而如何证明常常让人无从着手。 问题是一个人工构造的问题,它的特别的结构特性,使我们容易找到时间复杂性为关于问题规模的多项式函数算法并证明其正确性。该问题的定义已经可以在很多文章中查到。为了本文的完整性,我们首先转述对 问题的定义。 定义1称 , , , , 是加标多级图(labeled multistage graph),如果满足以下条件: 1. 为顶点集合, ∪ ∪ ∪?∪ , ∩ ?,0 , , 。如果 ∈ ,0 ,称 所在级为 级,也称 是 级的顶点。 称为 的级。 2. 为边的集合, 中的边均为有向边,它用三元组? , , ?表示。如果? , , ?∈ ,1 ,则 ∈ , ∈ 。称? , , ?为 的第l级的边。 3. 和 都只包含唯一顶点。称 中的唯一顶点为源点,记为 ,称 中的唯一顶点为汇点,记为 。 4. 对每个顶点 ∈ ,都有一个边集 ( )作为标记, ( )? 。称 ( )为 的边集。 例如,图1所示的两个图,都是加标多级图。各个顶点的边集的一组可能的取值定义如下。对左边的图, (1) , (2) , (3) , , , , (4) , , , (5) , , , (6) , , , , (7) , (8) , , , , ( ) , , , , 。对右边的图, (1) ?, (2) ?, (3) ?, (4) , , , (5) , , , (6) , , , (7) (7 ) , , , , (8) , , , , ( ) ?。 定义2设 , , , , 是一个加标多级图, ? ? (1 , )是 中一**Please visit https://www.360docs.net/doc/061238052.html,/u/1423845304 for revision information

多项式的乘法练习试题一

单元测验 一、判断题1.x 5·x 5=2x 5.( )2.a 2·a 3=a 6.( ) 3.( 21 xy 2)3=2 1x 3y 6.( )二、填空题(每小题2分,共20分) 2.(-b )2·(-b )3·(-b )5= . 3.3. -2a (3a -4b )= . 4. (9x +4)(2x -1)= . 5. (3x +5y )· = 9x 2-25y 2. 6. (x +y )2- = (x -y )2. 7. 若x 2+x +m 是一个完全平方式,则m = . 8. 若2x +y =3,则4x ·2y = . 9.若x (y -1)-y (x -1)=4, 则2 2 2y x -xy = . 10. 若m 2+m -1=0,则m 3+2m 2+2001= . 三、选择题(每小题3分,共24分) 1. 下列计算正确的是( ) A.2x 3·3x 4=5x 7 B.3x 3·4x 3=12x 3 C.2a 3+3a 3=5a 6 D.4a 3·2a 2=8a 5 2. 下列多项式中是完全平方式的是( ) A.2x 2+4x -4 B.16x 2-8y 2+1 C.9a 2-12a +4 D.x 2y 2+2xy +y 2 4. 两个连续奇数的平方差是( ) A. 6的倍数 B. 8的倍数 C. 12的倍数 D. 16的倍数

5. 已知x +y =7,xy =-8,下列各式计算结果不正确的是( ) A. (x -y )2=81 B. x 2+y 2=65 C. x 2+y 2=33 D. x 2-y 2=±63 7. (-135)1997×(-253 )1997等于( ) A.-1 B.1 C.0 D.1997 8. 已知a -b =3,那么a 3-b 3-9ab 的值是( ) A.3 B.9 C.27 D.81 四、计算(每小题5分,共20分) 1.(x -2)2(x +2)2·(x 2+4) 2. 2.(5x +3y )(3y -5x )-(4x -y )(4y +x ) 五、解方程(组)(每小题5分,共10分) (3x +2)(x-1)=3(x +1)(x +1) 六、求值题(每小题5分,共10分) 1.已知(x -y )2=6 x +y =5求xy 的值. 3.(a -b )2=(a +b )2+_____. 4.化简:4(a +b )+2(a +b )-5(a +b )=_____. 5.x +y =-3,则32-2x -2y =_____. 12.若3x =12,3y =4,则27x -y =_____. 6.(x +2)(3x -a )的一次项系数为-5,则a =_____.

多项式乘以多项式及乘法公式习题

多项式乘以多项式及乘法公式 副标题 一、选择题(本大题共12小题,共36.0分) 1.若(x-1)(x+3)=x2+mx+n,则m+n=() A.-1 B.-2 C.-3 D.2 2.若,则p、q的值为() A.p=-3,q=-10 B.p=-3, q=10 C.p=7,q=-10 D.p=7,q=10 3.若代数式的结果中不含字母x的一次项,那么a的值是 A.0 B.2 C. D.- 4.(x-2)(x+3)的运算的结果是() A.x2-6 B.x2+6 C.x2-5x-6 D.x2+x-6 5. 如果(x+1)(x2-5ax+a)的乘积中不含x2项,则a为() A. B. - C. -5 D. 5 6.若代数式x2+kxy+9y2是完全平方式,则k的值是() A.3 B.±3 C.6 D.±6 7.9x2-mxy+16y2是一个完全平方式,那么m的值是() A.12 B.-12 C.±12 D.±24 8.下列多项式乘法,能用平方差公式计算的是() A.(-3x-2)(3x+2) B.(-a-b)(-b+a) C.(-3x+2)(2-3x) D.(3x+2)(2x-3)

9.若x2-nx+16是一个完全平方式,则n等于( ) A.4 B.±4 C.8 D.±8 10. 若 -ax+x2是一个完全平方式,则常数a的值为() A. B. C. 1 D. ±1 11. 已知,,则的值为() A.7 B.5 C.3 D.1 12. 下列各式能用平方差公式计算的是() ①② ③④ A.①② B.②③ C.①③ D.③④ 二、填空题(本大题共7小题,共21.0分) 13.若(x-5)(x+20)=x2+mx+n,则m= ______ ,n= ______ . 14.已知(x-1)(x+3)=ax2+bx+c,则代数式9a-3b+c的值为 ______ . 15.在x+p与x2﹣2x+1的积中不含x,则p的值为. 16.多项式x2-6x+9因式分解的结果为________. 17.(2a-b)(-2a-b)= ______ ;(3x+5y)( ______ )=25y2-9x2. 18.已知,那么. 19.若是一个完全平方式,则▲ . 三、计算题(本大题共7小题,共42.0分) 20.若(x2+mx-8)(x2-3x+n)的展开式中不含x2和x3项,求m和n的值. 21.

多项式的乘法练习题

多项式乘多项式:(a+b)(c+d)= (x+a)(x+b)= 平方差公式: (a+b)(a-b)= 完全平方公式:(a+b)2= (a-b)2= 1.化简()()()a b c b c a c a b ---+-的结果是( ) A .222ab bc ac ++ B .22ab bc - C .2ab D .2bc - 2.下列各式中计算错误的是( ) A .3 4 2 2(231)462x x x x x x -+-=+- B .2 3 2 (1)b b b b b b -+=-+ C .231 (22)2 x x x x - -=-- D . 342232(31)2323 x x x x x x -+=-+ 3.若(8×106)(5×102)(2×10)=M ×10a ,则M 、a 的值为( ) A .M =8,a =8 B .M =8,a =10 C .M =2,a =9 D .M =5,a =10 4、若2x 2+5x +1=a (x +1)2+b (x +1)+c ,那么a ,b ,c 应为( ) A .a =2,b =-2,c =-1 B .a =2,b =2,c =-1 C .a =2,b =1,c =-2 D .a =2,b =-1,c =2 5、.若))((b x a x +-的乘积中不含x 的一次项,则b a ,的关系是( ) A.互为倒数 B.相等 C.互为相反数 D.b a ,都为0 6、.下列各式中,不能用平方差公式计算的是( ) A.)43)(34(x y y x --- B.)2)(2(2 222y x y x +- C.))((a b c c b a +---+ D.))((y x y x -+- 7、.下列各式中,相等关系一定成立的是 ( ) A 、22)()(x y y x -=- B 、6)6)(6(2 -=-+x x x C 、2 22)(y x y x +=+ D 、)6)(2()2()2(6--=-+-x x x x x 8.若9x 2+4y 2=(3x +2y )2+M ,则 M 为( ) A .6xy B .-6xy C .12xy D .-12xy 9.下列等式不能恒成立的是( ) A .(3x -y )2=9x 2-6xy +y 2 B .(a +b -c )2=(c -a -b )2 C .(0.5m -n )2=0.25m 2-mn +n 2 D .(x -y )(x +y )(x 2-y 2)=x 4-y 4 10、已知(x+3)(x-2)=x 2 +ax+b ,则a 、b 的值分别是( ) A .a=-1,b=-6 B .a=1,b=-6 C .a=-1,b=6 D .a=1,b=6 11. 观察下列算式:12=2,22=4,32=8,42=16,52=32,62=64,72=128,8 2=256,…… 根据其规律可知10 8的末位数是( ) A 、2 B 、4 C 、6 D 、8

201x版七年级数学下册 第9章 从面积到乘法公式 9.3 多项式乘多项式教案 苏科版

2019版七年级数学下册 第9章 从面积到乘法公式 9.3 多项式乘多项式教案 (新版)苏科版 教学目标: 1.理解多项式乘多项式运算的算理,会进行多项式乘多项式的运算(仅指一次式之间以及一次式与二次式之间相乘); 2.经历探究多项式乘多项式运算法则的过程,感悟数与形的关系,体验转化思想,知道使用符号可 以进行运算和推理,得到的结论具有一般性. 教学重点:多项式乘多项式的运算法则. 教学难点:利用单项式乘多项式的运算法则来推导多项式乘多项式的运算法则. 教学方法: 教学过程: 一.【情景创设】 提问:前面已经学习了单项式乘单项式,单项式乘多项式,那多项式乘多项式如:))((d c b a ++应该如何计算? 二.【问题探究】 活动一.(1)请计算下图的面积,你有哪些不同的方法?并把你的算法与同学交流. (2)将学生汇报的四个式子进行组合,得到下面两个式子: )((d c b a ++)()(d c b d c a +++= bd bc ad ac +++. ))((d c b a ++)()(b a d b a c +++= bd ad bc ac +++=. a c b d

提问:观察两个等式,对于))((d c b a ++的计算有何新的想法? 活动二.(1)引导学生发现运算过程,也可以表示为: ))((d c b a ++bd b c a d ac +++= (2)思考:多项式乘多项式应该如何计算? (3)得出法则:多项式与多项式相乘,先用一个多项式的每一项乘另一个多项式的每一项,再把所得的积相加. 问题1 计算.(1))3)(2(-+x x (2))2)(13(--x x 问题2计算.(1))2)(3(n m n m -+; (2))2)(1(++n n n 问题3填空. (1)若n mx x x x ++=+-2)7)(4(,则____,==n m . (2)若2,1-==-ab b a ,则________)1)(1(=-+b a . 三【变式拓展】 问题4问题4计算:2)(b a + 问题5(2)若)3)(8(22q x x px x +-++的乘积中不含x 2与x 3的项,求p 、q 的值.

相关文档
最新文档