《算法案例---辗转相除法》名师课件2
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
输入m,n
n=r m=n
n≠0? 否
输出m
求m除以n的余数r 是
结束
INPUT m,n
WHILE n<>0 r=m MOD n m=n n=r
WEND PRINT m END
新课讲解
《九章算术》——更相减损术
算理:可半者半之,不可半者,副置分母、子 之数,以少减多,更相减损,求其等也,以等 数约之。
算法案例---辗转相除法
复习引入
韩信是秦末汉初的著名军事家.据说有一次汉高祖刘邦在 卫士的簇拥下来到练兵场,刘邦问韩信有什么方法,不要逐个 报数,就能知道场上的士兵的人数,韩信先令士兵排成3列纵队, 结果有2人多余,接着下令排成5列纵队,结果又多出3人,随后 他又下令改为7列纵队,这次又剩下2人无法成整行.在场的人 都哈哈大笑,以为韩信不能清点出准确的人数,不料笑声刚落, 韩信高声报告共有士兵2333人.众人听了一楞,不知道韩信用 什么方法这么快就能得到正确的结果的.
例题讲解
例3、用辗转相除法求612与468的最大公约数, 并用更相减损术检验所得结果.
解:用辗转相除法:
612 = 468×1 + 144 , 468 = 144×3 + 36 , 144 = 36×4, 即612和468的最大公约数是36.
用更相减损术检验: 612和468为偶数, 两次用2约简得153和117, 153-117=36,117-36=81,81-36=45, 45-36=9,36-9=27,27-9=18,18-9=9, 所以612和468的最大公约数为9×2×2=36.
解:由于63不是偶数,把98和63以大数减小数, 并辗转相减
98-63=35 63-35=28 35-28=7 28-7=21 21-7=21 14-7=7 所以,98和63的最大公约数等于7
新课讲解
辗转相除法与更相减损术的区别
(1)都是求最大公约数的方法,计算上辗转相除 法以除法为主,更相减损术以减法为主,计算次数 上辗转相除法计算次数相对较少,特别当两个数字 大小区别较大时计算次数的区别较明显。
今天,我们将以这些古典案例的思想,设计出适宜计算机 的运行程序,提高我们对基本算法结构和算法语句在实际中的 运用能力.
新课讲解
问题1:在小学中我们是如何求出两个正整数的最大公约数的呢?
例1:求24与30的最大公约数。
解:2 3 0 2 4 用公有质因数2除, 3 15 1 2 用公有质因数3除, 5 4 5和4互质不除了。
得:18和24最大公约数是:2×3=6
问题2:如果公约数比较大而且根据我们的观察又不能得到 一些公约数,我们又应该怎样求它们的最大公约数?比如 求8251与6105的最大公约数?
Байду номын сангаас课讲解
辗转相除法——欧几里得算法
定义:所谓辗转相除法,就是对于给定的两个数, 用较大的数除以较小的数。若余数不为零,则将余 数和较小的数构成新的一对数,继续上面的除法, 直到大数被小数除尽,则这时较小的数就是原来两 个数的最大公约数。 用于求两个正整数的最大公约数
否则转到第二步. 第五步:输出最大公约数m.
新课讲解
程序框图如右图示: 程序如下:
INPUT “m,n=“;m,n DO
r=m MOD n m=n n=r LOOP UNTIL r=0 PRINT m END
开始
输入m,n r=m MOD n
m=n
n=r 否
r=0? 是
输出m 结束
新课讲解
用当型循环结构构造算法: 开始
方法归纳
求最大公约数常用的两种方法
(1)利用辗转相除法求给定的两个数的最大公约数,即利 用带余除法,用数对中较大的数除以较小的数,若余数 不为零,则将余数和较小的数构成新的数对,再利用带 余除法,直到大数被小数除尽,则这时的较小数就是原 来两个数的最大公约数. (2)利用更相减损术求两个正整数的最大公约数的一般步 骤是:首先判断两个正整数是否都是偶数.若是,用2 约简,也可以不除以2,直接求最大公约数,这样不影 响最后结果.
例题讲解
例2、用辗转相除法求324、243、135的最大公 约数.
思路分析:求三个数的最大公约数可以先求出两 个数的最大公约数,第三个数与前两个数的最大 公约数的最大公约数即为所求。
324 2431 81
243 81 3 0 则324与243的最大公约数为81. 又135 811 54,81 541 27,54 27 2 0, 则81与135的最大公约数为27. 所以,三个数324、243、135的最大公约数为27.
课堂小结
• 辗转相除法 • 用辗转相除法求最大公约数
作业
P45 练习1 P48 习题1.3 A组1 思考:你能根据辗转相除法的算法步骤 画出它的程序框图以及相应的程序语句 吗?
(2)从结果体现形式来看,辗转相除法体现结果 是以相除余数为0则得到,而更相减损术则以减数 与差相等而得到
例题讲解
例1、用辗转相除法求225和135的最大公约数
225=135×1+90
135=90×1+45 90=45×2
思考:从上面的例子中可以看出计算的规律是什么? 用大数除以小数 除数变成被除数,余数变成除数 重复第一步,直到余数为0
333=148×2+37 148=37×4+0
新课讲解
问题4:辗转相除直到何时结束?主要运用的是哪种算法 结构?
辗转相除法是一个反复执行直到余数等于0停止的步骤, 这实际上是一个循环结构 算法步骤如下:
第一步:输入两个正整数m,n(m>n). 第二步:计算m除以n所得的余数r. 第三步:m=n,n=r. 第四步:若r=0,则m,n的最大公约数等于m;
巩固练习
1、(1)1 624与899的最大公约数是________. (2)用辗转相除法求80和36的最大公约数,并用更相减损术检 验所得结果.
(2)辗转相除法: 80=36×2+8,36=8×4+4,8=4×2+0. 故 80 和 36 的最大公约数是 4. 用更相减损术检验: 80-36=44,44-36=8,36-8=28, 28-8=20,20-8=12,12-8=4, 8-4=4, 所以 80 和 36 的最大公约数是 4.
原理: 第一步:任意给定两个正整数;判断他们是否都是 偶数。若是,则用2约简;若不是则执行第二步。
第二步:以较大的数减较小的数,接着把所得的差 与较小的数比较,并以大数减小数。继续这个操作, 直到所得的减数和差相等为止,则这个等数就是所 求的最大公约数。
新课讲解
例如用更相减损术求98与63的最大公约数
巩固练习
1、(1)1 624与899的最大公约数是________. (2)用辗转相除法求80和36的最大公约数,并用更相减损术检 验所得结果.
解:(1)1 624=899×1+725, 899=725×1+174, 725=174×4+29, 174=29×6, 故 1 624 与 899 的最大公约数是 29.故填 29.
理论基础: 已知m,n,r为正整数,若m=nq+r( 0≤r<n)(即r=m MOD n),则(m,n)=(n,r)。
新课讲解
辗转相除法——欧几里得算法
• 用辗转相除法求8251与6105的最大公约数,可以用两 数中较大的数除以较小的数,求得商和余数。
• 8251=6105×1+2146
问题3:8251与6105这两个数的公约数和6105与2146 的公约数有什么关系?
我们发现6105=2146×2+1813,同理,6105与2146的 公约数和2146与1813的公约数相等.
新课讲解
8251=6105×1+2146
6105=2146×2+1813 2146=1813×1+333 1813=333×5+148
显然37是148 和37的最大公 约数,也就是 8251和6105的 最大公约数
n=r m=n
n≠0? 否
输出m
求m除以n的余数r 是
结束
INPUT m,n
WHILE n<>0 r=m MOD n m=n n=r
WEND PRINT m END
新课讲解
《九章算术》——更相减损术
算理:可半者半之,不可半者,副置分母、子 之数,以少减多,更相减损,求其等也,以等 数约之。
算法案例---辗转相除法
复习引入
韩信是秦末汉初的著名军事家.据说有一次汉高祖刘邦在 卫士的簇拥下来到练兵场,刘邦问韩信有什么方法,不要逐个 报数,就能知道场上的士兵的人数,韩信先令士兵排成3列纵队, 结果有2人多余,接着下令排成5列纵队,结果又多出3人,随后 他又下令改为7列纵队,这次又剩下2人无法成整行.在场的人 都哈哈大笑,以为韩信不能清点出准确的人数,不料笑声刚落, 韩信高声报告共有士兵2333人.众人听了一楞,不知道韩信用 什么方法这么快就能得到正确的结果的.
例题讲解
例3、用辗转相除法求612与468的最大公约数, 并用更相减损术检验所得结果.
解:用辗转相除法:
612 = 468×1 + 144 , 468 = 144×3 + 36 , 144 = 36×4, 即612和468的最大公约数是36.
用更相减损术检验: 612和468为偶数, 两次用2约简得153和117, 153-117=36,117-36=81,81-36=45, 45-36=9,36-9=27,27-9=18,18-9=9, 所以612和468的最大公约数为9×2×2=36.
解:由于63不是偶数,把98和63以大数减小数, 并辗转相减
98-63=35 63-35=28 35-28=7 28-7=21 21-7=21 14-7=7 所以,98和63的最大公约数等于7
新课讲解
辗转相除法与更相减损术的区别
(1)都是求最大公约数的方法,计算上辗转相除 法以除法为主,更相减损术以减法为主,计算次数 上辗转相除法计算次数相对较少,特别当两个数字 大小区别较大时计算次数的区别较明显。
今天,我们将以这些古典案例的思想,设计出适宜计算机 的运行程序,提高我们对基本算法结构和算法语句在实际中的 运用能力.
新课讲解
问题1:在小学中我们是如何求出两个正整数的最大公约数的呢?
例1:求24与30的最大公约数。
解:2 3 0 2 4 用公有质因数2除, 3 15 1 2 用公有质因数3除, 5 4 5和4互质不除了。
得:18和24最大公约数是:2×3=6
问题2:如果公约数比较大而且根据我们的观察又不能得到 一些公约数,我们又应该怎样求它们的最大公约数?比如 求8251与6105的最大公约数?
Байду номын сангаас课讲解
辗转相除法——欧几里得算法
定义:所谓辗转相除法,就是对于给定的两个数, 用较大的数除以较小的数。若余数不为零,则将余 数和较小的数构成新的一对数,继续上面的除法, 直到大数被小数除尽,则这时较小的数就是原来两 个数的最大公约数。 用于求两个正整数的最大公约数
否则转到第二步. 第五步:输出最大公约数m.
新课讲解
程序框图如右图示: 程序如下:
INPUT “m,n=“;m,n DO
r=m MOD n m=n n=r LOOP UNTIL r=0 PRINT m END
开始
输入m,n r=m MOD n
m=n
n=r 否
r=0? 是
输出m 结束
新课讲解
用当型循环结构构造算法: 开始
方法归纳
求最大公约数常用的两种方法
(1)利用辗转相除法求给定的两个数的最大公约数,即利 用带余除法,用数对中较大的数除以较小的数,若余数 不为零,则将余数和较小的数构成新的数对,再利用带 余除法,直到大数被小数除尽,则这时的较小数就是原 来两个数的最大公约数. (2)利用更相减损术求两个正整数的最大公约数的一般步 骤是:首先判断两个正整数是否都是偶数.若是,用2 约简,也可以不除以2,直接求最大公约数,这样不影 响最后结果.
例题讲解
例2、用辗转相除法求324、243、135的最大公 约数.
思路分析:求三个数的最大公约数可以先求出两 个数的最大公约数,第三个数与前两个数的最大 公约数的最大公约数即为所求。
324 2431 81
243 81 3 0 则324与243的最大公约数为81. 又135 811 54,81 541 27,54 27 2 0, 则81与135的最大公约数为27. 所以,三个数324、243、135的最大公约数为27.
课堂小结
• 辗转相除法 • 用辗转相除法求最大公约数
作业
P45 练习1 P48 习题1.3 A组1 思考:你能根据辗转相除法的算法步骤 画出它的程序框图以及相应的程序语句 吗?
(2)从结果体现形式来看,辗转相除法体现结果 是以相除余数为0则得到,而更相减损术则以减数 与差相等而得到
例题讲解
例1、用辗转相除法求225和135的最大公约数
225=135×1+90
135=90×1+45 90=45×2
思考:从上面的例子中可以看出计算的规律是什么? 用大数除以小数 除数变成被除数,余数变成除数 重复第一步,直到余数为0
333=148×2+37 148=37×4+0
新课讲解
问题4:辗转相除直到何时结束?主要运用的是哪种算法 结构?
辗转相除法是一个反复执行直到余数等于0停止的步骤, 这实际上是一个循环结构 算法步骤如下:
第一步:输入两个正整数m,n(m>n). 第二步:计算m除以n所得的余数r. 第三步:m=n,n=r. 第四步:若r=0,则m,n的最大公约数等于m;
巩固练习
1、(1)1 624与899的最大公约数是________. (2)用辗转相除法求80和36的最大公约数,并用更相减损术检 验所得结果.
(2)辗转相除法: 80=36×2+8,36=8×4+4,8=4×2+0. 故 80 和 36 的最大公约数是 4. 用更相减损术检验: 80-36=44,44-36=8,36-8=28, 28-8=20,20-8=12,12-8=4, 8-4=4, 所以 80 和 36 的最大公约数是 4.
原理: 第一步:任意给定两个正整数;判断他们是否都是 偶数。若是,则用2约简;若不是则执行第二步。
第二步:以较大的数减较小的数,接着把所得的差 与较小的数比较,并以大数减小数。继续这个操作, 直到所得的减数和差相等为止,则这个等数就是所 求的最大公约数。
新课讲解
例如用更相减损术求98与63的最大公约数
巩固练习
1、(1)1 624与899的最大公约数是________. (2)用辗转相除法求80和36的最大公约数,并用更相减损术检 验所得结果.
解:(1)1 624=899×1+725, 899=725×1+174, 725=174×4+29, 174=29×6, 故 1 624 与 899 的最大公约数是 29.故填 29.
理论基础: 已知m,n,r为正整数,若m=nq+r( 0≤r<n)(即r=m MOD n),则(m,n)=(n,r)。
新课讲解
辗转相除法——欧几里得算法
• 用辗转相除法求8251与6105的最大公约数,可以用两 数中较大的数除以较小的数,求得商和余数。
• 8251=6105×1+2146
问题3:8251与6105这两个数的公约数和6105与2146 的公约数有什么关系?
我们发现6105=2146×2+1813,同理,6105与2146的 公约数和2146与1813的公约数相等.
新课讲解
8251=6105×1+2146
6105=2146×2+1813 2146=1813×1+333 1813=333×5+148
显然37是148 和37的最大公 约数,也就是 8251和6105的 最大公约数