收藏 分享(赏)

程序框图 案例.doc

上传人:dcs1276 文档编号:6076725 上传时间:2019-03-26 格式:DOC 页数:14 大小:504KB
下载 相关 举报
程序框图 案例.doc_第1页
第1页 / 共14页
程序框图 案例.doc_第2页
第2页 / 共14页
程序框图 案例.doc_第3页
第3页 / 共14页
程序框图 案例.doc_第4页
第4页 / 共14页
程序框图 案例.doc_第5页
第5页 / 共14页
点击查看更多>>
资源描述

1、1算法案例(一)辗转相除法与更相减损术1.短除法求两个正整数的最大公约数的步骤:先用两个数公有的质因数连续去除,一直除到所有的商是两个互质的数为止,然后把所有的处暑连乘起来.2.穷举法(也叫枚举法)穷举法求两个正整数的最大公约数的解题步骤:从两个较小的数开始由大到小列举,直到找到公约数立即中断列举,得到的公约数便是最大公约数.3.辗转相除法(1)辗转相除法:该算法又称欧几里得算法,就是对于给定的两个正整数,用较大的数除以较小的数,若余数不为零,则将余数和较小的数构成一对新数,继续上面的除法,直到余数为零,此时处暑就是所求两正整数的最大公约数.(2)算法步骤:以求正整数 的最大公约数为例.nm,

2、第一步,输入两个正整数 .第二步,判断 的大小,让 表示较大的数, 表示较小的数.n第三步,计算 除以 的余数.第四步,让 .rn,第五步,如果 ,则 的最大公约数等于 ;否则返回第三步.0m2(3)辗转相除法的程序框图及程序程序框图:程序:INPUT “m=”;mINPUT “n=”;nIF mn THEN x=mm=nn=xEND IFr=m MOD nWHILE rnx=nn=mm=xN m=nn=r3(4)程序 1 为:INPUT “m,n=”;m,nIF m0r=m MOD nm=nn=rWENDPRINT mEND4.更项减损术(1)更项减损术:我国早期也有解决求最大公约数问题的算

3、法,就是更相减损术.九章算术是中国古代的数学专著,其中的“更相减损术”也可以来用来求两个数的最大公约数,即“可半者半之,不可半者,副置分母、子子之数,以少减多,更相减损,求其等也.以等数约之.”(2)算法步骤:第一步,任意给定两个正整数,判断它们是否都是偶数,若是,用 约简之;若不是,执2行第二步.第二步,以较大的数减去较小的数,接着把所得的差与较小的数比较,并以大数减去小数,继续这个操作,直到所得的数相等为止.则这个数(等数)或这个数与约简数的乘积就是所求的最大公约数.(3)程序框图为:略4(4)程序为:INPUT “m,n=”;m,nIF mnIF dn THENm=dELSEm=nn=d

4、END IFd=m-nWENDd=2k*dPRINT dEND5(二)秦九韶算法1.怎么求多项式 当 时的值?1)(2345xxf 5一个自然的做法是把 代入多项式 ,急速各项的值,然后把它们加起来,这时,我)(f们一共做了 次乘法运算, 次加法运算.10321另一种算法是先计算 的值,然后计算 的值,这2 xx )(,),22样每次都可以利用上一次计算的结构,这时,我们一共做了 次乘法运算, 次加法运45算.第二种做法与第一种做法相比,乘法的运算此时减少了,因而能够提高运算效率,对于计算机来说,做一次乘法运算所用的时间比做一次加法运算要长得多,所以采用第二种算法,计算机能更快地得到结果.2.

5、求多项式 的值时,常用秦九韶算法,这种算011)( axxaxfnn法的运算次数较少,是多项式求值比较先进的算法,其实质是转化为求 个一次多项式n的值,共进行 次乘法运算和 次加法运算.3.秦九韶算法(1)改写多项式:011)( axxaxfnn012213221 )()axaxaxnnnn 设 ,1v,22n,33.01axn(2)算法步骤:第一步,输入多项式次数 ,最高次项的系数 和 的值.nnax第二步, .,ivn第三步,输入 次项的系数 .ia第四步, .1,xi第五步,判断 是否大于等于 ,若是,则返回第三步;否则,输出多项式的值 .0 v6(3)程序框图为:略(4)程序为:INP

6、UT “n=”;nINPUT “an=”;aINPUT “x=”;xv=ai=n-1WHILE i=0PRINT “i=”;iINPUT “ai=”;av=v*x+ai=i-1WENDPRINT vEND7(三)进位制算法1.定义:人们为了计数和运算方面而约定的计数系统,“满 进一”就是 进制, 是kk基数(其中 是大于 的整数). 进制的数可以表示为一串数字连写在一起的k1k形式. ),0,( 01)0 aaannkn 2.在日常生活中,我们最熟悉、最常用的是十进制.除此之外还有二进制,七进制,八进制,十二进制,十六进制,六十进制等.3.非十进制的 进制数 (共有 位)化为十进制数 的计算公

7、式为:kb011(01 akkaannkn (1)算法步骤:第一步,输入 的值.,第二步, .ib第三步, .1,1ikai第四步,判断 是否成立,若是,则执行第五步;否则,返回第三步.n第五步,输出 的值.(2)程序框图为:略(3)程序为:INPUT “a,k,n=”;a,k,nb=0i=1t=a MOD 10DOb=b+t*k(i-1)a=a10t= a MOD 10i=i+1LOOP UNTIL inPRINT bEND84.十进制数 转化为非十进制的 进制数 的方法akb(1)算法步骤:第一步,输入 的值.,第二步,求出 除以 所得的商 ,余数 .qr第三步,若 ,则 ,返回第二步;否

8、则执行第四步.0qa第四步,将依次得到的余数从右到左排列,得到 进制数.k(2)程序框图为:略(3)程序为:INPUT “a,k=”;a,nb=0i=0DOq=akr=a MOD kb=b+r*10ii=i+1LOOP UNTIL q=0PRINT bEND9三、典例剖析(一)辗转相除法与更项减损术例 1 分别用辗转相除法和更相减损术求 与 的最大公约数.20485解: (1)辗转相除法第一步, 385204第二步, 17第三步, 3因此, 是 与 的最大公约数.17(2)更相减损术第一步, ,19852043485第二步, ,37第三步, 7因此, 是 与 的最大公约数.1点评: 更相减损术

9、与辗转相除法的比较:尽管两种算法分别来源于东西方古代数学专著,但是二者的算理却是相似的,右异曲同工之妙. 主要区别在于辗转相除法进行的是出发运算,即辗转相除;而更相减损术进行的是减法运算 ,即辗转相减,但是实质都是一个不断的递归过程.例 2 请用辗转相除法和更相减损术求 和 的最大公约数.173486解:(1)辗转相除法第一步, 02861734第二步,因此, 是 和 的最大公约数.02(2)更相减损术第一步,因为两个数皆为偶数,首先除以 得到 ,在求这两个数的最大240867公约数第二步, ,45908675108第三步, ,3137第四步, ,224第五步, ,第六步, 因此, 是 和 的

10、最大公约数. 501057381610例 3 用辗转相除法和更相减损术求三个数 的最大公约数.135,24解:(1)辗转相除法,8124383则 与 的最大公约数为又 , ,512745则 与 的最大公约数为因此,三个数 的最大公约数为 .13,24(2)更相减损术, ,8326812则 与 的最大公约数为 8又 , ,5417754则 与 的最大公约数为因此,三个数 的最大公约数为 .3,22练习: 1.用辗转相除法求 和 的最大公约数.(答案: )832.用更相减损术求 和 的最大公约数.(答案: )0643.求 的最大公约数.(答案: )1,379911(二)秦九韶算法例 1 已知 次多

11、项式 ,如果在一种算法中,计n nnn axxaxP110)(算 的值需要 次乘法,计算 的值共需要 次运算(,43,2(0kx k)(03P9次乘法 次加法),那么计算 的值需要_次运算.下面给出一种6)(01减少运算次数的算法: , .利0) )1,21 nkkk 用该算法,计算 的值共需要 次运算,计算 的值共需要_次运(3x6)(0x算.答案: 20,65点评: 秦九韶算法使用一般的多项式 的求值011)( axxaxfnn问题.直接法乘法运算的次数最多可到达 ,加法最多 次.秦九韶算法2)(通过转化把乘法运算的次数减少到最多 次,加法最多 次.例 2 已知一个 次多项式为 ,用秦九5

12、 8.07165.35)( 24 xxxf韶算法求这个多项式当 时的值.解: 根据秦九韶算法,把多项式改写成如下形式:8.0)7.16.2).32() xxf按照从内到外的顺序,一次计算一次多项式当 时的值:5x, , ,50v71.3.2v,9.838 2414150245所以,当 时,多项式的值为x.点评: 如果多项式函数中又缺项的画,要以系数为 的项补齐后再计算.0练习: 1.已知多项式函数 ,求 .763452)(2xxxf )5(f2.当 时,用秦九韶算法求多项式2x的值.138)(45f3.用秦九韶算法求多项式 当xf 24567)(时的值.3答案: 1. ; 2. ; 3.267

13、212例 3 某城市 2001 年末汽车保有量为 万辆,预计此后每年报废上一年末汽车保有量30的 ,并且每年新增汽车 万辆.设计算法,计算经过多少年可使汽车保有量达%6到 万辆.将此算法用程序语言给出.40解:设 ,经过几年的汽车保有量为 ,则94.1c na3ba013)(02ca 3c)(0an 上述各式充分说明了秦九韶算法的优点:可以通过递推关系 进行迭31can代处理.程序为:C=0.94A=30n=0WHILE A40A=A*C+3n=n+1WENDPRINT nEND13(三)进位制算法例 1 (1)二进制数 用十进制表示是( )210A. B. C. D.7654(2)十进制数

14、用二进制表示是( )8A. B. C. D.1010答案: (1) C (2) A例 2 (1)一斤半的东西,用现在的 两制(即 两等于 斤 )计是 两,若按过去的 516两制(即 两等于 斤)计是_两.16(2)现在最常用的十进制是逢十进一,而用角度制度量角时,却是是逢六十进一.在角度制中, 度 分等于_分.2答案: (1) (2) 43例 3 (1)把二进制数 化为十进制数.)2(10(2)把 转化为二进制数.89解: (1) 5121200345)2( (2) 410所以 )2(89例 4 (1)将八进制数 化为十进制数,并编写出一个实现算法的程序.)8(31476(2)把十进制数 化为三进制数,并写出程序语句.解:(1) 104928608740 1235)8( 程序略(可参加把 进制数转化为十进制数的一般方法)k(2) 2939110所以 )3(08程序略(可参加把十进制数转化为 进制数的一般方法)k14练习: 1.将十进制数 转化为二进制数.342.把 分别转化为十进制数和八进制数.)5(123.完成下列进位制的转换(1) _ _ _)10( )2( )6( )8(2) _ _ _210416答案: 1. ; 2. ; )2(1034 )8()10()5(3294133. 86)(5)1()4()10(2

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 法律法学 > 理论/案例

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报