算法案例辗转相除法


第五步:输出最大公约数b.
(2)、程序框图
开始
输入a,b a≠b? 是 r=a-b a=r 否 r<b? 是 a=b b=r 输出b
否
结束
(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
S1:用大数除以小数
显然37是148和37的最大公约数, S2:除数变成被除数,余数变成除数 也就是8251和6105的最大公约 S3:重复S1,直到余数为0 数
辗转相除法是一个反复执行直到余数等于0才停止的步骤,这实际上 是一个循环结构。
m=n×q+r
用程序框图表示出右边的过程
8251=6105×1+2146 6105=2146×2+1813 2146=1813×1+333
算 法 案 例
第一课时
复习引入
1. 回顾算法的三种表示方法: (1)、自然语言(算法步骤) (2)、程序框图 (三种逻辑结构) (3)、程序语言 (五种基本语句)
2. 思考: 小学学过的求两个数的最大公约数的方法? 先用两个公有的质因数连续去除,一直 除到所得的商是互质数为止,然后把所有的 除数连乘起来.
2、定义:
所谓更相减损术,就是对于给定的两个 数,用较大的数减去较小的数,然后将差和 较小的数构成新的一对数,再用较大的数减 去较小的数,反复执行此步骤直到差数和较 小的数相等,此时相等的两数便为原来两个 数的最大公约数。
3、方法: 例: 用更相减损术求98与63的最大公约数.
解:由于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)都是求最大公约数的方法,计算上辗转相除
法以除法为主,更相减损术以减法为主,计算次数
上辗转相除法计算次数相对较少,特别当两个数字
大小区别较大时计算次数的区别较明显。 (2)从结果体现形式来看,辗转相除法体现结果 是以相除余数为0则得到,而更相减损术则以减数与 差相等而得到。
一、辗转相除法(欧几里得算法)
1、定义: 所谓辗转相除法,就是对于给定的两个 数,用较大的数除以较小的数。若余数不为 零,则将余数和较小的数构成新的一对数, 继续上面的除法,直到大数被小数除尽,则 这时较小的数就是原来两个数的最大公约数。
完整的过程
8251=6105×1+2146 6105=2146×2+1813 2146=1813×1+333
练习:
1、用更相减损术求两个正数84与72的最大公约数. 思路分析:先约简,再求21与18的最大公约数, 然后乘以两次约简的质因数4。 2、求324、243、135这三个数的最大公约数。 思路分析:求三个数的最大公约数可以先求出两个 数的最大公约数,第三个数与前两个数的最大公约 数的最大公约数即为所求。
例: 用辗转相除法求225和135的最大公约数 225=135×1+90 135=90×1+45 90=45×2 显然45是90和45的最大公约数,也就是 225和135的最大公约数 思考1:从上面的两个例子中可以看出计 算的规律是什么?
1813=333×5+148 333=148×2+37
148=37×4+0
***思考:你能根据更相减损术设计程序,求两 个正整数的最大公约数吗?
(1)、算法步骤 第一步:输入两个正整数a,b(a>b); 第二步:若a不等于b ,则执行第三步;否则转 到第五步; 第三步:把a-b的差赋予r; 第四步:如果b>r, 那么把b赋给a,把r赋给b;否 则把r赋给a,执行第二步;
(2)、程序框图:
开始 输入m,n r=m MOD n m=n n=r r=0? 是 输出m 结束 否
(3)、程序:
INPUT “m,n=“;m,n DO r=m MOD n m=n n=r LOOP UNTIL r=0 PRINT m
END
二、更相减损术
1、背景介绍:
(1)、《九章算术》中的更相减损术: 可半者半之,不可半者,副置分母、子之数,以少减多, 更相减损,求其等也,以等数约之。 (2)、现代数学中的更相减损术: 第一步:任意给定两个正整数;判断他们是否都是偶数。 若是,则用2约简;若不是则执行第二步。 第二步:以较大的数减较小的数,接着把所得的差与较小 的数比较,并以大数减小数。继续这个操作,直到所得的 减数和差相等为止,则这个等数就是所求的最大公约数。
例:求下面两个正整数的最大公约数:
(1)求25和35的最大公约数 (2)求49和63的最大公约数
( 1) 5
25
5
35
7
( 2) 7
49
63
7
9
所以,25和35的最大公约数为5
所以,49和63的最大公约数为7
思考:除了用这种方法外还有没有其它方法? 例:如何算出8251和6105的最大公约数?
新课讲解:
r=m 13=333×5+148
333=148×2+37 148=37×4+0
是
思考:你能把辗转相除法编成一个计算机程序吗?
(1)、算法步骤: 第一步:输入两个正整数m,n(m>n). 第二步:计算m除以n所得的余数r.
第三步:m=n,n=r.
第四步:若r=0,则m,n的最大公约数等于m; 否则转到第二步. 第五步:输出最大公约数m.
合集下载

《算法案例(辗转相除法)》

《算法案例(辗转相除法)》
P36:例一 用更相减损术求98与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、分别用辗转相除法、更相减损术、 求两个正数84与72的最大公约数.(对比那种方法好)
思考:求324、243、135这三个数的最大公约数。
一、进位制(课本P40)
1、什么是进位制? 2、最常见的进位制是什么? 除此之外还有哪些常见的进位制?请举例说明. 进位制是人们为了计数和运算方便而约定的记数系统。
1、我们了解十进制吗?所谓的十进制,它是如 何构成的? 十进制
第一、它有0、1、2、3、4、5、6、7、8、9十个数字;
注意: 1.最后一步商为0, 2.将上式各步所得的余数从下到上排列,得到:89=1011001(2)
练习 将下面的十进制数化为二进制数? (1)10
3、十进制转换为其它进制 例3 把89化为五进制数 解: 根据除5取余法 以5作为除数,相应的除法算式为: 5 89 5 17 5 3 0
余数
4 2 3
完整的过程
8251=6105×1+2146 6105=2146×2+1813
2146=1813×1+333 1813=333×5+148 333=148×2+37 148=37×4+0
一、辗转相除法 225=135×1+90 (欧几里得算法) P 45 练习1(2)、(3)
90=45×2 135=90×1+45
所以,110011(2)=51。
练习 将下面的二进制数化为十进制数? (1)11 (2)111

算法案例.辗转相除法

算法案例.辗转相除法

在编程语言中的实现
```python def gcd(a, b) while b != 0
在编程语言中的实现
• a, b = b, a % b
在编程语言中的实现
• return a
在编程语言中的实现
```
Java实现:在Java中,可以使用以下代码实现辗转相除法
在编程语言中的实现
```java
适用范围与限制
适用范围
辗转相除法适用于求任意两个正整数 的最大公约数。
限制
辗转相除法不适用于负数、浮点数或 非整数运算。
算法的起源与历史
起源
辗转相除法最早可以追溯到古希腊数学家欧几里得(Euclid)的《几何原本》。
历史
辗转相除法在欧洲文艺复兴时期被重新发现,并被广泛用于数学研究和应用。 随着计算机科学的兴起,辗转相除法也成为计算机算法的重要基础之一,被广 泛应用于各种计算领域。
历史地位
辗转相除法是数学史上的重要成果,它最早由古希腊数学 家欧几里得在他的著作《几何原本》中提出。这一算法不 仅在数学领域有重要应用,还对计算机科学、密码学等领 域产生了深远影响。
应用价值
辗转相除法在许多领域都有广泛的应用,如计算机编程、 算法设计、密码学等。通过辗转相除法,可以快速求出任 意两个整数的最大公约数,进而实现其他数学运算和加密 算法。
减少计算量
提前结束算法
当余数小于除数时,可以提前结束算法,避免不必要 的计算。
使用更小的除数
在辗转相除法中,可以使用更小的除数来进行计算, 减少计算量。
优化循环结构
通过优化循环结构,减少循环次数,从而减少计算量。
算法的并行化实现
并行化算法设计
将辗转相除法的各个步骤分解为独立 的子任务,并分配给不同的处理器或

算法案例—辗转相除、更相减损、秦九韶

算法案例—辗转相除、更相减损、秦九韶

v1=1×(-2)+5=3 v2=3×(-2)+10=4 v3=4×(-2)+10=2 v4=2×(-2)+5=1 v5=1×(-2)+1=-1
比比谁算得快!
例2 已知一个5次多项式为 f (x )
= 5x + 3.5x + 1.7x - 0.8
5ห้องสมุดไป่ตู้
3
用秦九韶算法求当x=5时,V1,V3的值及求f(5)的值做多少次乘法运算.
v1 an x an1
v2 v1 x an2
最后的一 项是什么?

v3 v2 x an3 vn vn1 x a0
最第 i 个等 式是什么?
这种将求一个n次多项式f(x)的值转化成求n个一 次多项式的值的方法,称为秦九韶算法。
特征: 对于一个n次n+1项多项式,
观察括号的特点?做几次加法,几次乘法?

an1 x
n4

a3 ) x a2 ) x a1 ) x a0
f ( x) ((an x an1 ) x an2 ) x a1 ) x a0
要求多项式的值,应该先算最内层的一次多项式的值,即 然后,由内到外逐层计算一次多项式的值,即
〖创设情景,揭示课题〗
[问题2]:我们都是利用找公约数的方法来求
最大公约数,如果两个数比较大而且根据我
们的观察又不能得到一些公约数,我们又应
该怎样求它们的最大公约数?比如求8251与
6105的最大公约数?
1.辗转相除法:
例1 求两个正数8251和6105的最大公约数。
分析:8251与6105两数都比较大,而且没 有明显的公约数,如能把它们都变小一点,根据 已有的知识即可求出最大公约数.

1.3.1算法案例(辗转相除法)

1.3.1算法案例(辗转相除法)

程序框图: 程序框图: 开 始 程序: 程序
INPUT “m,n为正整数且m>n”;m,n DO r = m MOD n m= n n = r LOOP UNTIL r=0 PRINT m END
输入正整数m,n( 输入正整数m,n(m>n) m,n r=m MOD n
m=n n=r
r=0? 输出m 输出m 结 束 否
f (x) = an xn + an−1xn−1 +L+ a1x + a0
对该多项式按下面的方式进行改写: 对该多项式按下面的方式进行改写:
f (x) = an xn + an−1xn−1 +L+ a1x + a0
= (an xn−1 + an−1xn−2 +L+ a1)x + a0
=L L
= ((an xn−2 + an−1xn−3 +L+ a2 )x + a1)x + a0
思考1:为什么更相减损术能求两个正整数的最 思考1:为什么更相减损术能求两个正整数的最 1: 大公约数? 大公约数? 练习:用更相减损术求1457 188的最大公约数 1457与 的最大公约数. 练习:用更相减损术求1457与188的最大公约数. 用更相减损术求84 72的最大公约数 84与 的最大公约数. 例2: 用更相减损术求84与72的最大公约数.
2 18 3 9 3 30 15 5
所以, 与 的最大公约数是 的最大公约数是2× 所以,18与30的最大公约数是 ×3=6 思考2: 的最大公约数, 思考 :求8251与6105的最大公约数,用上述 与 的最大公约数 方法适合吗? 方法适合吗?

第一章 1.3 算法案例:辗转相除法、秦九韶算法

第一章  1.3  算法案例:辗转相除法、秦九韶算法

3,答案:C
返回
• 4.用秦九韶算法求f(x)=3x?+4x?+5x? +6x?+7x?+8x+1,当x=0.4时的值, 需进行乘法运算和加法运算的次数分别为 ( ) • A. 6 6 B. 5 6 • C.6 5 D.6 12 • 解析:改写多项多f(x)=(((((3x+4)x+5)x+ 6)x+7)x+8)x+1,则需要6次乘法和6次加 法. • 答案:A
返回
课堂练习
2.用辗转相除法求294和84的最大公约数时,需要 做除法的次数是( ) A.1 B. 2 C.3 D. 4 3.用秦九韶算法求多项式的值,可用哪种结构的算 法实现( ) A.顺序结构 B.条件结构 C.循环结构 D.A、B两种 • 2,解析:由294=84×3+42,84=42×2知,共需 做2次除法. • 答案:B
返回
法二:更相减损术:
因为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.
返回
[例2]
用秦九韶算法求多项式
1.3 算法案例 辗转相除法、秦九韶算法
返回
预习思考
• 1,用辗转相除法求80和36的最大公约数, 并用更相减损术检验所得结果.
• 2,用秦九韶算法求多项式f(x)=2x4-6x3 -5x2+4x-6在x=5时的值.
返回
[例1]
用辗转相除法求80和36的最大公约数,并
用更相减损术检验所得结果. [自主解答] 用辗转相除法:
返回
1.秦九韶算法的步骤
返回
2.应用秦九韶算法计算多项式的值应注意的问题 (1)要正确将多项式的形式进行改写. (2)计算应由内向外依次计算. (3)当多项式函数中间出现空项式,要以系数为零的

2024年《算法案例辗转相除法与更相减损术》教学教案

2024年《算法案例辗转相除法与更相减损术》教学教案

2024年《算法案例辗转相除法与更相减损术》教学优秀教案教学目标:1. 理解辗转相除法的原理和应用;2. 掌握更相减损术的步骤和技巧;3. 能够运用这两种算法解决实际问题。

教学内容:1. 辗转相除法的介绍;2. 更相减损术的介绍;3. 实例讲解和练习;4. 算法应用拓展。

教学重点:1. 辗转相除法的原理和步骤;2. 更相减损术的技巧和应用。

教学难点:1. 理解和运用辗转相除法;2. 灵活运用更相减损术。

教学准备:1. PPT课件;2. 教学案例和练习题。

教学过程:一、导入(5分钟)1. 引入算法的概念和重要性;2. 介绍本节课将学习的两种算法:辗转相除法和更相减损术。

二、辗转相除法(15分钟)1. 讲解辗转相除法的原理和步骤;2. 通过PPT课件和实例讲解辗转相除法的应用;3. 让学生跟随PPT课件的步骤进行练习,巩固理解。

三、更相减损术(15分钟)1. 讲解更相减损术的步骤和技巧;2. 通过PPT课件和实例讲解更相减损术的应用;3. 让学生跟随PPT课件的步骤进行练习,巩固理解。

四、实例讲解和练习(15分钟)1. 给出几个实例,让学生运用辗转相除法和更相减损术进行解决;2. 引导学生思考和讨论,如何选择合适的算法;3. 给出答案和解析,讲解算法选择的原因。

五、算法应用拓展(10分钟)1. 引导学生思考和讨论,如何将这两种算法应用到实际问题中;2. 给出几个实际问题,让学生尝试解决;3. 给出答案和解析,讲解算法应用的方法和技巧。

教学反思:通过本节课的教学,学生应该能够理解和掌握辗转相除法和更相减损术的原理和应用。

在教学过程中,要注意引导学生主动思考和讨论,培养学生的算法思维和解决问题的能力。

要注重练习和实际应用,让学生能够灵活运用所学知识解决实际问题。

六、案例分析:辗转相除法的应用(15分钟)1. 提供一个实际案例,要求学生使用辗转相除法计算两个正整数的最大公约数;2. 学生独立完成计算,教师巡回指导;3. 集体讨论解题过程,解答学生可能遇到的问题;4. 教师总结案例中的关键步骤和注意事项。

《算法案例---辗转相除法》名师课件2

输入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
新课讲解
《九章算术》——更相减损术
算理:可半者半之,不可半者,副置分母、子 之数,以少减多,更相减损,求其等也,以等 数约之。
巩固练习
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.
新课讲解
程序框图如右图示: 程序如下:
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 结束
新课讲解
用当型循环结构构造算法: 开始
课堂小结
• 辗转相除法 • 用辗转相除法求最大公约数
作业
P45 练习1 P48 习题1.3 A组1 思考:你能根据辗转相除法的算法步骤 画出它的程序框图以及相应的程序语句 吗?
今天,我们将以这些古典案例的思想,设计出适宜计算机 的运行程序,提高我们对基本算法结构学中我们是如何求出两个正整数的最大公约数的呢?
例1:求24与30的最大公约数。

1、3、1算法案例(辗转相除法)


你从中看到了 怎样的规律? 怎么用程序框 图来描述呢?
所以, 所以,当x = 5时,多项式的值等于 时 多项式的值等于17255.2
开始
程序框图:
输入f(x)的系数: a0,a1,a2,a3,a4a5 输入x0
v0 = an vk = vk−1 x + an−k (k =1,2,L, n)
课堂小结: 课堂小结:
1、秦九韶算法的方法和步骤 、 2、秦九韶算法的程序框图 、
算法步骤: 第一步:给定两个正整数m,n; 第二步:计算m除以n所得的余数r; 第三步:m=n,n=r; 第四步:若r=0,则m,n的最大公约数等于m; 否则,返回第二步。
开始
程序框图: 程序:
输入m,n 求m除以n的余数r m=n n=r 否 r=0 ? 是 输入m
INPUT m,n DO r= m MOD n m=n n=r LOOP UNTIL r=0 PRINT m END
按由里到外的顺序,依此计算一次多项式当 时的值: 按由里到外的顺序,依此计算一次多项式当x = 5时的值: 时的值
v0 = 5 v1 = 5×5+ 2 = 27 v2 = 27×5+3.5 =138.5 v3 =138.5×5− 2.6 = 689.9 v4 = 689.9×5+1.7 = 3451.2 v5 = 3451.2×5−0.8 =17255.2
结束
欧几里得辗转相除法找出a,b的最大公约数的步骤是: (1)计算a÷b的余数r,若r=0,则b为a,b的最大公约数; (2)若r≠0,则把前面的除数b作为新的被除数,把r作 为新的除数,继续运算,直到余数为0,此时的除数即为 a,b的最大公约数.
算 法 案 例
第二课时

算法案例(完整版)


例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排列得到 的二进制数.

算法案例2辗转相除法1


巩固运用
• 例1.求78和36的最大公约数
巩固运用
• 例2.写出图示流程图所表 达算法的伪代码,并求出最 后输出的n的值
回顾反思
辗转相除法是当大数被小数除尽时,结束除 法运算,较小的数就是最大公约数. 更相减损术是当大数减去小数的差等于小数 时减法停止.较小的数就是最大公约数. 求三个以上(含三个数)的数的最大公约数时, 可依次通过求两个数的最大公约数与第三数 的最大公约数来求得.
算法案例2
求最大公约数
• 你能求出18与30的公约数吗? • 你能看出204与85的公约数吗?
算法1 辗转相除法
• 例1 求两个正数a=204和b=85的最大公约数。 • 分析:204与85两数都比较大,而且没有明显 的公约数,如能把它们都变小一点,根据已 有的知识即可求出最大公约数
算法1 辗转相除法
• 翻译出来为: • 第一步:任意给出两个正数;判断它们是否都是偶数。若是, 用2约简;若不是,执行第二步。 • 第二步:以较大的数减去较小的数,接着把较小的数与所得的 差比较,并以大数减小数。继续这个操作,直到所得的数相等 为止,则这个数(等数)就是所求的最大公约数。
算法2 更相减损术
• 例2 用更相减损术求91与49的最大公约数. • 解:由于49不是偶数,把91和49以大数减小 数,并辗转相减, • 即:91-48=42 49-42=7 42-7=35 • 35-7=28 28-7=21 21-7=14 • 14-7=7 • 所以,91与49的最大公约数是7。
比较辗转相除法与更相减损术的区别
• (1)都是求最大公约数的方法,计算上 辗转相除法以除法为主,更相减损术以 减法为主,计算次数上辗转相除法计算 次数相对较少,特别当两个数字大小区 别较大时计算次数的区别较明显。 • (2)从结果体现形式来看,辗转相除法 体现结果是以相除余数为0则得到,而更 相减损术则以减数与差相等而得到
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档