数学算法学习.pptx





《数学算法学习.pptx》由会员分享,可在线阅读,更多相关《数学算法学习.pptx(31页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、例:求下面两个正整数的最大公约数:例:求下面两个正整数的最大公约数:(1)求)求25和和35的最大公约数的最大公约数(2)求)求49和和63的最大公约数的最大公约数25(1)5535749(2)77639所以,25和35的最大公约数为5所以,49和63的最大公约数为7思考:除了用这种方法外还有没有其它方法?例:如何算出8251和6105的最大公约数?辗转相除法与更相减损术第1页/共31页一、辗转相除法(欧几里得算法)一、辗转相除法(欧几里得算法)1、定义:、定义:所谓辗转相除法,就是对于给定的两个数,用较大的数除以所谓辗转相除法,就是对于给定的两个数,用较大的数除以较小的数。若余数不为零,则将
2、余数和较小的数构成新的一对数,继续较小的数。若余数不为零,则将余数和较小的数构成新的一对数,继续上面的除法,直到大数被小数除尽,则这时较小的数就是原来两个数的上面的除法,直到大数被小数除尽,则这时较小的数就是原来两个数的最大公约数。最大公约数。2、步骤、步骤(以求(以求8251和和6105的最大公约数的过程为例)的最大公约数的过程为例)第一步 用两数中较大的数除以较小的数,求得商和余数8251=61051+2146结论:8251和6105的公约数就是6105和2146的公约数,求8251和6105的最大公约数,只要求出6105和2146的公约数就可以了。第二步 对6105和2146重复第一步的
3、做法6105=21462+1813同理6105和2146的最大公约数也是2146和1813的最大公约数。第2页/共31页完整的过程完整的过程8251=61051+2146 6105=21462+1813 2146=18131+3331813=3335+148333=1482+37148=374+0例:用辗转相除法求225和135的最大公约数225=1351+90135=901+4590=452显然显然37是是148和和37的最大的最大公约数,也就是公约数,也就是8251和和6105的最大公约数的最大公约数 显然显然45是是90和和45的最大公约数,的最大公约数,也就是也就是225和和135的最
4、大公约数的最大公约数 思考:从上面的两个例子中可以看出计算的规律是什么?S1:用大数除以小数:用大数除以小数S2:除数变成被除数,余数:除数变成被除数,余数变成除数变成除数S3:重复:重复S1,直到余数为,直到余数为0第3页/共31页 辗转相除法是一个反复执行直到余数等于0才停止的步骤,这实际上是一个循环结构。m=n q r用程序框图表示出右边的过程用程序框图表示出右边的过程r=m MOD nm=nn=rr=0?是否8251=61051+2146 6105=21462+1813 2146=18131+3331813=3335+148333=1482+37148=374+0思考:辗转相除法中的关
5、键步骤是哪种逻辑结构?第4页/共31页程序框图:程序框图:开始开始输入输入m,n r=m MOD n m=nr=0?是是否否 n=r 输出输出m结束结束思考:你能把辗转相除法编成一个计算机程序吗?第5页/共31页程序:程序:INPUT “m,n=”;m,nDO r=m MOD n m=n n=rLOOP UNTIL r=0PRINT mEND第6页/共31页1.定义:定义:所谓更相减损术,就是对于给定的两个数,用较大的数减去较所谓更相减损术,就是对于给定的两个数,用较大的数减去较小的数,然后将差和较小的数构成新的一对数,再用较大的数减去较小小的数,然后将差和较小的数构成新的一对数,再用较大的数
6、减去较小的数,反复执行此步骤直到差数和较小的数相等,此时相等的两数便为的数,反复执行此步骤直到差数和较小的数相等,此时相等的两数便为原来两个数的最大公约数。原来两个数的最大公约数。二、更相减损术二、更相减损术2、方法:、方法:例例:用更相减损术求用更相减损术求9898与与6363的最大公约数的最大公约数.解:由于解:由于6363不是偶数,把不是偶数,把9898和和6363以大数减小数,并辗转相减以大数减小数,并辗转相减 989863633535636335352828353528287 728287 7212121217 7141414147 77 7所以,所以,9898和和6363的最大公约
7、数等于的最大公约数等于7 7 第7页/共31页INPUT m,nIF mn THEN a=m m=n n=aEND IFK=0WHILE m MOD 2=0 AND n MOD 2=0 m=m/2 n=n/2 k=k+1WENDd=m-nWHILE dn IF dn THEN m=d ELSE m=n n=d END IF d=m-nWENDd=2 k*dPRINT dEND思考:你能根据更相减损术设计程序,求两个正整数的最大公约数吗?第8页/共31页(1)设计求多项式当x=5时的值的算法,并写出程序。(2)有没有更高效的算法?能否探求更好的算法,来解决任意多项式的求解问题?三、秦九韶算法引导
8、学生把多项式变形为:思考:从内到外,如果把每一个括号都看成一个常数,那么变形后的式子中有哪些“一次式”?x的系数依次是什么?第9页/共31页(3)若将x的值代入变形后的式子中,那么求值的计算过程是怎样的?将变形前x的系数乘以x的值,加上变形前的第2个系数,得到一个新的系数;将此系数继续乘以x的值,再加上变形前的第3个系数,又得到一个新的系数;继续对新系数做上面的变换,直到与变形前的最后一个系数相加,得到一个新的系数为止。这个系数即为所求多项式的值。这种算法即是“秦九韶算法”(4)用秦九韶算法求多项式的值,与多项式组成有直接关系吗?用秦九韶算法计算上述多项式的值,需要多少次乘法运算和多少次加法运
9、算?计算只与多项式的系数有关,第10页/共31页数书九章秦九韶算法设设是一个是一个n 次的多项式次的多项式对该多项式按下面的方式进行改写:对该多项式按下面的方式进行改写:这是怎样的一种改写方式?最后的结果是什么?第11页/共31页要求多项式的值,应该先算最内层的一次多项式的值,即要求多项式的值,应该先算最内层的一次多项式的值,即然后,由内到外逐层计算一次多项式的值,即然后,由内到外逐层计算一次多项式的值,即最后的一最后的一项是什么项是什么?这种将求一个这种将求一个n次多项式次多项式f(x)的值转化成求的值转化成求n个一个一次多项式的值的方法,称为次多项式的值的方法,称为秦九韶算法秦九韶算法。第
10、12页/共31页程序框图:程序框图:这是一个在这是一个在秦九韶算法中反复执行秦九韶算法中反复执行的步骤,因此可用循环结构来实现。的步骤,因此可用循环结构来实现。输入输入ai开始开始输入输入n,an,xi=0?输出输出v结束结束v=vx+aii=i-1YNi=n-1V=an秦九韶算法的特点:秦九韶算法的特点:通过一次式的反复计算,逐步得出高通过一次式的反复计算,逐步得出高次多项式的值,对于一个次多项式的值,对于一个n次多项式,只需次多项式,只需做做n次乘法和次乘法和n次加法即可。次加法即可。第13页/共31页程序:程序:INPUT “n=”;nINPUT“an=“;aINPUT“x=“;xv=a
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数学 算法 学习

限制150内