苏教版高中数学必修三知识讲解_算法案例_提高
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
算法案例
::
【学习目标】
1.理解辗转相除法与更相减损术中蕴含的数学原理,并能根据这些原理进行算法分析;
2.基本能根据算法语句与程序框图的知识设计完整的程序框图并写出算法程序;
3.了解秦九韶算法的计算过程,并理解利用秦九韶算法可以减少计算次数提高计算效率的实质;
4.了解各种进位制与十进制之间转换的规律,会利用各种进位制与十进制之间的联系进行各种进位制之间的转换.
【要点梳理】
要点一:辗转相除法
也叫欧几里德算法,它是由欧几里德在公元前300年左右首先提出的.利用辗转相除法求最大公约数的步骤如下:
第一步:用较大的数m除以较小的数n得到一个商q0和一个余数r0;
第二步:若r0=0,则n为m,n的最大公约数;若r0≠0,则用除数n除以余数r0得到一个商q1和一个余数r1;
第三步:若r1=0,则r0为m,n的最大公约数;若r1≠0,则用除数r0除以余数r1得到一个商q2和一个余数r2;
……
依次计算直至r n=0,此时所得到的r n-1即为所求的最大公约数.
用辗转相除法求最大公约数的程序框图为:
INPUT “m=”;m
INPUT “n=”;n
IF m x=m m=n n=x END IF r=m MOD n WHILE r<>0 r=m MOD n m=n n=r WEND PRINT n END 要点诠释: 辗转相除法的基本步骤是用较大的数除以较小的数,考虑到算法中的赋值语句可以对同一变量多次赋值,我们可以把较大的数用变量m 表示,把较小的数用变量n 表示,这样式子)0(n r r q n m <≤+⋅=就是一个反复执行的步骤,因此可以用循环结构实现算法. 要点二:更相减损术 我国早期也有解决求最大公约数问题的算法,就是更相减损术. 更相减损术求最大公约数的步骤如下:可半者半之,不可半者,副置分母、子之数,以少减多,更相减损,求其等也.以等数约之. 翻译出来为: 第一步:任意给出两个正整数;判断它们是否都是偶数.若是,用2约简;若不是,执行第二步. 第二步:以较大的数减去较小的数,接着把较小的数与所得的差比较,并以大数减小数.继续这个操作,直到所得的数相等为止,则这个数(等数)就是所求的最大公约数. 理论依据: 由r b a r b a +=→=-,得b a ,与r b ,有相同的公约数 更相减损术一般算法: 第一步,输入两个正整数)(,b a b a >; 第二步,如果b a ≠,则执行3S ,否则转到5S ; 第三步,将b a -的值赋予r ; 第四步,若r b >,则把b 赋予a ,把r 赋予b ,否则把r 赋予a ,重新执行2S ; 第五步,输出最大公约数b . 程序: INPUT “a=”,a INPUT “b=”,b WHILE a<>b IF a>=b ELSE b=b-a WEND END PRINT b 或者 INPUT “请输入两个不相等的正整数”;a ,b i=0 WHILE a MOD 2=0 AND b MOD 2=0 a=a/2 b=b/2 i=i+1 WEND DO