Upload
shannon-jordan
View
87
Download
9
Embed Size (px)
DESCRIPTION
算 法 案 例. ( 第一课时 ). 5. 25. 35. ( 1 ). 7. 49. 63. ( 2 ). 5. 7. 7. 9. 1 、求两个正整数的最大公约数. ( 1 )求 25 和 35 的最大公约数 ( 2 )求 49 和 63 的最大公约数. 所以, 25 和 35 的最大公约数为 5. 所以, 49 和 63 的最大公约数为 7. 2 、求 8251 和 6105 的最大公约数. 辗转相除法(欧几里得算法). 观察用辗转相除法求 8251 和 6105 的最大公约数的过程. - PowerPoint PPT Presentation
Citation preview
算 法 案 例
( 第一课时 )
1 、求两个正整数的最大公约数
( 1 )求 25 和 35 的最大公约数( 2 )求 49 和 63 的最大公约数
2 、求 8251 和 6105 的最大公约数
25( 1 ) 5
5
35
7
49( 2 ) 7
7
63
9
所以, 25 和 35 的最大公约数为 5 所以, 49 和 63 的最大公约数为 7
辗转相除法(欧几里得算法)
观察用辗转相除法求 8251 和 6105 的最大公约数的过程
第一步 用两数中较大的数除以较小的数,求得商和余数8251=6105×1+2146
结论: 8251 和 6105 的公约数就是 6105 和 2146 的公约数,求 8251和 6105 的最大公约数,只要求出 6105 和 2146 的公约数就可以了。
第二步 对 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
333=148×2+37
148=37×4+0
例 2 用辗转相除法求 225 和 135 的最大公约数
225=135×1+90
135=90×1+45
90=45×2
显然 37 是 148 和 37 的最大公约数,也就是 8251 和 6105 的最大公约数
显然 45 是 90 和 45 的最大公约数,也就是 225 和 135 的最大公约数
思考 1 :从上面的两个例子可以看出计算的规律是什么?
S1 :用大数除以小数
S2 :除数变成被除数,余数变成除数
S3 :重复 S1 ,直到余数为 0
辗转相除法是一个反复执行直到余数等于 0 停止的步骤,这实际上是一个循环结构。
8251=6105×1+2146
6105=2146×2+1813
2146=1813×1+333
1813=333×5+148
333=148×2+37
148=37×4+0
m = n × q + r
用程序框图表示出右边的过程
r=m MOD n
m = n
n = r
r=0?
是否
《九章算术》——更相减损术
算理:可半者半之,不可半者,副置分母、子之数,以少减多,更相减损,求其等也,以等数约之。
第一步:任意给顶两个正整数;判断他们是否都是偶数。若是,则用 2约简;若不是则执行第二步。
第二步:以较大的数减较小的数,接着把所得的差与较小的数比较,并以大数减小数。继续这个操作,直到所得的减数和差相等为止,则这个等数就是所求的最大公约数。
例 3 用更相减损术求 98 与 63 的最大公约数
解:由于 63 不是偶数,把 98 和 63 以大数减小数,并辗转相减 98 - 63 = 3563 - 35 = 2835 - 28 = 728 - 7 = 2121 - 7 = 1414 - 7 = 7
所以, 98 和 63 的最大公约数等于 7
练习:
课本 P36 练习第 1 题
算法案例
(第二课时)
计算多项式f(x) = x5+x4+x3+x2+x+1当 x = 5 的值算法 1 :因为f(x) = x5+x4+x3+x2+x+1
所以f( 5 ) =5 5+ 5 4+ 5 3+ 5 2+ 5 +1
=3125 + 625 + 125 + 25 + 5 +1
= 3906算法 2 :
f( 5 ) =5 5+ 5 4+ 5 3+ 5 2+ 5 +1=5× ( 5 4+ 5 3+ 5 2+ 5 +1) +1=5× ( 5× ( 5 3+ 5 2+ 5 +1 )+1 ) +1=5× ( 5× ( 5× ( 5 2+ 5 +1) +1 )+1 ) +1=5× ( 5× ( 5× ( 5 × ( 5 +1 ) +1 ) +1 )+1 ) +1
《数书九章》——秦九韶算法
011
1)( axaxaxaxf nn
nn
设 )(xf 是一个 n 次的多项式
对该多项式按下面的方式进行改写:
011
1)( axaxaxaxf nn
nn
012
11 )( axaxaxa n
nn
n
0123
12 ))(( axaxaxaxa n
nn
n
0121 )))(( axaxaxaxa nnn
这是怎样的一种改写方式?最后的结果是
什么?
0121 )))(()( axaxaxaxaxf nnn
要求多项式的值,应该先算最内层的一次多项式的值,即
11 nn axav
然后,由内到外逐层计算一次多项式的值,即
212 naxvv
323 naxvv
01 axvv nn
最后的一项是什么?
这种将求一个 n 次多项式 f ( x )的值转化成求 n 个一次多项式的值的方法,称为秦九韶算法。
例 2 已知一个五次多项式为8.07.16.25.325)( 2345 xxxxxxf
用秦九韶算法求这个多项式当 x = 5 的值。解:将多项式变形:
8.0)7.1)6.2)5.3)25(((()( xxxxxxf
按由里到外的顺序,依此计算一次多项式当 x = 5 时的值:
272551 v
50 v
5.1385.35272 v
9.6896.255.1383 v
2.34517.159.6894 v
2.172558.052.34515 v
所以,当 x = 5 时,多项式的值等于 17255.2
你从中看到了怎样的规律?怎么用程序框图来描
述呢?
开始
输入 f (x) 的系数:a0 、 a1 、 a2 、 a3 、 a4 、 a5
输入 x0
n=0
v=a5
v= v·x0+a5-n
n=n+1
n < 5?
输出 v
结束
否是
秦九韶算法检验
注意:要想使用检验功能,请使用前,先要减低宏的安全限制
排序的算法将下面数字按由小到大的顺序排列
8 , 3 , 2 , 5 , 9 , 6
方法 1 :S1 :比较第 2 个数与第 1 个数的大小,并排序得 3 , 8
S2 :将第 3 个数与 S1 中的数比较,插入适当的位置,得到2 , 3 , 8
S3 :将第 4 个数与 S2 中的数比较,并插入适当的位置,如此继续下去,直到把最后一个数插入到上一步已排好的数列的合适位置为止,得到:
2 , 3 , 5 , 8
2 , 3 , 5 , 8 , 9
2 , 3 , 5 , 6 , 8 , 9
S4 :S5 :
排序的算法
将下面数字按由小到大的顺序排列
8 , 3 , 2 , 5 , 9, 6
方法 1 :
过程演示
8 3 2 5 9 6
开始
排第 1次排第 2次排第 3次排第 4次
8 3 2 5 9 6
3 8 2 5 9 6
2 3 8 5 9 6
2 3 5 8 9 6
2 3 5 8 9 6
排第 5次
2 3 5 6 8 9
排序的算法
将下面数字按由小到大的顺序排列
8 , 3 , 2 , 5 , 9 , 6
方法 2 : S1 :用第 1 个数与第 2 个数比较,若前者小则两数不变,否则,交换这两个数的位置。
S2 :按这样的原则,比较第 2 个数和第 3 个数,前者小则两数不变,否则,交换这两个数的位置……直到比完最后两个数。(称为“一趟”)
S3 :如果前一趟的比较中交换的次数为 0 ,说明排序已完成,否则回到 S2 。
根据题意,一趟后的结果是什么?
为什么说前一趟的比较中交换为 0次时,排序完成?
3 , 2 , 5 , 8 , 6 , 9
排序的算法
将下面数字按由小到大的顺序排列
8 , 3 , 2 , 5 , 9 , 6
请将每一趟的结果写出来
第 1 趟 8
3
2
5
9
6
3
8
2
5
9
6
3
2
8
5
9
6
3
2
5
8
9
6
3
2
5
8
9
6
3
2
5
8
6
9
该趟中交换的次数为 ________ 次4
排序的算法
将下面数字按由小到大的顺序排列
8 , 3 , 2 , 5 , 9 , 6
请将每一趟的结果写出来
第 2 趟 3
2
5
8
6
9
2
3
5
8
6
9
2
3
5
8
6
9
2
3
5
8
6
9
2
3
5
6
8
9
2
3
5
6
8
9
该趟中交换的次数为 ________ 次2
排序的算法
将下面数字按由小到大的顺序排列
8 , 3 , 2 , 5 , 9 , 6
请将每一趟的结果写出来
第 3 趟 2
3
5
6
8
9
2
3
5
6
8
9
2
3
5
6
8
9
2
3
5
6
8
9
2
3
5
6
8
9
2
3
5
6
8
9
该趟中交换的次数为 ________ 次,0
所以排序的结果为:
2 , 3 , 5 , 6 , 8 , 9
练习:
1 、根据前面的介绍阅读课本 P32 的例 3 ,并完成图 1.3-6 的填空
课后作业
课本 P38 的习题 1.3 第 2 、 3 题
算法案例(第三课时)
一、进位制一、进位制
1 、什么是进位制?
2 、最常见的进位制是什么?除此之外还有哪些常见的进位制?请举例说明.
进位制是人们为了计数和运算方便而约定的记数系统。
1 、我们了解十进制吗?所谓的十进制,它是如何构成的?
十进制由两个部分构成
例如: 3721
0123 1011021071037213
其它进位制的数又是如何的呢?
第一、它有 0 、 1 、 2 、 3 、 4 、 5 、 6 、7 、 8 、 9 十个数字;
第二、它有“权位”,即从右往左为个位、十位、百位、千位等等。
( 用 10 个数字来记数,称基数为 10)
表示有: 1 个 1 , 2 个十, 7 个百即 7 个 10 的平方, 3 个千即 3 个 10 的立方
2 、 二进制
二进制是用 0 、 1 两个数字来描述的。如 11001等
(1)二进制的表示方法
区分的写法: 11001 ( 2 )或者( 11001 ) 2
01234(2) 212020212111001
8 进制呢?如 7342(8)
k 进制呢? anan-1an-2…a2a1(k) ?
二、二进制与十进制的转换
1 、二进制数转化为十进制数
例 1 将二进制数 110011(2) 化成十进制数
解: 根据进位制的定义可知012345
)2( 212120202121110011
121161321 51
所以, 110011 ( 2 ) =51 。
练习
将下面的二进制数化为十进制数?
( 1 ) 11 ( 2 ) 111 ( 3 ) 1111 ( 4 ) 11111
2 、十进制转换为二进制( 除 2 取余法:用 2 连续去除 89 或所得的商,然后取余数 )
例 2 把 89 化为二进制数解:根据“逢二进一”的原则,有
89 = 2×44 +1 = 2× (2×22 + 0)+1
= 2×( 2×( 2×11 + 0)+0)+1= 2× (2× (2× (2× 5 + 1)+0)+0)+1
5 = 2× 2 + 1
= 2× ( 2× ( 2× ( 2× ( 22 + 1 )+ 1 )+ 0 )+ 0 )+ 1
89 = 1×26 + 0×25 + 1×24 + 1×23 + 0×22 + 0×21 + 1×20
所以: 89=1011001 ( 2 )
= 2× ( 2× ( 2× ( 23 + 2 + 1 )+ 0 )+ 0 )+ 1
= 2× ( 2× ( 24 + 22 + 2 + 0 )+ 0 )+ 1
= 2× ( 25 + 23+22 + 0 + 0 )+ 1
= 26 + 24+23 + 0 + 0 + 21
89 = 2×44 +144 = 2×22 + 0
22 = 2×11 +011 = 2× 5 +1 = 2× (2× (2× (2× (2× 2 + 1)+1)+0)+0)+1
所以 89 = 2× ( 2× ( 2× ( 2× ( 2 × 2 + 1 )+ 1 )+ 0 )+ 0 )+ 1
2 、十进制转换为二进制例 2 把 89 化为二进制数
5
2
2
2
1
2
0
1
0
余数
11
22
48
89
2
2
2
2
0
1
1
0
1注意:1. 最后一步商为 0 ,2. 将上式各步所得的余数从下到上排列,得到: 89=1011001 ( 2 )
练习
将下面的十进制数化为二进制数?
( 1 ) 10 ( 2 ) 20 ( 3 ) 128 ( 4 ) 256
例 3 把 89 化为五进制数
3 、十进制转换为其它进制
解: 根据除 k 取余法
以 5 作为除数,相应的除法算式为:
所以, 89=324 ( 5 )。
895
175
350
4
2
3
余数
将 k 进制数 a 转换为十进制数 ( 共有 n 位 ) 的程序a=anan-1… a3a2a1(k)
=ank(n-1)+an-1k(n-2)+ … + a3k2 +a2k1+a1k0
b=a1k0
b=a2k1
+bb=a3k2 +
b…b=ankn-1
+b
ai=GET a[i]
GET 函数用于取出 a 的右数第 i 位数
INPUT a,k,ni=1b=0
WHILE i<=nt=GET a[i]b=t*k^(i-1)+b
i=i+1WENDPRINT b
END
i=i+1
i=1
b=aiki-1+b
小结与作业
22 、掌握二进制与十进制之间的转换、掌握二进制与十进制之间的转换
11 、进位制的概念、进位制的概念
作业:课本 P38 ,习题 1.3第 4 题
算法案例
(第四课时)
排序的算法将下面数字按由小到大的顺序排列
8 , 3 , 2 , 5 , 9 , 6
方法 1 :S1 :比较第 2 个数与第 1 个数的大小,并排序得 3 , 8
S2 :将第 3 个数与 S1 中的数比较,插入适当的位置,得到2 , 3 , 8
S3 :将第 4 个数与 S2 中的数比较,并插入适当的位置,如此继续下去,直到把最后一个数插入到上一步已排好的数列的合适位置为止,得到:
2 , 3 , 5 , 8
2 , 3 , 5 , 8 , 9
2 , 3 , 5 , 6 , 8 , 9
S4 :S5 :
排序的算法
将下面数字按由小到大的顺序排列
8 , 3 , 2 , 5 , 9, 6
方法 1 :
过程演示
8 3 2 5 9 6
开始
排第 1次排第 2次排第 3次排第 4次
8 3 2 5 9 6
3 8 2 5 9 6
2 3 8 5 9 6
2 3 5 8 9 6
2 3 5 8 9 6
排第 5次
2 3 5 6 8 9
排序的算法
将下面数字按由小到大的顺序排列
8 , 3 , 2 , 5 , 9 , 6
方法 2 : S1 :用第 1 个数与第 2 个数比较,若前者小则两数不变,否则,交换这两个数的位置。
S2 :按这样的原则,比较第 2 个数和第 3 个数,前者小则两数不变,否则,交换这两个数的位置……直到比完最后两个数。(称为“一趟”)
S3 :如果前一趟的比较中交换的次数为 0 ,说明排序已完成,否则回到 S2 。
根据题意,一趟后的结果是什么?
为什么说前一趟的比较中交换为 0次时,排序完成?
3 , 2 , 5 , 8 , 6 , 9
排序的算法
将下面数字按由小到大的顺序排列
8 , 3 , 2 , 5 , 9 , 6
请将每一趟的结果写出来
第 1 趟 8
3
2
5
9
6
3
8
2
5
9
6
3
2
8
5
9
6
3
2
5
8
9
6
3
2
5
8
9
6
3
2
5
8
6
9
该趟中交换的次数为 ________ 次4
排序的算法
将下面数字按由小到大的顺序排列
8 , 3 , 2 , 5 , 9 , 6
请将每一趟的结果写出来
第 2 趟 3
2
5
8
6
9
2
3
5
8
6
9
2
3
5
8
6
9
2
3
5
8
6
9
2
3
5
6
8
9
2
3
5
6
8
9
该趟中交换的次数为 ________ 次2
排序的算法
将下面数字按由小到大的顺序排列
8 , 3 , 2 , 5 , 9 , 6
请将每一趟的结果写出来
第 3 趟 2
3
5
6
8
9
2
3
5
6
8
9
2
3
5
6
8
9
2
3
5
6
8
9
2
3
5
6
8
9
2
3
5
6
8
9
该趟中交换的次数为 ________ 次,0
所以排序的结果为:
2 , 3 , 5 , 6 , 8 , 9
练习:
1 、根据前面的介绍阅读课本 P32 的例 3 ,并完成图 1.3-6 的填空
课后作业
课本 P38 的习题 1.3 第 2 、 3 题