算法合集之多项式乘法课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《算法合集之多项式乘法课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 算法 多项式 乘法 课件
- 资源描述:
-
1、引言引言 多项式是最基本的数学工具之一,由于其形式简单,且易于多项式是最基本的数学工具之一,由于其形式简单,且易于用计算机对其进行各种计算,在当今的社会中应用越来越广。不用计算机对其进行各种计算,在当今的社会中应用越来越广。不仅在像仅在像MapleMaple这样的数学软件中有着举足轻重的作用,在工程、这样的数学软件中有着举足轻重的作用,在工程、信息等诸多领域中都有着广阔的应用。信息等诸多领域中都有着广阔的应用。 2341ln(1)( 1)234nnxxxxxxn 35721sin( 1)3!5!7!(21)!nnxxxxxxn 2462cos1(1)2 !4 !6 !(2)!nnxxxxxn
2、下面我们给出几个多项式逼近的例子:下面我们给出几个多项式逼近的例子:多项式的基本运算多项式的基本运算 加法运算2012( )nnf xaa xa xa x0121*(*(*(* ) )nnaxaxaxax a 求值运算 乘法运算普通的多项式乘法运算普通的多项式乘法运算 多项式乘法是一个很常见的问题,在通常多项式乘法是一个很常见的问题,在通常的算法中,两个的算法中,两个 次多项式的乘法需要用次多项式的乘法需要用 的时间才能完成。的时间才能完成。n2()O n 让我们先来看一看这样的算法是如何进行的:让我们先来看一看这样的算法是如何进行的: 1110.nnnna xaxa xa1110.nnnnb
3、 xbxb xb*101 01 00 0.nnnna b xa b xab x a b121111110.nnnna b xab xa b xa b x. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2110.nnnnnnna b xa b xa b x2111 00 10010.()nnnnnnnnkkn kkkka b xab xab xa ba b xa b 在上面的过程中,似乎我们觉得这个算法并没有做任何多在上面的过程中,似乎我们觉得这个算法并没有做任何多余的事情,因为我们必须考虑每一组余的事情,
4、因为我们必须考虑每一组 , ,它们的乘积对最终它们的乘积对最终的结果都会产生影响。而且我们不能通过调整计算顺序从根本的结果都会产生影响。而且我们不能通过调整计算顺序从根本上降低算法时间复杂度,至多只能使其常数因子稍小一些。上降低算法时间复杂度,至多只能使其常数因子稍小一些。ija b 如果我们不能跳出以上思维的局限,我们就不可能在根本如果我们不能跳出以上思维的局限,我们就不可能在根本上降低算法的时间复杂度。上降低算法的时间复杂度。 让我们首先换一个角度来考察多项式。让我们首先换一个角度来考察多项式。多项式的点值表示法多项式的点值表示法 首先让我们来看多项式的另一种表示方法:点值表示法首先让我们
5、来看多项式的另一种表示方法:点值表示法, ,即用即用 (其中,(其中, 互不互不相同)来表示一个不超过相同)来表示一个不超过 次多项式。次多项式。 00112,211( ,),( , ),(),.,(,)nnx yx yx yxy( ),iiif xy x1n 给定一个多项式,要给出给定一个多项式,要给出n n组点值对最简单的方法是任组点值对最简单的方法是任选选 n n个互不相同的个互不相同的x xi i,依次求出多项式在这,依次求出多项式在这n n个点的值。个点的值。 用用n n个点值对也可以唯一确定一个不超过个点值对也可以唯一确定一个不超过n-1n-1次多项式,次多项式,这个过程称之为这个
6、过程称之为插值插值。引理引理1 1(多项式插值的唯一性)(多项式插值的唯一性) 对于任意对于任意n n个点值对组成的集合个点值对组成的集合, , 其中其中 互不互不相同,则存在唯一的次数不超过相同,则存在唯一的次数不超过n-1n-1的多的多项式项式 ,满足,满足 001111(,),( ,),.(,)nnx yx yxy011,.,nxxx( )A x()kkyA x0,1,.,1kncontinue210121( ).nnA xaa xa xax(),(0,1,.,1)kkA yxkn210000021111112111111111nnnnnnnnayxxxayxxxayxxx 存在性存在性
7、:已知已知不妨记为不妨记为XA=Y1AX Y1?XX X是范德蒙矩阵,利用行列式的变换可得是范德蒙矩阵,利用行列式的变换可得该矩阵的行列式的值为该矩阵的行列式的值为 ()0kjjkxx因此因此X X有逆矩阵有逆矩阵 。1X唯一性:唯一性: 若两个函数次数不超过若两个函数次数不超过n-1n-1次的多项式次的多项式 均符合题意,则多项式均符合题意,则多项式 有有n n个根,个根, 且且 为不超过为不超过n-1n-1次的多项式,所以次的多项式,所以 , , 即即 。 ( ), ( )f x g x( )( )( )r xf xg x( )r x( )0r x ( )( )fxg xback点值多项式
8、的乘法点值多项式的乘法 ( )( )* ( )r xf xg x)(*)()(iiixgxfxr因此:因此: 适当的利用点值表示可以使适当的利用点值表示可以使多项式的乘法可以在线性时间内完成!多项式的乘法可以在线性时间内完成!( , )iix r( ,)iixf( ,)iix g*iiirfg 因为因为f(x)g(x)f(x)g(x)的次数为的次数为n-1n-1,r(x)r(x)的次的次数为数为2n-2,2n-2,因此确定因此确定r(x)r(x)需要需要2n-12n-1个点值对,个点值对,而现在我们只有而现在我们只有n n个点值对。个点值对。 我们可以通过对我们可以通过对f(x)f(x)与与g
9、(x)g(x)的点值对个数的点值对个数的的 扩充来解决这个问题,即将扩充来解决这个问题,即将f(x),g(xf(x),g(x)的)的点值对在一开始就取为点值对在一开始就取为2n-12n-1。利用点值表示法改善多项式系数利用点值表示法改善多项式系数表示法的乘法表示法的乘法 下面让我们来看一看我们是否能够利用点值表示法在计下面让我们来看一看我们是否能够利用点值表示法在计 算多项式乘法时的线性时间来提高系数表示法的多项式乘算多项式乘法时的线性时间来提高系数表示法的多项式乘 法的速度。法的速度。 为了做到这一点,我们需要做:为了做到这一点,我们需要做: 将多项式由系数表示法转化为点值表示法将多项式由系
10、数表示法转化为点值表示法( (点值过程)点值过程) 利用点值表示法完成多项式乘法利用点值表示法完成多项式乘法 将点值表示法再转化为系数表示法将点值表示法再转化为系数表示法(插值过程)(插值过程) 其中第二步只需要线性时间。问题的关键转化为第一其中第二步只需要线性时间。问题的关键转化为第一 第三步。第三步。continue2continue1continue31.1.由系数表示法转化为点值表示法。由系数表示法转化为点值表示法。(点值过程)(点值过程) ( )iixf x12310( )(.()*).)*inininif xaxaxaaxa 注意!注意!x x0 0,x,x1 1, ,x,xn-1
11、n-1是由我们自己选择的,我们可以充是由我们自己选择的,我们可以充分利用这一点通过适当的选择使转化过程降为分利用这一点通过适当的选择使转化过程降为O(n log n)O(n log n)。 这里我们选择这里我们选择1 1的的n n次单位根作为次单位根作为x x0 0,x,x1 1, ,x,xn-1n-1,即即 011,.,nnnn222cossin.kiknnkkeinn其中其中(0,1,.,1)in引理引理2 2:对任何整数:对任何整数n=0,k=0,j0,n=0,k=0,j0,成立:成立:22kknn证明:证明:222 *22 *222cossincossin22kknnkkkkiinnn
12、n折半定理折半定理注意到,注意到, 中包含了中包含了f f中所有偶下标的系数,而中所有偶下标的系数,而 中包含了中包含了f f中所有奇下标的系数。中所有奇下标的系数。12220 0.)(nnxaxaaxf12131 1 .)(nnxaxaaxf0f1f)(*)()(2 1 20 xfxxfxf并记并记求求 与与 在点在点 的值。的值。 )(0 xf)(1xf212120)(,.,)( ,)(nnnn1011().()kkknnnnnfaaa问题:问题:求求0,1,.,1kn设设n n为偶数(否则可以通过添加高次零项使为偶数(否则可以通过添加高次零项使n n化为偶数)。化为偶数)。另一方面,由折
展开阅读全文