算法案例1——辗转相除法与更相减损术

合集下载

《算法案例-辗转相除法与更相减损术》(一)

《算法案例-辗转相除法与更相减损术》(一)

《算法案例-辗转相除法与更相减损术》(一)算法案例-辗转相除法与更相减损术算法,是指在确定性有限时间内,解决特定问题的一系列清晰指令。

辗转相除法和更相减损术,均为求解最大公约数问题的算法。

下面将分别介绍这两种算法的基本思想和实现方式。

一、辗转相除法辗转相除法,也叫欧几里得算法,是求两个正整数的最大公约数的一种方法。

其基本思想是:设两个正整数为 a 和 b (a > b),如果a%b = 0,则 b 即为两数的最大公约数;否则,a 和 b 的最大公约数就是 b 和 a%b 的最大公约数,即 gcd(a,b) = gcd(b,a%b)。

这一思想可以用代码实现:```int gcd(int a, int b){return b == 0 ? a : gcd(b, a % b);}```辗转相除法的优点在于其计算量比较小,并且只用到了简单的加减操作,适用于大数据处理的场景。

同时,其时间复杂度为 O(log a + log b),在实际使用中速度较快。

二、更相减损术更相减损术,也是用于求两个正整数的最大公约数的一种方法。

其基本思想是:设两个正整数为 a 和 b (a > b),则 a-b 可以得到一个差值,而这个差值与 b 的最大公约数,也是 a 和 b 的最大公约数。

但是,由于上面的操作导致了数字的不停减少,如果两个数字差距较大,会导致较长的计算时间且容易出现递归调用栈溢出。

因此,更相减损术需要进行优化。

这时,我们可以使用辗转相除法来缩小数字差距。

当 a 和 b 中有一个数大于等于另一个数的两倍时,我们可以使用辗转相除法把两个数尽可能的靠近,再进行更相减损术的操作。

更相减损术的代码实现如下:```int gcd(int a, int b){if (a == b) return a;if (a < b) return gcd(b, a);if ((a & 1) == 0 && (b & 1) == 0) return gcd(a >> 1, b >> 1) << 1;else if ((a & 1) == 0) return gcd(a >> 1, b);else if ((b & 1) == 0) return gcd(a, b >> 1);else return gcd(b, a - b);}```三、总结辗转相除法和更相减损术,都是基于整除法和减法的扩展,通过不停地迭代缩小数字大小,最终得到两个数字的最大公约数。

最新-§131辗转相除法与更相减损术 精品

最新-§131辗转相除法与更相减损术 精品

§ 1.3 算法案例1.3.1 辗转相除法与更相减损术【学法指导】1.学习要求:通过阅读中国古代数学中的算法案例——辗转相除法与更相减损术,体会中国古代数学对世界数学发展的贡献。

2.方法技巧:辗转相除法的理论依据是:由m nq r r m nq=+⇒=-得m,n与n,r有-=⇒=+,得a,b与b,r有相同的相同的公约数;更相减损术的理论依据是:由a b r a b r公约数,所以,它们有相同的理论依据,只不过一个用除法,另一个用减法表达罢了.3.误区警示:辗转相除法与更相减损术都是求最大公约数的方法,计算上辗转相除法以除法为主,更相减损术以减法为主,计算次数上辗转相除法计算次数相对较少,特别当两个数字大小区别较大时计算次数的区别较明显,辗转相除法比较适合于求两个比较大的数的公约数.【感受理解】1.两个整数372和684的最大公约数是()A.36 B. 12 C. 186 D. 5892.两个整数324和135的最大公约数是()A. 81 B. 54 C. 27 D. 93.用辗转相除法求294和84的最大公约数时,需要做除法的次数是()A.1 B.2 C.3 D.44.下列对辗转相除法的说法错误的是()A.辗转相除法也叫欧几里得算法,但比欧几里得算法早B.辗转相除法的基本步骤是用较大的数除以较小的数C.在对两个数求最大公约数时,除辗转相除法还有更相减损术D.在用辗转相除法时,需要用到循环语句编写【课后练习】5.用更相减损术求80与36的最大公约数是__________.6.用辗转相除法求459与357的最大公约数是________.7.分别利用辗转相除法和更相减损术求3869与6497的最大公约数。

8.根据上题中的方法,试编写一程序求两正整数,m n的最大公约数。

1.3.1 1.B.2.C.3.B.4.A.5.4。

6.51。

7.利用辗转相除法:6497386912628, 3869262811241, 262812412146, 1241146873,14673 2.7338696497=⨯+=⨯+=⨯+=⨯+=⨯即为与的最大公约数。

1.3 算法案例1---辗转相除法与更相减损术 8

1.3   算法案例1---辗转相除法与更相减损术 8

1.3 算法案例1.3 算法案例——案例1 辗转相除法与更相减损术8**学习目标**1.理解辗转相除法与更相减损术求最大公约数的方法。

2.把辗转相除法与更相减损术的方法转换成程序框图与程序语言.**要点精讲**1.辗转相除法例如,求两个正数8251和6105的最大公约数。

分析与解:8251与6105两数都比较大,而且没有明显的公约数,可以考虑用两数中较大的数除以较小的数,求得商和余数:8251=6105×1+2146显然8251与6105的公约数也必是2146的约数,同样6105与2146的公约数也必是8251的约数, 所以8251与6105的最大公约数也是6105与2146的最大公约数。

6105=2146×2+1813,2146=1813×1+333,1813=333×5+148333=148×2+37,148=37×4+0则37为37与148的最大公约数,也是148与333的最大公约数,也是333与1813的最大公约数,也是1813与2146的最大公约数,也是2146与6105的最大公约数。

所以,2146与6105的最大公约数是37。

以上我们求最大公约数的方法就是辗转相除法。

也叫欧几里德算法,它是由欧几里德在公元前300年左右首先提出的。

2.更相减损术我国早期也有解决求最大公约数问题的算法,就是更相减损术。

在《九章算术》中记载了更相减损术求最大公约数的步骤:可半者半之,不可半者,副置分母、子之数,以少减多,更相减损,求其等也,以等数约之。

翻译为:(1)任意给出两个正数;判断它们是否都是偶数。

若是,用2约简;若不是,执行第二步。

(2)以较大的数减去较小的数,接着把较小的数与所得的差比较,并以大数减小数。

继续这个操作,直到所得的数相等为止,则这个数(等数)就是所求的最大公约数。

**范例分析**例1.试分别用辗转相除法和更相减损术求840与1764、440与556的最大公约数。

1.3.1 算法案例---辗转相除法与更相减损术

1.3.1   算法案例---辗转相除法与更相减损术

第一课时 1.3.1 算法案例---辗转相除法与更相减损术教学要求:理解辗转相除法与更相减损术中蕴含的数学原理,并能根据这些原理进行算法分析; 基本能根据算法语句与程序框图的知识设计出辗转相除法与更相减损术完整的程序框图并写出它们的算法程序.教学重点:理解辗转相除法与更相减损术求最大公约数的方法.教学难点:把辗转相除法与更相减损术的方法转换成程序框图与程序语言.教学过程:一、复习准备:1. 回顾算法的三种表述:自然语言、程序框图(三种逻辑结构)、程序语言(五种基本语句).2. 提问:①小学学过的求两个数最大公约数的方法?(先用两个公有的质因数连续去除,一直除到所得的商是互质数为止,然后把所有的除数连乘起来.)口算出36和64的最大公约数. ②除了用这种方法外还有没有其它方法?6436128=⨯+ ,36∴和28的最大公约数就是64和36的最大公约数,反复进行这个步骤,直至842=⨯,得出4即是36和64的最大公约数.二、讲授新课:1. 教学辗转相除法:例1:求两个正数1424和801的最大公约数.分析:可以利用除法将大数化小,然后逐步找出两数的最大公约数. (适用于两数较大时) ①以上我们求最大公约数的方法就是辗转相除法,也叫欧几里德算法,它是由欧几里德在公元前300年左右首先提出的. 利用辗转相除法求最大公约数的步骤如下:(1)用较大的数m 除以较小的数n 得到一个商0S 和一个余数0R ;(2)若0R =0,则n 为m ,n的最大公约数;若0R ≠0,则用除数n 除以余数0R 得到一个商1S 和一个余数1R ;(3)若1R =0,则1R 为m ,n 的最大公约数;若1R ≠0,则用除数0R 除以余数1R 得到一个商2S 和一个余数2R ;……依次计算直至n R =0,此时所得到的1n R -即为所求的最大公约数.②由上述步骤可以看出,辗转相除法中的除法是一个反复执行的步骤,且执行次数由余数是否等于0来决定,所以我们可以把它看成一个循环体,它的程序框图如右图:(师生共析,写出辗转相除法完整的程序框图和程序语言)练习:求两个正数8251和2146的最大公约数. (乘法格式、除法格式)2. 教学更相减损术:我国早期也有求最大公约数问题的算法,就是更相减损术. 在《九章算术》中有更相减损术求最大公约数的步骤:可半者半之,不可半者,副置分母•子之数,以少减多,更相减损,求其等也,以等数约之.翻译为:(1)任意给出两个正数;判断它们是否都是偶数. 若是,用2约简;若不是,执行第二步.(2)以较大的数减去较小的数,接着把较小的数与所得的差比较,并以大数减小数. 继续这个操作,直到所得的数相等为止,则这个数(等数)就是所求的最大公约数. 例2:用更相减损术求91和49的最大公约数.分析:更相减损术是利用减法将大数化小,直到所得数相等时,这个数(等数)就是所求的最大公约数. (反思:辗转相除法与更相减损术是否存在相通的地方)练习:用更相减损术求72和168的最大公约数.3. 小结:辗转相除法与更相减损术及比较①都是求最大公约数的方法,辗转相除法以除法为主,更相减损术以减法为主,计算次数上辗转相除法计算次数相对较少;②结果上,辗转相除法体现结果是以相除余数为0得到,而更相减损术则以减数与差相等而得到.三、巩固练习:1、练习:教材P35第1题 2、作业:教材P38第1题第二课时 1.3.2 算法案例---秦九韶算法教学要求:了解秦九韶算法的计算过程,并理解利用秦九韶算法可以减少计算次数、提高计算效率的实质;理解数学算法与计算机算法的区别,理解计算机对数学的辅助作用. 教学重点:秦九韶算法的特点及其程序设计.教学难点:秦九韶算法的先进性理解及其程序设计.教学过程:一、复习准备:1. 分别用辗转相除法和更相减损术求出两个正数623和1513的最大公约数.2. 设计一个求多项式5432()254367f x x x x x x =--+-+当5x =时的值的算法. (学生自己提出一般的解决方案:将5x =代入多项式进行计算即可)提问:上述算法在计算时共用了多少次乘法运算?多少次加法运算?此方案有何优缺点?(上述算法一共做了5+4+3+2+1=15次乘法运算,5次加法运算. 优点是简单、易懂;缺点是不通用,不能解决任意多项式的求值问题,而且计算效率不高.)二、讲授新课:1. 教学秦九韶算法:① 提问:在计算x 的幂值时,可以利用前面的计算结果,以减少计算量,即先计算2x ,然后依次计算2x x ⋅,2()x x x ⋅⋅,2(())x x x x ⋅⋅⋅的值,这样计算上述多项式的值,一共需要多少次乘法,多少次加法?(上述算法一共做了4次乘法运算,5次加法运算)② 结论:第二种做法与第一种做法相比,乘法的运算次数减少了,因而能提高运算效率,而且对于计算机来说,做一次乘法所需的运算时间比做一次加法要长得多,因此第二种做法能更快地得到结果.③ 更有效的一种算法是:将多项式变形为:5432()254367((((25)4)3)6)7f x x x x x x x x x x x =--+-+=--+-+,依次计算2555⨯-=,55421⨯-=,2153108⨯+=,10856534⨯-=,534572677⨯+= 故(5)2677f =. ――这种算法就是“秦九韶算法”. (注意变形,强调格式)④ 练习:用秦九韶算法求多项式432()2351f x x x x x =+-++当4x =时的值. (学生板书→师生共评→教师提问:上述算法共需多少次乘法运算?多少次加法运算?)⑤ 如何用秦九韶算法完成一般多项式1110()n n n n f x a x a x a x a --=++++ 的求值问题?改写:11101210()(()))n n n n n n n f x a x a x a x a a x a x a x a x a ----=++++=+++++ .首先计算最内层括号内一次多项式的值,即11n n v a x a -=+,然后由内向外逐层计算一次多项式的值,即212n v v x a -=+,323n v v x a -=+, ,10n n v v x a -=+.⑥ 结论:秦九韶算法将求n 次多项式的值转化为求n 个一次多项式的值,整个过程只需n 次乘法运算和n 次加法运算;观察上述n 个一次式,可发出k v 的计算要用到1k v -的值,若令0n v a =,可得到下列递推公式:01,(1,2,,)n kk n k v a v v x a k n --=⎧⎨=+=⎩ . 这是一个反复执行的步骤,因此可用循环结构来实现.⑦ 练习:用秦九韶算法求多项式5432()52 3.5 2.6 1.70.8f x x x x x x =++-+-当5x =时的值并画出程序框图.2. 小结:秦九韶算法的特点及其程序设计三、巩固练习:1、练习:教材P35第2题 2、作业:教材P36第2题第三课时 1.3.3 算法案例---进位制教学要求:了解各种进位制与十进制之间转换的规律,会利用各种进位制与十进制之间的联系进行各种进位制之间的转换;学习各种进位制转换成十进制的计算方法,研究十进制转换为各种进位制的除k 去余法,并理解其中的数学规律.教学重点:各种进位制之间的互化.教学难点:除k 取余法的理解以及各进位制之间转换的程序框图及其程序的设计. 教学过程:一、复习准备:1. 试用秦九韶算法求多项式52()42f x x x =-+当3x =时的值,分析此过程共需多少次乘法运算?多少次加法运算?2. 提问:生活中我们常见的数字都是十进制的,但是并不是生活中的每一种数字都是十进制的.比如时间和角度的单位用六十进位制,电子计算机用的是二进制,旧式的秤是十六进制的,计算一打数值时是12进制的......那么什么是进位制?不同的进位制之间又有什么联系呢?二、讲授新课:1. 教学进位制的概念:① 进位制是人们为了计数和运算方便而约定的记数系统,“满几进一”就是几进制,几进制的基数就是几. 如:“满十进一”就是十进制,“满二进一”就是二进制 . 同一个数可以用不同的进位制来表示,比如:十进数57,可以用二进制表示为111001,也可以用八进制表示为71、用十六进制表示为39,它们所代表的数值都是一样的. 表示各种进位制数一般在数字右下脚加注来表示,如上例中:(2)(8)(16)1110017139==② 一般地,任意一个k 进制数都可以表示成不同位上数字与基数的幂的乘积之和的形式,即110110()110110...(0,0,...,,)n n n n k n n n n a a a a a k a a a k a k a ka k a k ----<<≤<=⨯+⨯+⨯+⨯ . 如:把(2)110011化为十进制数,(2)110011=1⨯25+1⨯24+0⨯23+0⨯22+1⨯21+1⨯20=32+16+2+1=51. 把八进制数(8)7348化为十进制数,3210(8)7348783848883816=⨯+⨯+⨯+⨯=.2. 教学进位制之间的互化:①例1:把二进制数(2)1001101化为十进制数.(学生板书→教师点评→师生共同总结将非十进制转为十进制数的方法)分析此过程的算法过程,编写过程的程序语言. 见P34②练习:将(5)2341、(3)121转化成十进制数.③例2、把89化为二进制数.分析:根据进位制的定义,二进制就是“满二进一”,可以用2连续去除89或所得商,然后取余数. (教师板书)上述方法也可以推广为把十进制化为k 进制数的算法,这种算法成为除k 取余法. ④练习:用除k 取余法将89化为四进制数、六进制数.⑤例3、把二进制数(2)11011.101化为十进制数.解:43210123(2)11011.101121202121212021227.625---=⨯+⨯+⨯+⨯+⨯+⨯+⨯+⨯=.(小数也可利用上述方法化进行不同进位制之间的互化. )变式:化为八进制→方法:进制互化3. 小结:进位制的定义;进位制之间的互化.三、巩固练习:1、练习:教材P35第3题 2、作业:教材P38第3题第四课时 1.3.4 生活中的算法实例教学要求:通过生活实例进一步了解算法思想.教学重点:生活实例的算法分析.教学难点:算法思想的理解.教学过程:一、复习准备:1. 前面学习了哪几种算法案例?每种算法的作用及操作方法是怎样的?2. 算法思想在我们的生活中无处不在,如何利用我们所学习的知识解决生活中的实际问题?二、讲授新课:1. 霍奇森算法:提问:同学们经常会面对一个共同的问题,就是有时有太多的事情要做. 例如,你可能要面临好几门课的作业的最后期限,你如何合理安排以确保每门课的作业都能如期完成?如果根本不可能全部按期完成,你该怎么办?(霍奇森算法可以使得迟交作业的数目减到最小. 这一算法已经广泛应用于工业生产安排的实践中.)例如:当你拿到下面这组数据后,你会如何安排你的时间,以确保每门课的作业都能如期完成?可用自然语言描述为:①把这些作业按到期日的顺序从左到右排列,从最早到期的到最晚到期的;②假设从左到右一项一项做这些作业的话,计算出从开始到完成某一项作业时所花的时间. 依次做此计算直到完成了所列表中的全部作业而没有一项作业会超期,停止;或你算出某项作业将会超期,继续第三步;③考虑第一项将会超期的作业以及它左边的所有作业,从中取出花费时间最长的那项作业,并把它从表中去掉;④回到第二步,并重复第二到四步,直到做完.2. 孙子问题:韩信是秦末汉初的著名军事家. 据说有一次汉高祖刘邦在卫士的簇拥下来到练兵场,刘邦问韩信有什么办法,不要逐个报数,就能知道场上士兵的人数.韩信先令士兵排成了3列纵队进行操练,结果有2人多余;接着他立刻下令将队形改为5列纵 队,这一改又多出3人;随后他又下令改为7列纵队,这一次又剩下2人无法成整行. 由此得出共有士兵2333人. 如何用现在的算法思想分析这一过程?《孙子算经》中给出了它的具体解法,其步骤是:选定57⨯的倍数,被3除余1,即70;选定37⨯的一个倍数,被5除余1,即21;选定35⨯的一个倍数,被7除余1,即15. 然后按下式计算702213152105m p =⨯+⨯+⨯-,式中105为3,5,7的最小公倍数,p 为适当的整数,使得0105m <≤,这里取2p =.求解“孙子问题”的一种普通算法:第一步:2m =.第二步:若m 除以3余2,则执行第三步;否则1m m =+,执行第二步.第三步:若m 除以5余3,则执行第四步;否则1m m =+,执行第二步.第四步:若m 除以7余2,则执行第五步;否则1m m =+,执行第二步.第五步:输出m .3. 小结:算法的基本思想.三、巩固练习: 作业:教材P38第3题。

算法案例之辗转相除法与更相减损术

算法案例之辗转相除法与更相减损术

2013-2014学年第二学期 高二数学导学案 编号:7 使用时间: 编写人:张娜 审核人: 石岩 负责人: 班级: 小组: 姓名: 组内评价: 教师评价:第 1页共 1页§1.3.1辗转相除法与更相减损术【使用说明】1.对照学习目标和重难点,对课本进行系统预习。

2.独力限时完成导学案。

【学习目标】1. 掌握辗转相除法的算法步骤。

2.会用辗转相除法求几个数的的最大公约数3. 理解更相减损术的算法思想。

4. 掌握用更相减损术求几个数的最大公约数。

【重点难点】学习重点: 理解辗转相除法,更相减损术的算法思想。

学习难点: 掌握辗转相除法更相减损术的算法步骤. 【问题导学】在初中,我们已经学过求最大公约数的知识,你能求出18与30的公约数吗?我们都是利用找公约数的方法来求最大公约数,如果公约数比较大而且根据我们的观察又不能得到一些公约数1.辗转相除法例1 求两个正数8251和6105的最大公约数。

(分析:8251与6105两数都比较大,而且没有明显的公约数,如能把它们都变小一点,根据已有的知识即可求出最大公约数)解:8251=6105×1+2146 显然8251的最大公约数也必是2146的约数,同样6105与2146的公约数也必是8251的约数,所以8251与6105的最大公约数也是6105与2146的最大公约数。

6105=2146×2+1813 2146=1813×1+333 1813=333×5+148333=148×2+37 148=37×4+0则37为8251与6105的最大公约数。

辗转相除法也叫欧几里德算法,它是由欧几里德在公元前300年左右首先提出的。

利用辗转相除法求最大公约数的步骤如下:第一步:用较大的数m 除以较小的数n 得到一个商q 0和一个余数r 0;第二步:若r 0=0,则n 为m ,n 的最大公约数;若r 0≠0,则用除数n 除以余数r 0得到一个商q 1和一个余数r 1;第三步:若r 1=0,则r 1为m ,n 的最大公约数;若r 1≠0,则用除数r 0除以余数r 1得到一个商q 2和一个余数r 2;……依次计算直至r n =0,此时所得到的r n -1即为所求的最大公约数。

算法案例-辗转相除法与更相减损术、秦九韶算法-优质获奖精品课件 (100)

算法案例-辗转相除法与更相减损术、秦九韶算法-优质获奖精品课件  (100)

第一章 算法初步
题型三 进位制
例3 (本题满分9分)完成下列进位制之 间的转化: (1)将十进制数30转化为二进制数; (2)将二进制数101111011(2)转化为十进制数.
栏目 导引
【解】 (1) 4分
第一章 算法初步
∴30(10)=11110(2). 5分 (2)101111011(2)=1×28+0×27+1×26+ 1×25+1×24+1×23+0×22+1×21+ 1×20=379. 9分
栏目 导引
第一章 算法初步
法二: 由更相减损术, 得 108-45=63, 63-45=18, 45-18=27, 27-18=9, 18-9=9, 故108与45的最大公约数是9.
栏目 导引
第一章 算法初步
题型二 秦九韶算法及其应用
例2 用秦九韶算法求多项式 f(x)=3x5+8x4-3x3+5x2+12x-6 当x=2时的值. 【解】 根据秦九韶算法, 把多项式改写 成如下形式: f(x)=((((3x+8)x-3)x+5)x+12)x-6, 按 照从内到外的顺序,
栏目 导引
第一章 算法初步
依次计算当x=2时一次多项式的值. v0=3, v1=v0×2+8=3×2+8=14, v2=v1×2-3=14×2-3=25, v3=v2×2+5=25×2+5=55, v4=v3×2+12=55×2+12=122, v5=v4×2-6=122×2-6=238. 所以当x=2时, 多项式的值为238.
栏目 导引
第一章 算法初步
(3)不同进位制数之间的转化 ①k进制数转化为十进制数 把k进制数转化为十进制数, 写成不同位上 数字与基数幂的乘积之和即可(简称幂积求 和), 即anan-1…a1a0(k)=an×kn+an-1×kn-1 +…+a1×k+a0.例如, 将二进制数11001(2) 化为十进制数: 11001(2)=1×24+1×23+ 0×22+0×21+1×20=16+8+1=25.

人教版数学必修三《算法实例辗转相除法与更相减损术》课件

人教版数学必修三《算法实例辗转相除法与更相减损术》课件
人 教 版 数 学 必修三 1.3《算 法实例 (1) 辗转相 除法与 更相减 损术》 课件(共 14张P PT)
人 教 版 数 学 必修三 1.3《算 法实例 (1) 辗转相 除法与 更相减 损术》 课件(共 14张P PT)
开始
输m,n(m>n)
K=0
n=n/2
m,n为偶数? 是 否 d=m-n
人 教 版 数 学 必修三 1.3《算 法实例 (1) 辗转相 除法与 更相减 损术》 课件(共 14张P PT)
练习1:利用辗转相除法求两数4081与
20723的最大公约数. (53)
20723=4081×5+318; 4081=318×12+265; 318=265×1+53; 265=53×5+0.
人 教 版 数 学 必修三 1.3《算 法实例 (1) 辗转相 除法与 更相减 损术》 课件(共 14张P PT)
பைடு நூலகம்
人 教 版 数 学 必修三 1.3《算 法实例 (1) 辗转相 除法与 更相减 损术》 课件(共 14张P PT)
例2
用更相减损术求98与63的最大公约数.
解:由于63不是偶数,把98和63以大数 减小数,并辗转相减,
半者半之,不可半者,副置分母·子之数,以少 减多,更相减损,求其等也,以等数约之。
翻译出来为:第一步:任意给出两个正数; 判断它们是否都是偶数。若是,用2约简;若不是, 执行第二步。
第二步:以较大的数减去较小的数,接着把 较小的数与所得的差比较,并以大数减小数。继 续这个操作,直到所得的数相等为止,则这个数 (等数)就是所求的最大公约数。
6105=2146×2+1813; 2146=1813×1+333; 1813=333×5+148; 333=148×2+37; 148=37×4+0. 则37为8251与6105的最大公约数。

8§131算法案例——辗转相除法与更相减损术.docx

8§131算法案例——辗转相除法与更相减损术.docx

教师课时教案问题与情境及教师活动学生活动思考3:上述求两个正整数的最大公约数的方法称为辗转相除法或欧几里得算法.一般地,用辗转相除法求两个正整数m, n的最大公约数,可以用什么算法?其算法步骤如何设计?辗转相除法,就是对于给定的两个正整数,用较大的数除以较小的数,若余数不为零,则将余数和较小的数构成新的一对数,继续上面的除法,直到大数被小数除尽为止,这时的较小的数即为原来两个数的最大公约数.思考4:你能否把辗转相除法编程?辗转相除法求两个数的最大公约数,其算法步骤可以描述如下:第一步,给定两个正整数m, n.第二步,求余数I•:计算m除以n,将所得余数存放到变量I■中.第三步,更新被除数和余数:m=n, n=r.第四步,判断余数「是否为0.若余数为0,则输出结果;否则转向第二步继续循坏执行.程序框图如下图:程序:过程及方法思考4:你能用当型循环结构构造算法,求两个正整数的最大公约数吗?试画出程序框图和程序.当型循坏结构的程序框图如右图程序:探究二:更相减损术思考1:设两个正整数m>n,若m-n=k,则m 与 n 的最大公约数和n 与k 的最大公约数相 等.反复利用这个原理,可求得98与63 的最大公约数为多少? 解:由于63不是偶数,把98和63以大数减小数, 并辗转相减,如下图所示. 所以,98和63的最大公约数等于7. 思考2:上述求两个正整数的最大公约数的方法称 为更相减损术•一般地,用更相减损术求两个正整数m, n 的最 大公约数,可以用什么逻辑结构来构造算法? 更相减损术,就是对于给定的两个正整数,用较大的数减去较小 的数,然后将差和较小的 数构成新的一对数, 继续上面的减法, 直到差和较小的数相等, 此时相等的两数即为原来 两个数的最大公约数. 思考3:你能否把更相减损术编程? 探究三:辗转相除法与更相减损术的区别(1) 都是求最大公约数的方法,计算上辗转相除法以除法为主,更相减损术以减法为主,计算次数上辗转相除法计算次数相对较少, 特别当两个数字大小区别较大时计算次数的区别较明显。

算法案例(完整版)

算法案例(完整版)

例2 已知10b1(2)=a02(3),求数字a, b的值.
10b1(2)=1×23+b×2+1=2b+9. a02(3)=a×32+2=9a+2. 所以2b+9=9a+2,即9a-2b=7.
故a=1,b=1.
小 结
1. k进制数使用0~(k-1)共k个数字, 但左侧第一个数位上的数字(首位数字) 不为0. 2.用 an an-1 a2 a1(k ) 表示k 进制数,其中k称为基数,十进制数不标 注基数. 3. 把k进制数化为十进制数的一般算式 是: an an-1 a2 a1(k )
第一步,输入a和n的值. 第二步,令b=0,i=1. i-1 b 第三步, = b + ai ´ 2 , i=i+1. 第四步,判断i>n 是否成立.若是,则输 出b的值;否则,返回第三步.
同样地,把k进制数 a = an an-1 a2 a1(k )
化为十进制数b的算法和程序框图如何设 计? 第一步,输入a,k和n的值. 第二步,令b=0,i=1.
“更相减损术”在中国古代数学专著《 九章算术》中记述为:
可半者半之,不可半者,副置分母、 子之数,以少减多,更相减损,求其等 也,以等数约之.
例1 分别用辗转相除法和更相减损 术求168与93的最大公约数. 辗转相除法:168=93×1+75,
93=75×1+18, 75=18×4+3, 18=3×6.
a=rnrn-1„r1r0(2)
知识探究(二):十进制化k进制的算法
思考1:根据上面的分析,将十进制数a化 为二进制数的算法步骤如何设计? 第一步,输入十进制数a的值. 第二步,求出a除以2所得的商q,余数r. 第四步,若q≠0,则a=q,返回第二步; 否则,输出全部余数r排列得到 的二进制数.

1.3 算法案例第二课时

1.3  算法案例第二课时
n n i i
乌鲁木齐市高级中学 杨帆
理论迁移
已知一个5 例1 已知一个5次多项式为 5 4 3 2 f (x) = 5x + 2x + 3.5x - 2.6x + 1.7x - 0.8 用秦九韶算法求f(5)的值. f(5)的值 用秦九韶算法求f(5)的值.
f(x)=((((5x+2)x+3.5)x-2.6)x+1.7)xf(x)=((((5x+2)x+3.5)x-2.6)x+1.7)x-0.8. =5×5+2=27; v1=5×5+2=27; =27×5+3.5=138.5; v2=27×5+3.5=138.5; =138.5× 2.6=689.9; v3=138.5×5-2.6=689.9; =689.9×5+1.7=3451.2; v4=689.9×5+1.7=3451.2; =3451.2× v5=3451.2×5-0.8=17255.2. 所以f(5)= 所以f(5)= =17255.2.
乌鲁木齐市高级中学 杨帆
思考2:该算法的程序框图如何表示? 思考2:该算法的程序框图如何表示? 2:该算法的程序框图如何表示
开始 输入n, 输入 ,an,x的值 的值 v=an i=n-1 i=i-1 v=vx+ai 输入a 输入 i i≥0? ? 否 输出v 输出 结束
乌鲁木齐市高级中学 杨帆

乌鲁木齐市高级中学 杨帆
作业: 作业: P45练习:2. P45练习: 练习 P48习题1.3A组:2. P48习题1.3A组 习题1.3A
乌鲁木齐市高级中学 杨帆
乌鲁木齐市高级中学 杨帆
思考4:对于f(x)=(…((a 思考4:对于f(x)=(…((anx+an-1)x+ 4:对于 an-2)x+…+a1)x+a0,由内向外逐层计算 一次多项式的值,其算法步骤如何? 一次多项式的值,其算法步骤如何? 第一步,计算v 第一步,计算v1=anx+an-1. 第二步,计算v 第二步,计算v2=v1x+an-2. 第三步,计算v 第三步,计算v3=v2x+an-3. … 第n步,计算vn=vn-1x&#UT “x=”;a “x=”; 下列程序, 下列程序,说 n=0 明它解决的实 y=0 际问题是什么? n<5 际问题是什么? WHLE n 5 y=y+(n+1)*a∧n n=n+1 WEND PRINT y END

最新人教版普通高中课程标准实验教科书必修3《算法案例——辗转相除法和更相减损术》说课稿

最新人教版普通高中课程标准实验教科书必修3《算法案例——辗转相除法和更相减损术》说课稿

课题:算法案例——辗转相除法和更相减损术教材:人教版普通高中课程标准实验教科书必修3第一章第1.3节1、教材分析与传统教学内容相比,《算法初步》为新增内容,算法是计算机科学的重要基础,算法思想已经渗透到社会的方方面面,算法思想也逐渐成为每个现代人应具有的数学素养。

算法思想即体现了时代的特点,也是中国古代数学灿烂的历史和巨大的贡献在新层次上的复兴。

本节内容是探究古代算法案例――辗转相除法和更相减损术,经历设计算法解决问题的全过程,体会算法在解决问题中的重要作用,体会算法的基本思想,提高逻辑思维能力,发展有条理的思考和数学表达能力,巩固算法三种描述性语言(自然语言、图形语言和程序语言),提高学生分析和解决问题的能力。

2、教学目标分析:(1)知识目标:①理解辗转相除法和更相减损术求两个正数的最大公约数的原理;②能用写算法步骤、画流程图和编程序表达辗转相除法;说明:在这里,理解案例中的新的知识是理解算法的必要的前提,但重要的是理解案例中的算法核心思想,而不是强调对案例中新知识的记忆和灵活运用。

(2)能力目标:①培养学生把具体问题抽象转化为算法语言的能力;②培养学生自主探索和合作学习的能力。

(3)情感目标:①使学生进一步了解从具体到一般思想方法。

②体会中国古代数学对世界数学的巨大贡献,培养爱国思想和学习数学的积极性。

3、教学重点与难点分析:(1)教学重点:能用写算法步骤、画流程图和编程序表达辗转相除法及更相减损术。

(体会算法解决问题的全过程)(2)教学难点:用不同逻辑结构的程序框图表达算法;4、教学方法与手段(1)、教法:阅读指导,以问题为载体,有引导的对话,让学生经历知识的形成过程和发展过程,有利于学生活动的充分展开。

(2)、学法:以观察、讨论、思考、分析、动手操作、自主探索、合作学习多种形式相结合,引导学生多角度、多层面认识事物,突破教学难点。

5、教学过程设计分析:辅助工具:ppt课件知识准备:带余除法6、评价分析:(1)、指导思想:①新知识与旧知识相结合的原则;②掌握知识与发展智力、能力相统一的原则;③教师的主导作用与学生的主体作用相结合的原则。

高中数学例题:辗转相除法与更相减损术

高中数学例题:辗转相除法与更相减损术

高中数学例题:辗转相除法与更相减损术例1.分别用辗转相除法和更相减损术求378与90的最大公约数.【答案】18【解析】用辗转相除法:378=90×4+18,90=18×5.∴378与90的最大公约数是18.用更相减损术:∵378与90都是偶数,∴用2约分后得189和45.189-45=144,144-45=99,99-45=54,54-45=9,45-9=36,36-9=27,27-9=18,18-9=9.∴378与90的最大公约数为2×9=18.【总结升华】比较辗转相除法与更相减损术的区别(1)都是求最大公约数的方法,计算上辗转相除法以除法为主,更相减损术以减法为主,计算次数上辗转相除法计算次数相对较少,特别当两个数字大小区别较大时计算次数的区别较明显;(2)从结果体现形式来看,辗转相除法体现结果是以相除余数为0则得到,而更相减损术则以减数与差相等而得到.由该题可以看出,辗转相除法得最大公约数的步骤较少.对比两种方法控制好算法的结束,辗转相除法是到达余数为0,更相减损术是到达减数和差相等.举一反三:【变式1】(1)用更相减损术求两个正数84与72的最大公约数.(2)利用辗转相除法求3869与6497的最大公约数与最小公倍数.【解析】(1)因为84=21×4,72=18×4,所以21-18=3,18-3=15,15-3=12,12-3=9,9-3=6,6-3=3.所以21和18的最大公约数等于3.所以84和72的最大公约数等于12.【总结升华】先约简,再求21与18的最大公约数,然后乘以约简的4得84与72的最大公约数.(2)6497=3869×1+2628,3869=2628×1+1241,2628=1241×2+146,1241=146×8+73,146=73×2+0.所以3 869与6 497的最大公约数为73,最小公倍数为3 869×6497÷73=344341.例2.求三个数:168,54,264的最大公约数.【思路点拨】运用更相减损术或辗转相除法,先求168和54的最大公约数a,再求a与264的最大公约数.【答案】6【解析】采用更相减损术先求168和54的最大公约数.(168,54)→(114,54)→(60,54)→(6,54)→(6,48)→(6,42)→(6,36)→(6,30)→(6,24)→(6,18)→(6,12)→(6,6).故168和54的最大公约数为6.采用辗转相除法求6和264的最大公约数.∵264=44×6+0,∴6为264与6的最大公约数,也是这三个数的最大公约数.【总结升华】求最大公约数通常有两种方法:一是辗转相除法;二是更相减损术,对于3个数的最大公约数的求法,则是先求其中两个数的最大公约数m,再求m与第三个数的最大公约数.同样可推广到求3个以上数的最大公约数.举一反三:【变式1】求三个数324,243,135的最大公约数.【答案】27【解析】∵324=243×1+81,243=81×3+0,∴324与243的最大公约数为81.又135=81×1+54,81=54×1+27,54=27×2+0,∴81与135的最大公约数为27.∴三个数324,243,135的最大公约数为27.更相减损术:∵324-243=81,243-81=162,162-81=81,∴81是324和243的最大公约数.又135-81=54,81-54=27,54-27=27,∴27是81与135的最大公约数.∴三个数324,243,135的最大公约数为27.例3.甲、乙、丙三种溶液分别重147g、343g、133g,现要将它们分别全部装入小瓶中,每个小瓶装入液体的质量相同,问每瓶最多装多少?【思路点拨】由题意,每个小瓶最多能装的溶液的质量应是三种溶液质量的最大公约数.【答案】7g【解析】先求147与343的最大公约数.343-147=196,196-147=49,147-49=98,98-49=49,∴147与343的最大公约数是49.再求49与133的最大公约数.133-49=84,84-49=35,49-35=14,35-14=21,21-14=7,14-7=7.∴147,343,133的最大公约数是7.故每瓶最多装7g.【总结升华】本题关键是分析清楚题意,找出三个数的最大公约数.求三个以上(含三个数)的数的最大公约数时,可依次通过求两个数的最大公约数与第三个数的最大公约数来求得.。

1.3算法案例 课件-高一数学人教A版必修3

1.3算法案例 课件-高一数学人教A版必修3
f (x) 4x5 2x4 3.5x3 2.6x2 1.7x 0.8
用秦九韶算法求这个多项式当x=5时的值。
解:根据秦九韶算法,把多项式改写成如下 形式:
f (x) ((((4x 2)x 3.5)x 2.6)x 1.7)x 0.8
按照从内到外的顺序,依次计算一次多项式当 x=5时的值:
WHILE d<>n
IF d>n THEN m=d
ELSE m=n
n=d
END IF d=m-n WEND d=2^k*d
PRINT d
END
问题2:怎样求多项式 f (x) x5 x4 x3 x2 x 1当x=5 的值呢?
方法1:把5代入多项式,计算各项的值,然后把它们加 起来。这时共做了1+2+3+4=10次乘法运算,5 次加法运算。
例1:用更相减损术求98与63的最大公约数。
解:由于63不是偶数,把98和63以大数减小数, 并辗转相减得,如图所示:
98-63=35 63-35=28 35-28=7 28-7=21 21-7=14 14-7=7
所以,98和63的最大公约数等于7。
思考:把更相减损术与辗转相除法比较,你有什么
发现?你能根据更相减损术设计程序,求两个正数的 最大公约数吗?
v1 an x an1
然后由内向外逐层计算一次多项式的值,即
v2 v1 x an2 ,
v3 v2 x an3 ,
vn vn1 x a0 ,
这样,求n次多项式f(x)的值就转化为求n个一次多项 式的值。
上述方法称为秦九韶算法。直到今天, 这种算法仍是 多项式求值比较先进的算法。
例2、已知一个5次多项式为
⑤十进制化k进制
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

完整的过程
8251=6105×1+2146 6105=2146×2+1813 2146=1813×1+333
例: 用辗转相除法求225和135的最大公约数 225=135×1+90 135=90×1+45 90=45×2 显然45是90和45的最大公约数,也就是 225和135的最大公约数 思考:从上面的两个例子中可以看出计 算的规律是什么?
新知探究
1.问题提出:当两个数公有的质因数较大时,用 原来的显然困难,须改进算法,用什么方法好? 点拨:辗转相除法, 又名“欧几 里德算法”(Euclidean algorithm) 乃求两数之最大公因数算法。它是 已知最古老的算法, 其可追溯至公元 前300年,它首次出现于欧几里德的
《几何原本》中。
1813=333×5+148 333=148×2+37
148=37×4+0
S1:用大数除以小数
显然37是148和37的最大公约数, S2:除数变成被除数,余数变成除数 也就是8251和6105的最大公约 S3:重复S1,直到余数为0 数
辗转相除法是一个反复执行直到余数等于0才停止的步骤,这实际上是一 个循环结构。

结束
(3)、程序
INPUT “a,b=“;a,b WHILE a<>b r=a-b IF b>r THEN a=b b=r ELSE a=r END IF WEND PRINT b END
例2:用更相减损术求下列两数的最大公约数并说出运 算次数 (1)98,196 (2)72,168 (3)153,119 (4)779,209 98 24 17 19 1次 4次 5次 8次
翻译出来为: 第一步:任意给出两个正数;判断它们是否都是偶数. 若是,用2约简;若不是,执行第二步. 第二步:以较大的数减去较小的数,接着把较小的数与 所得的差比较,并以大数减小数.继续这个操作,直到所 得的数相等为止,则这个数(等数)就是所求的最大公约 数.
定义:
二、更相减损术
所谓更相减损术,就是对于给定的两个 数,用较大的数减去较小的数,然后将差和 较小的数构成新的一对数,再用较大的数减 去较小的数,反复执行此步骤直到差数和较 小的数(减数)相等,此时相等的两数便为 原来两个数的最大公约数。
梳理提升
比较辗转相除法与更相减损术的区别
(1)都是求最大公约数的方法,计算上辗转相除
法以除法为主,更相减损术以减法为主,计算次数
上辗转相除法计算次数相对较少,特别当两个数字
大小区别较大时计算次数的区别较明显。 (2)从结果体现形式来看,辗转相除法体现结果 是以相除余数为0则得到,而更相减损术则以减数与 差相等而得到。
333=148×2+37
148=37×4+0
(2)、程序框图:
开始 输入m,n r=m MOD n m=n n=r r=0? 是 输出m 结束 否
(3)、程序语言:
INPUT “m,n=“;m,n DO m MOD n r=__________ m=__________ n r n= __________ r=0 LOOP UNTIL ________ PRINT m END
辗转相除法和更相减损术
求两个数的最大公约数
〖学习目标〗
1知识与能力:理解辗转相除法和更相减损术中蕴含 的数学原理,并能根据原理进行算法分析;基本 能根据算法语句与程序框图的知识设计完整的程 序框图并写出算法程序。 2过程与方法:比较辗转相除法与更相减损术中蕴含 的区别,并能领会数学算法和计算机处理的结合, 初步掌握数学算法转化成计算机语言。 3情感态度价值观:通过阅读古代数学中的算法案例, 体会古代数学对世界数学的贡献,进一步体会算 法的基本思想,发展有条理地思考与解决问题的 能力,提高逻辑思维能力.
例1:用辗转相除法求下列两数的最大公约数并说出 运算次数 (1)98,196 (2)72,168 (3)153,119 (4)779,209 98 24 17 19 1次 2次 3次 5次
跟踪训练
2.问题提出:除了用上述算法求两个数的 最公约数之外还有没有别的算法? 点拨:用“更相减损术”:更相减损术,是 我国数学家刘徽的专著《九章算术》中记 载的.更相减损术求最大公约数的步骤如 下:可半者半之,不可半者,副置分母分 子之数,以少减多,更相减损,求其等也 . , 以等数约之.
例:求下面两个正整数的最大公约数:
(1)求25和35的最大公约数 (2)求18和30的最大公约数
( 1) 5
25
5
35
7
( 2) 2
3பைடு நூலகம்
18 9
3
30 15 5
所以,25和35的最大公约数为5
所以,18和30的最大公约数为6
例:如何算出8251和6105的最大公约数? 思考:除了用这种方法外还有没有其它方法?
(1)自然语言法:
第一步:输入两个正整数m,n(m>n).
m=n×q+r
8251=6105×1+2146
6105=2146×2+1813
第二步:计算m除以n所得的余数r.
第三步:m=n,n=r. 第四步:若r=0,则m,n的最大公约 数等于m,否则转到第二步. 第五步:输出最大公约数m.
2146=1813×1+333 1813=333×5+148
2、方法: 例: 用更相减损术求98与63的最大公约数.
解:由于63不是偶数,把98和63以大数减小数, 并辗转相减 98-63=35 63-35=28 35-28=7 28-7=21 21-7=14 14-7=7 所以,98和63的最大公约数等于7
思考:你能根据更相减损术设计程序,求两个 正整数的最大公约数吗?
(1)、算法步骤 第一步:输入两个正整数a,b(a>b); 第二步:若a不等于b ,则执行第三步;否则转 到第五步; 第三步:把a-b的差赋予r; 第四步:如果b>r, 那么把b赋给a,把r赋给b;否 则把r赋给a,执行第二步;
第五步:输出最大公约数b.
(2)、程序框图
开始
输入a,b a≠b? 是 r=a-b a=r 否 r<b? 是 a=b b=r 输出b
一、辗转相除法(欧几里得算法) 1、定义: 所谓辗转相除法,就是对于给定的两个 数,用较大的数除以较小的数。若余数不为 零,则将余数变为被除数,余数变成除数, 继续上面的除法,则这时较小的数(除数) 就是原来两个数的最大公约数。
2、步骤: (以求8251和6105的最大公约数的过程为例) 第一步 用两数中较大的数除以较小的数,求得商 和余数 8251=6105×1+2146 结论: 8251和6105的公约数就是6105和2146的 公约数,求8251和6105的最大公约数,只要求出 6105和2146的公约数就可以了。 第二步 对6105和2146重复第一步的做法 6105=2146×2+1813 同理6105和2146的最大公约数也是2146和1813 的最大公约数。
〖重点难点〗
• 重点:理解辗转相除法与更相减损术求最 大公约数的方法. • 难点:把辗转相除法与更相减损术的方法 转换成程序框图与程序语言.
1. 回顾算法的三种表述:
自然语言 程序框图 (三种逻辑结构) 程序语言 (五种基本语句) 2. 思考:
小学学过的求两个数的最大公约数的方法?
先用两个数公有的质因数连续去除,一 直除到所得的商是互质数为止,然后把所有 的除数连乘起来.
跟踪训练
例1:用辗转相除法求下列两数的最大公约数并说出 运算次数 (1)98,196 (2)72,168 (3)153,119 (4)779,209 98 24 17 19 1次 2次 3次 5次
跟踪训练
例3: 求325,130,270三个数的最大公约数.
1. 用辗转相除法求295和85的最大公约数时,需要做出 除法的次数是 ( ) A 1. B 2. C 3. D 4 2. 用辗转相除法求567和405的最大公约数是 ( ) A 81 B 7 C 5. D 35 3. 求98,196的最大公约数__________________。 4. 用辗转相除法求1443和999的最大公约数_______。 5.用辗转相除法求168,56,264的最大公约数是_____。
相关文档
最新文档