1 / 42

算 法 案 例

算 法 案 例. ( 第一课时 ). 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 的最大公约数的过程.

Download Presentation

算 法 案 例

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 算 法 案 例 (第一课时)

  2. 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的最大公约数

  3. 辗转相除法(欧几里得算法) 观察用辗转相除法求8251和6105的最大公约数的过程 第一步 用两数中较大的数除以较小的数,求得商和余数8251=6105×1+2146 结论: 8251和6105的公约数就是6105和2146的公约数,求8251和6105的最大公约数,只要求出6105和2146的公约数就可以了。 为什么呢? 第二步 对6105和2146重复第一步的做法6105=2146×2+1813同理6105和2146的最大公约数也是2146和1813的最大公约数。 思考:从上述的过程你体会到了什么?

  4. 完整的过程 例2 用辗转相除法求225和135的最大公约数 8251=6105×1+2146 225=135×1+90 6105=2146×2+1813 135=90×1+45 2146=1813×1+333 90=45×2 显然45是90和45的最大公约数,也就是225和135的最大公约数 1813=333×5+148 思考1:从上面的两个例子可以看出计算的规律是什么? 333=148×2+37 148=37×4+0 S1:用大数除以小数 显然37是148和37的最大公约数,也就是8251和6105的最大公约数 S2:除数变成被除数,余数变成除数 S3:重复S1,直到余数为0

  5. 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:辗转相除法中的关键步骤是哪种逻辑结构? 辗转相除法是一个反复执行直到余数等于0停止的步骤,这实际上是一个循环结构。 m = n × q + r 用程序框图表示出右边的过程 r=m MOD n m = n n = r r=0? 否 是

  6. 《九章算术》——更相减损术 算理:可半者半之,不可半者,副置分母、子之数,以少减多,更相减损,求其等也,以等数约之。 第一步:任意给顶两个正整数;判断他们是否都是偶数。若是,则用2约简;若不是则执行第二步。 第二步:以较大的数减较小的数,接着把所得的差与较小的数比较,并以大数减小数。继续这个操作,直到所得的减数和差相等为止,则这个等数就是所求的最大公约数。

  7. 例3 用更相减损术求98与63的最大公约数 解:由于63不是偶数,把98和63以大数减小数,并辗转相减 98-63=3563-35=2835-28=728-7=21 21-7=14 14-7=7 所以,98和63的最大公约数等于7 练习: 课本P36练习第1题

  8. 算法案例 (第二课时)

  9. 计算多项式f(x) =x5+x4+x3+x2+x+1当x = 5的值 算法1: 因为f(x) =x5+x4+x3+x2+x+1 所以f(5)=55+54+53+52+5+1 =3125+625+125+25+5+1 = 3906 算法2: f(5)=55+54+53+52+5+1 =5×(54+53+52+5+1) +1 =5×(5×(53+52+5 +1 )+1 ) +1 =5×(5×( 5× (52+5 +1) +1 )+1 ) +1 =5×(5×( 5× (5 × (5 +1 ) +1 ) +1 )+1 ) +1 分析:两种算法中各用了几次乘法运算?和几次加法运算?

  10. 是一个n次的多项式 设 《数书九章》——秦九韶算法 这是怎样的一种改写方式?最后的结果是什么? 对该多项式按下面的方式进行改写: 思考:当知道了x的值后该如何求多项式的值?

  11. 要求多项式的值,应该先算最内层的一次多项式的值,即要求多项式的值,应该先算最内层的一次多项式的值,即 然后,由内到外逐层计算一次多项式的值,即 最后的一项是什么? 思考:在求多项式的值上,这是怎样的一个转化? 这种将求一个n次多项式f(x)的值转化成求n个一次多项式的值的方法,称为秦九韶算法。

  12. 例2 已知一个五次多项式为 用秦九韶算法求这个多项式当x = 5的值。 解: 将多项式变形: 按由里到外的顺序,依此计算一次多项式当x = 5时的值: 你从中看到了怎样的规律?怎么用程序框图来描述呢? 所以,当x = 5时,多项式的值等于17255.2

  13. 开始 输入f (x)的系数: a0、a1、a2、a3、a4、a5 输入x0 n=0 v=a5 v= v·x0+a5-n n=n+1 n < 5? 是 否 输出v 结束 注意:要想使用检验功能,请使用前,先要减低宏的安全限制

  14. 排序的算法 将下面数字按由小到大的顺序排列 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 S4: 2 ,3, 5, 8 ,9 S5: 2 ,3, 5, 6 , 8 , 9

  15. 直接排序法 8 2 2 2 3 2 8 3 3 3 3 3 8 3 5 8 5 2 2 2 5 6 8 8 5 5 5 5 9 8 9 9 9 9 9 6 6 6 6 9 6 6 排序的算法 将下面数字按由小到大的顺序排列 8,3,2,5,9,6 方法1: 开始 过程演示 排第1次 排第2次 排第3次 排第4次 排第5次

  16. 排序的算法 将下面数字按由小到大的顺序排列 8,3,2,5,9,6 方法2: S1:用第1个数与第2个数比较,若前者小则两数不变,否则,交换这两个数的位置。 根据题意,一趟后的结果是什么? S2:按这样的原则,比较第2个数和第3个数,前者小则两数不变,否则,交换这两个数的位置……直到比完最后两个数。(称为“一趟”) 为什么说前一趟的比较中交换为0次时,排序完成? 3,2,5, 8, 6 , 9 S3:如果前一趟的比较中交换的次数为0,说明排序已完成,否则回到S2。

  17. 3 3 3 3 8 3 2 2 2 2 3 8 2 5 2 5 5 8 5 8 5 8 8 5 6 9 9 9 9 9 6 6 6 6 6 9 排序的算法 将下面数字按由小到大的顺序排列 8,3,2,5,9,6 请将每一趟的结果写出来 第1趟 4 该趟中交换的次数为________次

  18. 2 2 2 2 3 2 3 3 3 3 2 3 5 5 5 5 5 5 8 6 8 8 6 8 8 6 6 6 8 6 9 9 9 9 9 9 排序的算法 将下面数字按由小到大的顺序排列 8,3,2,5,9,6 请将每一趟的结果写出来 第2趟 2 该趟中交换的次数为________次

  19. 2 2 2 2 2 2 3 3 3 3 3 3 5 5 5 5 5 5 6 6 6 6 6 6 8 8 8 8 8 8 9 9 9 9 9 9 排序的算法 将下面数字按由小到大的顺序排列 所以排序的结果为: 2,3,5,6,8,9 8,3,2,5,9,6 请将每一趟的结果写出来 第3趟 0 该趟中交换的次数为________次,

  20. 练习: 1、根据前面的介绍阅读课本P32的例3,并完成图1.3-6的填空

  21. 课后作业 课本P38的习题1.3第2、3题

  22. 算法案例 (第三课时)

  23. 一、进位制 1、什么是进位制? 2、最常见的进位制是什么?除此之外还有哪些常见的进位制?请举例说明. 进位制是人们为了计数和运算方便而约定的记数系统。

  24. 1、我们了解十进制吗?所谓的十进制,它是如何构成的?1、我们了解十进制吗?所谓的十进制,它是如何构成的? 十进制由两个部分构成 第一、它有0、1、2、3、4、5、6、7、8、9十个数字; (用10个数字来记数,称基数为10) 第二、它有“权位”,即从右往左为个位、十位、百位、千位等等。 例如:3721 表示有:1个1,2个十, 7个百即7个10的平方, 3个千即3个10的立方 其它进位制的数又是如何的呢?

  25. 2、 二进制 (1)二进制的表示方法 二进制是用0、1两个数字来描述的。如11001等 区分的写法:11001(2)或者(11001)2 8进制呢? 如7342(8) k进制呢? anan-1an-2…a2a1(k)?

  26. 二、二进制与十进制的转换 1、二进制数转化为十进制数 例1 将二进制数110011(2)化成十进制数 解: 根据进位制的定义可知 所以,110011(2)=51。

  27. 练习 将下面的二进制数化为十进制数? (1)11 (2)111 (3)1111 (4)11111

  28. 2、十进制转换为二进制 (除2取余法:用2连续去除89或所得的商,然后取余数) 例2 把89化为二进制数 解: 根据“逢二进一”的原则,有 89=2×44+1 89=2×44+1 = 2×(2×22+0)+1 44= 2×22+0 = 2×( 2×( 2×11+0)+0)+1 22= 2×11+0 = 2× (2× (2×(2× 5+1)+0)+0)+1 11= 2× 5+1 = 2× (2× (2× (2×(2× 2+1)+1)+0)+0)+1 5= 2× 2+1 所以89=2×(2×(2×(2×(2 × 2 +1)+1)+0)+0)+1 =2×(2×(2×(2×(22+1)+1)+0)+0)+1 =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=1×26+0×25+1×24+1×23+0×22+0×21+1×20 所以:89=1011001(2)

  29. 2、十进制转换为二进制 例2 把89化为二进制数 余数 89 2 48 1 2 22 0 2 11 0 2 5 1 2 2 1 2 1 0 2 0 1 注意: 1.最后一步商为0, 2.将上式各步所得的余数从下到上排列,得到:89=1011001(2)

  30. 练习 将下面的十进制数化为二进制数? (1)10 (2)20 (3)128 (4)256

  31. 余数 5 89 5 17 4 3 2 5 0 3 3、十进制转换为其它进制 例3 把89化为五进制数 解: 根据除k取余法 以5作为除数,相应的除法算式为: 所以,89=324(5)。

  32. 将k进制数a转换为十进制数(共有 n位)的程序 a=anan-1… a3a2a1(k) =ank(n-1)+an-1k(n-2)+ … + a3k2 +a2k1+a1k0 INPUT a,k,n b=a1k0 i=1 b=0 b=a2k1 +b WHILE i<=n b=a3k2 +b t=GET a[i] … b=t*k^(i-1)+b b=ankn-1 +b i=i+1 i=1 WEND i=i+1 b=aiki-1+b PRINT b ai=GET a[i] GET函数用于取出a的右数第i位数 END

  33. 小结与作业 1、进位制的概念 2、掌握二进制与十进制之间的转换 作业:课本P38,习题1.3 第4题

  34. 算法案例 (第四课时)

  35. 排序的算法 将下面数字按由小到大的顺序排列 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 S4: 2 ,3, 5, 8 ,9 S5: 2 ,3, 5, 6 , 8 , 9

  36. 直接排序法 8 2 2 2 3 2 8 3 3 3 3 3 8 3 5 8 5 2 2 2 5 6 8 8 5 5 5 5 9 8 9 9 9 9 9 6 6 6 6 9 6 6 排序的算法 将下面数字按由小到大的顺序排列 8,3,2,5,9,6 方法1: 开始 过程演示 排第1次 排第2次 排第3次 排第4次 排第5次

  37. 排序的算法 将下面数字按由小到大的顺序排列 8,3,2,5,9,6 方法2: S1:用第1个数与第2个数比较,若前者小则两数不变,否则,交换这两个数的位置。 根据题意,一趟后的结果是什么? S2:按这样的原则,比较第2个数和第3个数,前者小则两数不变,否则,交换这两个数的位置……直到比完最后两个数。(称为“一趟”) 为什么说前一趟的比较中交换为0次时,排序完成? 3,2,5, 8, 6 , 9 S3:如果前一趟的比较中交换的次数为0,说明排序已完成,否则回到S2。

  38. 3 3 3 3 8 3 2 2 2 2 3 8 2 5 2 5 5 8 5 8 5 8 8 5 6 9 9 9 9 9 6 6 6 6 6 9 排序的算法 将下面数字按由小到大的顺序排列 8,3,2,5,9,6 请将每一趟的结果写出来 第1趟 4 该趟中交换的次数为________次

  39. 2 2 2 2 3 2 3 3 3 3 2 3 5 5 5 5 5 5 8 6 8 8 6 8 8 6 6 6 8 6 9 9 9 9 9 9 排序的算法 将下面数字按由小到大的顺序排列 8,3,2,5,9,6 请将每一趟的结果写出来 第2趟 2 该趟中交换的次数为________次

  40. 2 2 2 2 2 2 3 3 3 3 3 3 5 5 5 5 5 5 6 6 6 6 6 6 8 8 8 8 8 8 9 9 9 9 9 9 排序的算法 将下面数字按由小到大的顺序排列 所以排序的结果为: 2,3,5,6,8,9 8,3,2,5,9,6 请将每一趟的结果写出来 第3趟 0 该趟中交换的次数为________次,

  41. 练习: 1、根据前面的介绍阅读课本P32的例3,并完成图1.3-6的填空

  42. 课后作业 课本P38的习题1.3第2、3题

More Related