高中数学之算法案例
- 格式:docx
- 大小:236.82 KB
- 文档页数:12
算法案例(讲义)➢ 知识点睛典型算法举例: 1. 辗转相除法①方法概述:两数相除,较大数除以较小数,得商和余数,继而较小数除以余数,重复操作,直至除尽,此时除数即为最大公约数.②原理:在a =bq +r 中,除数b 和余数r 能被同一个数整除,那么被除数a 也能被这个数整除.或者说,除数与余数的最大公约数,就是被除数与除数的最大公约数. 2. 秦九韶算法把一个n 次多项式改写成如下形式:1110121102312101210()()(())((()))n n n n n n n n n n n n n n n f x a x a x a x a a x a x a x a a x a x a x a x a a x a x a x a x a ----------=++++=++++=+++++==+++++……………… 记0n v a =,11n n v a x a -=+,…,10n n v v x a -=+.求多项式的值时,首先计算最内层括号内一次多项式的值,即v 1,然后由内向外逐层计算. 3. 进位制①k 进制:若k 是一个大于1的整数,那么以k 为基数的k 进制数可以表示为一串数字连写在一起的形式.110()n n k a a a a -…11011000n n n n a a a a N a k a a a k --∈<<<≤(,,…,,,,,…,,)②进位制数相互转化:k 进制转十进制,计算k 进制数a 的右数第i 位数字i a 与1i k -的乘积1i i a k -⋅,再将其累加,重复操作求和.十进制数转k 进制数(除k 取余法): 如右图,十进制数化为二进制数, 89=1011001(2).➢ 精讲精练1. 用“辗转相除法”求下列数的最大公约数:(1)459和357的最大公约数是____________;余数2222222012511224489(2)三个数324243135,,的最大公约数是____________.2. 用秦九韶算法求多项式的值:(1)计算多项式x x x x x x x f 876543)(23456+++++=在1.0=x 时的值时,需要做乘法和加法的次数分别是_______,_______;(2)求多项式23456()1235879653f x x x x x x x =+-++++在x =-4的值时,4v 的值为_______;(3)计算多项式5432()853261f x x x x x x =+++++,当2x =时的值为________. 3. 完成下列进制的转化:(3)(10)10202____=; (10)__________(8)101=;1231(5)=_____________(7).4. 三位七进制的数表示的最大的十进制的数是( )A .322B .402C .342D .3655. 在下列各数中,最小的数是( )A .)9(85B .)6(210C .)4(1000D .(2)1111116. 已知三个数12(16),25(7),33(4),按照从小到大的顺序排列为________________.7. 已知()175r =(10)125,则r =________.8. 如图所示的程序框图的算法思路来源于我国古代数学名著《九章算术》中的“更相减损术”,执行该程序框图,若输入的a ,b 的值分别为14,18,则输出的a 的值为( ) A .0B .2C .4D .149. 如图所示的程序框图给出了利用秦九韶算法求多项式值的一个实例,若输入n ,x 的值分别为3,2,则输出v 的值为( ) A .35B .20C .18D .910.下面是把二进制数(2)11111化为十进制数的一个程序框图,判断框内应填入的条件是()A.5i>?B.4i≤?C.4i>?D.5i≤?11.执行如图所示的程序框图后,输出的值为4,则P的取值范围是()A.715816P<≤B.1516P>C.3748P<≤D.715816P<≤12.设a是一个各位数字都不是0且没有重复数字的三位数.将组成a的3个数字按从小到大排成的三位数记为I(a),按从大到小排成的三位数记为D(a)(例如a=815,则I(a)=158,D(a)=851).阅读如图所示的程序框图,运行相应的程序,任意输入一个a,输出的结果b=________.13. 已知函数232 1 01 012 1x x y x x x x x -<⎧⎪=+<⎨⎪+⎩≤≥()()(),写出求该函数的函数值的算法,并画出程序框图.14. 设计一算法,求使20063212222>++++n Λ成立的最小正整数n 的值.15.设计算法计算:1112131415167S=++++++,画出程序框图.【参考答案】1. (1)51;(2)272. (1)6;5;(2)220;(3)3813. 101 145 3624. C5. D6. (4)(16)(7)331225<<7. 88. B9. C 10. C 11. C 12. 495 13. 略 14. 略 15. 略算法案例(随堂测试)1. 372和684的最大公约数是( )A .36B .186C .12D .5892. 用秦九韶算法计算多项式65432()3567983512f x x x x x x x =+++-++在x =-4时的值时,v 2的值为( )A .-57B .-22C .34D .743. 1234(8)=________(10);300=________(5);300=_______(6).4. 设计一个算法,输入正整数n ,输出111123n++++….【参考答案】1. C2. C3. 668;2 200;1 2204. 略算法案例(习题)➢ 巩固练习5. 求下列数的最大公约数:(1)1 443与999的最大公约数是_____________;(2)319,377,116的最大公约数是___________.6. 用秦九韶算法求n 次多项式1110()n n n n f x a x a x a x a --=++++…,当x =x 0时,0()f x 需要算乘法、加法的次数分别为( ) A .n 2,nB .2n ,nC .n ,2nD .n ,n7.已知532=++++,运用秦九韶算法计算x=3时的值时,v3的值为()()231f x x x x xA.27 B.11 C.109 D.368.用秦九韶算法求多项式765432=++++++在x=3时的值为________.()765432f x x x x x x x x9.把21化为二进制数,则此数为()A.10011(2)B.10110(2)C.10101(2)D.11001(2)10.一个k进制的三位数与某六进制的二位数等值,则k不可能是()A.3 B.4 C.5 D.711.下列各数中,最小的数是()A.75B.210(6)C.111111(2)D.85(9)12.若a=33(10),b=52(6),c=11111(2),则三个数的大小关系是()A.c>b>a B.b>c>a C.c>a>b D.a>b>c13.中国古代有计算多项式值的秦九韶算法,如图是实现该算法的程序框图.执行该程序框图,若输入的x=2,n=2,依次输入的a为2,2,5,则输出的s=()A.7B.12C.17D.34第9题图第10题图14.如图是一个算法的程序框图,该算法所输出的结果是()A.11112310++++…B.11113519++++…C.111124620++++…D.231011112222++++…15.某程序框图如图所示,若输出的S=57,则判断框内为()A.k>4?B.k>5?C.k>6?D.k>7?11第11题图 第12题图16. 执行如图所示的程序框图,若输入k 的值为8,则判断框图可填入的条件是( )A .S ≤34?B .S ≤56?C .S ≤1112? D .S ≤1524?17. 设计一个算法,输入两个数,输出两个数中较大的一个.18.已知函数21111131x x y x x x x ⎧-<-⎪=+-⎨⎪+>≤≤()()(),试画出求函数值的程序框图.19. 对任意给定的正整数n ,写出一个求13+23+33+…+n 3的算法程序框图.20.设计算法求111112233499100++++⨯⨯⨯⨯…的值,要求画出程序框图.【参考答案】1.(1)111 (2)292.D3.D4.213245.C6.D7.C8.D9.C10.C11.A12.C13.略14.略15.略16.略12。
§1.4 算法案例(1)教学目标:(1)介绍中国古代算法的案例-韩信点兵-孙子问题;(2)用三种方法熟练的表示一个算法;(3)让学生感受算法的意义和价值.教学重点、难点:不定方程解法的算法.教学过程:一、问题情境(韩信点兵-孙子问题):韩信是秦末汉初的著名军事家。
据说有一次汉高祖刘邦在卫士的簇拥下来到练兵场,刘邦问韩信有什么方法,不要逐个报数,就能知道场上的士兵的人数。
韩信先令士兵排成3列纵队,结果有2个人多余;接着立即下令将队形改为5列纵队,这一改,又多出3人;随后他又下令改为7列纵队,这次又剩下2人无法成整行。
在场的人都哈哈大笑,以为韩信不能清点出准确的人数,不料笑声刚落,韩信高声报告共有士兵2333人。
众人听了一愣,不知道韩信用什么方法这么快就能得出正确的结果的。
同学们,你知道吗?背景说明:1.类似的问题最早出现在我国的《算经十书》之一的《孙子算经》中原文是:“今有物,不知其数,三三数之,剩二,五五数之,剩三,七七数之,剩二,问物几何?答曰:「二十三」”2.孙子算经的作者及确实着作年代均不可考,不过根据考证,着作年代不会在晋朝之後,以这个考证来说上面这种问题的解法,中国人发现得比西方早,所以这个问题的推广及其解法,被称为中国剩余定理(孙子定理)。
中国剩余定理在近代抽象代数学中占有一席非常重要的地位;3.该问题的完整的表述,后来经过宋朝数学家秦九韶的推广,又发现了一种算法,叫做“大衍求一术”。
在中国还流传着这么一首歌诀:三人同行七十稀,五树梅花廿一枝,七子团圆月正半,除百零五便得知。
它的意思是说:将某数(正整数)除以3所得的余数乘以70,除以5所得的余数乘以21,除以7所得的余数乘以15,再将所得的三个积相加,并逐次减去105,减到差小于105为止。
所得结果就是某数的最小正整数值。
用上面的歌诀来算《孙子算经》中的问题,便得到算式:2×70+3×21+2×15=233,233-105×2=23,即所求物品最少是23件。
高中数学算法案例教案
课题:排序算法——冒泡排序
教学目标:
1.了解冒泡排序算法的基本原理及实现过程。
2.掌握冒泡排序算法在实际应用中的应用场景。
3.能够通过编程实现冒泡排序算法。
4.培养学生的逻辑思维能力和编程实践能力。
教学过程:
一、导入新知识(5分钟)
向学生介绍冒泡排序算法的基本原理及实现过程,通过示例演示冒泡排序的排序过程。
二、理论学习(15分钟)
1.讲解冒泡排序算法的原理:比较相邻的元素,如果前一个比后一个大,则交换两个元素
的位置。
2.详细讲解冒泡排序的实现过程,并通过示例展示冒泡排序的排序过程。
三、算法分析(15分钟)
与学生一起分析冒泡排序算法的时间复杂度,引导学生思考如何优化冒泡排序算法的性能。
四、实际操作(20分钟)
1.让学生通过编程实现冒泡排序算法,并让他们自行编写测试用例进行验证。
2.引导学生思考如何改进冒泡排序算法,提高其效率。
五、应用拓展(10分钟)
探讨冒泡排序算法在实际应用中的场景,并引导学生思考如何在实际问题中应用冒泡排序
算法。
六、总结归纳(5分钟)
回顾本节课的主要内容,强调冒泡排序算法的重要性和应用价值。
七、作业布置(5分钟)
布置任务:要求学生练习编写冒泡排序算法,并结合实际问题进行应用。
教学反思:
通过本堂课的教学,学生对冒泡排序算法有了更深刻的理解,通过实际操作提高了他们的编程实践能力,培养了他们的逻辑思维能力。
在未来的教学中,需要更加注重培养学生的实践能力和创新能力,引导学生将所学知识应用到实际问题中。
算法案例知识图谱算法案例知识精讲一.更相减损术应用:求两个整数的最大公约数的算法更相减损术的步骤:1.任意给定两个正整数;判断它们是否都是偶数.若是,则用2约简;若不是则执行第二步.2.以两个数中较大的数减去较小的数,以差数和较小的数构成一对新的数,对这一对数再用大数减小数,以同样的操作一直做下去,直到产生一对相等的数为止,则第一步中约掉的若干个2与第二步中等数的乘积就是所求的最大公约数.等值算法:用“更相减损术”设计出来的算法求最大公约数的算法称为“等值算法”,用等值算法可以求任意两个正整数的最大公约数.说明:《九章算法》是中国古代的数学专著,其中的“更相减损术”可以用来求两个数的最大公约数.以具体的例子来说明更相减损术求最大公约数的原理:以求117和182的最大公约数为例:,,,,,,,,(117182)(11765)(6552)(5213)(1339)(1326)(1313)→→→→→→每次操作后得到的两个数与前两个数的最大公约数相同,而且逐渐减少,故总能得到相等的两个数,即为所求的最大公约数.二.辗转相除法又称欧几里得算法,是由欧几里得在公元前300年左右首先提出来的求两个数的最大公约数的算法.辗转相除法的步骤:对于给定的两个数,以其中较大的数除以较小的数得到一个余数,将较小的数与余数看成一对新的数,重复上面的步骤,直到余数为零为止,此时上一步中较小的数即为所求的最大公约数.以求117和182的最大公约数为例:,,,,,,故13即为所求.→→→→(117182)(11765)(6552)(5213)(130)三.秦九韶算法—求多项式的值的算法应用:快速的求解对于任意一个n次的多项式在某点所取到的值.秦九韶算法:已知一个多项式函数,计算多项式在某点处的函数值的一种算法,是我国古代数学家秦九韶提出的,具体如下.对任意一个n 元多项式1110()n n n n f x a x a x a x a --=++++ ,改写成如下形式:12110()()n n n n f x a x a x a x a ---=++++ 231210(())n n n n a x a x a x a x a ---=+++++ = 1210((()))n n n 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 个一次多项式的值.令1(1)(())k n n n k n k v a x a x a x a ----=++++ ,则递推公式为01n kk n k v a v v x a --=⎧⎨=+⎩,其中12k n = ,,,.到目前为止,此算法仍然是世界上多项式求值的最先进的算法.秦九韶算法与其它算法在计算量上面的比较:1110()n n n n f x a x a x a x a --=++++ ,1.直接求和法:先计算各个单项式的值,再把它们相加,乘法次数为(1)(1)212n n n n ++-+++= ,加法次数n ;2.逐项求和法:先计算x 的各项幂的值,再分别相乘,计算幂值需要乘法1n -次,将幂值与多项式系数k a 相乘需要乘法n 次,故共需要乘法21n -次,加法n 次.此方法对直接求和法有所改进,但仍然比秦九韶算法计算量大很多.3.秦九韶算法:计算量仅为乘法n 次,加法n 次.<备注>秦九韶算法是多项式求值的优秀算法,秦九韶算法的特点:(1)化高次多项式求值为一次多项式求值;(2)减少了运算次数,提高了效率;(3)步骤重复执行,容易用计算机实现.利用秦九韶算法计算多项式的值关键是能正确地将所给多项式改写,然后由内向外逐次计算,由于后项计算用到前项的结果,故应认真、细心,确保中间结果的准确性.若在多项式中有几项不存在时,可将这些项的系数看成0,即把这些项看做0·x n .三点剖析一.注意事项1.辗转相除法与更相减损术联系(1)都是求最大公约数的方法,计算上,辗转相除法以除法为主,更相减损术以减法为主,计算次数上,辗转相除法计算次数相对较少,特别当两个数大小差距较大时,计算次数的区别比较明显;(2)从结果的体现形式来看,辗转相除法体现结果是以相除余数为零而得到,而更相减损术则是以减数与差相等而得到;(3)辗转相除法与更相减损术是统一的,因为做一次除法与做若干次减法的效果相同.二.方法点拨1.两个整数的最大公约数是两个整数的公约数中最大的数,与此类似,两个整数的最小公倍数是两个整数的公倍数中最小的数.2.穷举法是将集合中的元素进行一一列举,逐个条件进行验证,知道找出满足条件的元素为止,穷举法可以解决所有问题看,但是一般来说常常可以用来解决一些无规律可循的问题,例如求不定方程的解或者不定方程组的解,运用穷举法思想设计算法时,常常采用循环结构,将验证条件为循环结构的判断条件,将每一个元素作为循环体.求两个正整数的最大公约数例题1、8251与6105的最大公约数是____.例题2、用更相减损来求80和36的最大公约数?例题3、用更相减损术求294与84的最大公约数.随练1、两个数153和119的最大公约数是______________.随练2、用更相减损术求294与84的最大公约数.随练3、有甲、乙、丙三种溶液分别重147g、343g、133g,现要将它们分别全部装入小瓶中,每个小瓶装入液体的质量相同,问每瓶最多装多少?秦九韶算法例题1、用秦九韶算法求多项式f(x)=x4+2x3+x2-3x-1,当x=2时的值,则v3=______例题2、使用秦九韶算法计算x=2时f(x)=6x6+4x5-2x4+5x3-7x2-2x+5的值,所要进行的乘法和加法的次数分别为________随练1、用秦九韶算法求多项式f(x)=1+2x+x2-3x3+2x4在x=-1时的值,v2的结果是______随练2、用秦九韶算法计算多项式f(x)=5x5+4x4+3x3-2x2-x-1在x=-4时的值时,需要进行的乘法、加法的次数分别是_______拓展1、用更相减损术求78和36的最大公约数_________.2、三个数208,351,429的最大公约数是()A.65B.91C.26D.133、用“辗转相除法”求得459和357的最大公约数是()A.3B.9C.17D.514、用秦九韶算法求多项式f(x)=12+35x-8x2+79x3+6x4+5x5+3x6在x=-4的值时,其中V1的值=_______5、用秦九韶算法计算多项式f(x)=3x6+4x5+5x4+6x3+7x2+8x+1当x=0.4时的值时,需要做乘法和加法的次数分别是。
算法案例(讲义)➢ 知识点睛典型算法举例: 1. 辗转相除法①方法概述:两数相除,较大数除以较小数,得商和余数,继而较小数除以余数,重复操作,直至除尽,此时除数即为最大公约数.②原理:在a =bq +r 中,除数b 和余数r 能被同一个数整除,那么被除数a 也能被这个数整除.或者说,除数与余数的最大公约数,就是被除数与除数的最大公约数. 2. 秦九韶算法把一个n 次多项式改写成如下形式:1110121102312101210()()(())((()))n n n n n n n n n n n n n n n f x a x a x a x a a x a x a x a a x a x a x a x a a x a x a x a x a ----------=++++=++++=+++++==+++++……………… 记0n v a =,11n n v a x a -=+,…,10n n v v x a -=+.求多项式的值时,首先计算最内层括号内一次多项式的值,即v 1,然后由内向外逐层计算. 3. 进位制①k 进制:若k 是一个大于1的整数,那么以k 为基数的k 进制数可以表示为一串数字连写在一起的形式.110()n n k a a a a -…11011000n n n n a a a a N a k a a a k --∈<<<≤(,,…,,,,,…,,)②进位制数相互转化:k 进制转十进制,计算k 进制数a 的右数第i 位数字i a 与1i k -的乘积1i i a k -⋅,再将其累加,重复操作求和.十进制数转k 进制数(除k 取余法): 如右图,十进制数化为二进制数, 89=1011001(2).➢ 精讲精练1. 用“辗转相除法”求下列数的最大公约数:(1)459和357的最大公约数是____________;余数2222222012511224489(2)三个数324243135,,的最大公约数是____________.2. 用秦九韶算法求多项式的值:(1)计算多项式x x x x x x x f 876543)(23456+++++=在1.0=x 时的值时,需要做乘法和加法的次数分别是_______,_______;(2)求多项式23456()1235879653f x x x x x x x =+-++++在x =-4的值时,4v 的值为_______;(3)计算多项式5432()853261f x x x x x x =+++++,当2x =时的值为________. 3. 完成下列进制的转化:(3)(10)10202____=; (10)__________(8)101=;1231(5)=_____________(7).4. 三位七进制的数表示的最大的十进制的数是( )A .322B .402C .342D .3655. 在下列各数中,最小的数是( )A .)9(85B .)6(210C .)4(1000D .(2)1111116. 已知三个数12(16),25(7),33(4),按照从小到大的顺序排列为________________.7. 已知()175r =(10)125,则r =________.8. 如图所示的程序框图的算法思路来源于我国古代数学名著《九章算术》中的“更相减损术”,执行该程序框图,若输入的a ,b 的值分别为14,18,则输出的a 的值为( ) A .0B .2C .4D .149. 如图所示的程序框图给出了利用秦九韶算法求多项式值的一个实例,若输入n ,x 的值分别为3,2,则输出v 的值为( ) A .35B .20C .18D .910.下面是把二进制数(2)11111化为十进制数的一个程序框图,判断框内应填入的条件是()A.5i>?B.4i≤?C.4i>?D.5i≤?11.执行如图所示的程序框图后,输出的值为4,则P的取值范围是()A.715816P<≤B.1516P>C.3748P<≤D.715816P<≤12.设a是一个各位数字都不是0且没有重复数字的三位数.将组成a的3个数字按从小到大排成的三位数记为I(a),按从大到小排成的三位数记为D(a)(例如a=815,则I(a)=158,D(a)=851).阅读如图所示的程序框图,运行相应的程序,任意输入一个a,输出的结果b=________.13. 已知函数232 1 01 012 1x x y x x x x x -<⎧⎪=+<⎨⎪+⎩≤≥()()(),写出求该函数的函数值的算法,并画出程序框图.14. 设计一算法,求使20063212222>++++n Λ成立的最小正整数n 的值.15.设计算法计算:1112131415167S=++++++,画出程序框图.【参考答案】1. (1)51;(2)272. (1)6;5;(2)220;(3)3813. 101 145 3624. C5. D6. (4)(16)(7)331225<<7. 88. B9. C 10. C 11. C 12. 495 13. 略 14. 略 15. 略算法案例(随堂测试)1. 372和684的最大公约数是( )A .36B .186C .12D .5892. 用秦九韶算法计算多项式65432()3567983512f x x x x x x x =+++-++在x =-4时的值时,v 2的值为( )A .-57B .-22C .34D .743. 1234(8)=________(10);300=________(5);300=_______(6).4. 设计一个算法,输入正整数n ,输出111123n++++….【参考答案】1. C2. C3. 668;2 200;1 2204. 略算法案例(习题)➢ 巩固练习5. 求下列数的最大公约数:(1)1 443与999的最大公约数是_____________;(2)319,377,116的最大公约数是___________.6. 用秦九韶算法求n 次多项式1110()n n n n f x a x a x a x a --=++++…,当x =x 0时,0()f x 需要算乘法、加法的次数分别为( ) A .n 2,nB .2n ,nC .n ,2nD .n ,n7.已知532=++++,运用秦九韶算法计算x=3时的值时,v3的值为()()231f x x x x xA.27 B.11 C.109 D.368.用秦九韶算法求多项式765432=++++++在x=3时的值为________.()765432f x x x x x x x x9.把21化为二进制数,则此数为()A.10011(2)B.10110(2)C.10101(2)D.11001(2)10.一个k进制的三位数与某六进制的二位数等值,则k不可能是()A.3 B.4 C.5 D.711.下列各数中,最小的数是()A.75B.210(6)C.111111(2)D.85(9)12.若a=33(10),b=52(6),c=11111(2),则三个数的大小关系是()A.c>b>a B.b>c>a C.c>a>b D.a>b>c13.中国古代有计算多项式值的秦九韶算法,如图是实现该算法的程序框图.执行该程序框图,若输入的x=2,n=2,依次输入的a为2,2,5,则输出的s=()A.7B.12C.17D.34第9题图第10题图14.如图是一个算法的程序框图,该算法所输出的结果是()A.11112310++++…B.11113519++++…C.111124620++++…D.231011112222++++…15.某程序框图如图所示,若输出的S=57,则判断框内为()A.k>4?B.k>5?C.k>6?D.k>7?11第11题图 第12题图16. 执行如图所示的程序框图,若输入k 的值为8,则判断框图可填入的条件是( )A .S ≤34?B .S ≤56?C .S ≤1112? D .S ≤1524?17. 设计一个算法,输入两个数,输出两个数中较大的一个.18.已知函数21111131x x y x x x x ⎧-<-⎪=+-⎨⎪+>≤≤()()(),试画出求函数值的程序框图.19. 对任意给定的正整数n ,写出一个求13+23+33+…+n 3的算法程序框图.20.设计算法求111112233499100++++⨯⨯⨯⨯…的值,要求画出程序框图.【参考答案】1.(1)111 (2)292.D3.D4.213245.C6.D7.C8.D9.C10.C11.A12.C13.略14.略15.略16.略12。