高中数学之算法案例
【成才之路】高中数学 算法案例第1课时辗转相除法与更相减损术学案课件 新人教A必修3
人 教 A 版 数 学
(2)辗转相除法的算法分析: 由以上辗转相除法的原理可以发现,辗转相除法的基 本步骤是用较大的数除以较小的数,考虑到算法中的赋值 语句可以对同一变量多次赋值,我们可以把较大的数用变 量m表示,把较小的数用变量n表示,这样式子m=n·q+ r(0≤r<n)就是一个反复执行的步骤,因此可以用循环结构实 现算法.如图.
用更相减损术: 80-36=44, 44-36=8, 36-8=28, 28-8=20, 20-8=12, 12-8=4, 8-4=4. ∴80和36的最大公约数是4.
[点评] (1)辗转相除法是当大数被小数除尽时,结束 除法运算,较小的数就是最大公约数;更相减损术是当大 数减去小数的差等于小数时停止减法运算,较小的数就是 最大公约数.
二、解答题 5.写出从键盘任意输入两个正整数a,b,输出这两个 数的最小公倍数的算法,画出程序框图,写出算法语句.
[解析] 从键盘输入两数 a,b 后,先求两数的最大公 约数 k,再计算两数的最小公倍数 p=ak·b,输出 p 即可.
程序框图如右图. 程序为: INPUT “正整数 a,b=”;a,b
3.辗转相除法与更相减损术有着相同的算法依据,但 要注意运算过程的差别,辗转相除法的上一次运算的除数 和余数分别作为下一次运算的被除数和除数,其结果直至 余数为零得出.更相减损术在上一次运算结束后,比较减 数和差的大小,将大的作为下一次运算的被减数,小的作 为减数,直至出现相等数时得到结果.
由此可见,二者算法是相似的.主要区别在于,辗转 相除法进行的是除法运算,即辗转相除,更相减损术进行 的是减法运算,即辗转相减,但其实质都是一个不断的递 归过程.另外两者在算法设计上有一个重要的区别点,辗 转相除法,下一次进行相除时,由上一次的除数和余数直 接相除即可.而更相减损术下一次相减前必须有一个判断 大小的过程,以区别谁做被减数.这些内容都是应特别注 意的关键环节.
高中必修三算法案例
算法案例一、辗转相除法(求正整数最大公约数算法)1、设两数为a、b(a>b),求a和b最大公约数(a,b)的步骤如下:用a除以b,得a÷b=q......r1(0≤r1)。
若r1=0,则(a,b)=b;若r1≠0,则再用b除以r1,得b÷r1=q......r2 (0≤r2).若r2=0,则(a,b)=r1,若r2≠0,则继续用r1除以r2,……如此下去,直到能整除为止。
其最后一个为被除数的余数的除数即为(a, b)。
程序框图表示例如:a=25, b=15,a/b=1......10,b/10=1......5,10/5=2.......0,最后一个为被除数余数的除数就是5,5就是所求最大公约数。
2、求三个或三个以上数的最大公约数,可以先求前两个数的最大公约数,再求所得公约数与第三个数的最大公约数,最后求的最大公约数就是这三个数字的最大公约数。
例:求三个数324,243,135的最大公约数。
解:辗转相除法:∵324=243×1+81,243=81×3+0,∴324与243的最大公约数为81,又135=81×1+54,81=54×1+27,54=27×2+0,∴81与135的最大公约数为27,∴三个数324,243,135的最大公约数为27。
二、更相减损术(求正整数最大公约数算法)第一步:任意给定两个正整数;判断它们是否都是偶数。
若是,则用2约简;若不是则执行第二步。
第二步:以较大的数减较小的数,接着把所得的差与较小的数比较,并以大数减小数。
继续这个操作,直到所得的减数和差相等为止。
则第一步中约掉的若干个2与第二步中等数(最大公约数)的乘积就是所求的最大公约数。
例:用更相减损术求98与63的最大公约数解:由于63不是偶数,把98和63以大数减小数,并辗转相减:98-63=3563-35=2835-28=728-7=2121-7=1414-7=7所以,98和63的最大公约数等于7。
高中数学 算法案例(辗转相除法)课件 新人教A必修3
完整的过程 8251=6105×1+2146
例2 用辗转相除法求225和135的最大公约数 225=135×1+90
6105=2146×2+1813
135=90×1+45
2146=1813×1+333
1813=333×5+148
333=148×2+37
148=37×4+0
显然37是148和37的最大 公约数,也就是8251和 6105的最大公约数
333=148×2+37 148=37×4+0
算法2:
程序: INUPU 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: 程序: INUPU m,n IF m<n THEN x=m m=n n=x END IF DO r=m MOD n m=n n=r LOOP UNTIL r=0 PRINT m END
观察求8251和6105的最大公约数的过程
第一步 用两数中较大的数除以较小的数,求得商和 余数 8251=6105×1+2146 结论: 8251和6105的公约数就是6105和2146的 公约数,求8251和6105的最大公约数,只要求出 6105和2146的公约数就可以了。 为什么呢?
第二步 对6105和2146重复第一步的做法 6105=2146×2+1813 同理6105和2146的最大公约数也是2146和1813 的最大公约数。
较大那个除以较小那个,求得
高中数学算法案例(全套)教案苏教版必修3
§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时的值时,需要做乘法和加法的次数分别是。
高中数学《算法案例》课件
这个数与约简的数的乘积就是所求的最大公约数.
4
课前自主预习
课堂互动探究
随堂达标自测
课后课时精练
数学 ·必修3
3.辗转相除法与更相减损术的区别与联系
两种方法
辗转相除法
更相减损术
名称
辗转相除法
更相减损术
①以除法为主
①以减法为主
②两个整数差值较 ②两个整数的差值较大时,运算次数
区别 大时运算次数较少 较多
③相除余数为零时 ③相减,两数相等得结果
得结果
④相减前要做是否都是偶数的判断
①都是求最大公约数的方法
联系 ②二者的实质都是递归的过程
③二者都要用循环结构来实现
29
课前自主预习
12
课前自主预习
课堂互动探究
随堂达标自测
课后课时精练
数学 ·必修3
(4)秦九韶算法是中国南宋时期的数学家秦九韶提出的
一种求多项式值的简化算法,其求一个 n 次多项式 f(x)=anxn +an-1xn-1+…+a1x+a0 值的算法是:v0=an,v1=v0x+an-1, v2=v1x+an-2,v3=v2x+an-3,…,vn=vn-1x+a0,vn 为所 求 f(x)的值,利用秦九韶算法,计算 f(x)=2x5+x4+3x3+2x2
计算法则
除法
减法
终止条件
余数为 0
最大公约数的 最后一步中的除数
选取
减数与差相等 最后一步中的减数
计算特点 步骤较少,运算复杂 步骤较多,运算简单
相同点
同为求两个正整数最大公约数的方法,都 是递归过程
人教版高中数学必修三 算法案例 课件
一种更高效的算法
算法我3们:把多项式
f(x) =x5+x4+x3+x2+x+1
变形为:
f( x ) ( ( ( ( x 1 ) x 1 ) x 1 ) x 1 ) x 1
从因而为 得:
f ( 5 ) ( ( ( ( 5 1 ) 5 1 ) 5 1 ) 5 1 ) 5 1 3 0 9 6
人教版高中数学必修三 算法案例 课件(精品课件)
知识探究(二):秦九韶算法的程序设计 人教版高中数学必修三算法案例课件(精品课件)
思考1:用秦九韶算法求多项式的值,可以用什么 逻辑结构来构造算法?其算法步骤如何设计?
(1)、算法步骤:
第一步:输入多项式次数n、最高次项的系数an和x 的值.
第二步:将v的值初始化为an,将i的值初始化为n-1. 第三步:输入i次项的系数an.
要求多项式的值,应该先算最内层的一次多项式的值,即
v1anxan1
然后,由内到外逐层计算一次多项式的值,即
v2v1xan2 v3 v2xan3
最后的一 项是什么?
vnvn1xa0
这种将求一个n次多项式f(x)的值转化成求n个一 次多项式的值的方法,称为秦九韶算法。
人教版高中数学必修三 算法案例 课件(精品课件)
对该多项式按下面的方式进行改写:
f(x ) a n x n a n 1 x n 1 a 1 x a 0
这是怎样的 一种改写方 式?最后的 结果是什么?
(a n x n 1 a n 1 x n 2 a 1 )x a 0
(a n ( x n 2 a n 1 x n 3 a 2 ) x a 1 ) x a 0
=3125+625+125+25+5+1 = 3906
共做了1+2+3+4=10次乘法运算,5次加法运算。
高一数学必修2 算法案例
高一数学必修2算法案例教学目标:本节通过算法案例的学习,进一步理解算法的含义,掌握算法设计的常用方法. 教学重点:如何在伪代码中运用条件语句. 教学难点:如何在伪代码中运用条件语句. 教学过程: Ⅰ.课题导入1.中国古代数学中算法的内容是非常丰富的,比如,中国古代数学著作《九章算术》中介绍了下述“约分术”:“可半者半之,不可半者,副置分母、子之数,以少减多,更相减损,求其等也.以等数约之.”给出了求任意两个数的最大公约数的一种算法,被后人称为“更相减损术”.这种方法与欧氏的辗转相除法异曲同工,本质上是相同的.2.中国是研究不定方程最早的国家,公元初的五家共井问题就是一个不定方程组问题,公元5世纪的《X 丘建算经》中的百鸡问题标志着中国对不定方程理论有了系统研究.秦九韶的大衍求一术将不定方程与同余理论联系起来.研究不定方程要解决三个问题:①判断何时有解;②有解时决定解的个数;③求出所有的解.二分法是用计算机求解多项式方程的一种常用方法.基本思想是:如果取[a ,b ]的中点x 0=(a +b )/2;若f (x 0)=0,则x 0就是方程的根,若f (a )f (x 0)>0,则解在(x 0,b )上,以x 0代替a ,否则解在(a ,x 0)之间,以x 0代替b ,重复上述步骤,直到|a -b |<c ,c 是一个很小的正数,计算终止,x 0就是方程的根. Ⅱ.讲授新课例1:古今中外,许多人致力于圆周率的研究与计算.为了计算出圆周率的越来越好的近似值,一代代的数学家为这个神秘的数贡献了无数的时间与心血.我国东汉的数学家X 徽利用“割圆术”计算圆的面积及圆周率π.“割圆术”被称为千古绝技,它的原理是用圆内接正多边形的面积去逼近圆的面积,具体计算如下:在单位圆内作内接正六边形,其面积记为A 1,边长记为a 1,在此基础上作圆内接正12边形,面积记为A 2,边长为a 2……一直做下去,记该圆的内接正6×2n-1边形面积为A n ,边长为a n .由于所考虑的是单位圆,计算出的A n 即为圆周率π的近似值,n 越大,A n 与π越接近.你能设计这样计算圆周率的一个算法吗?我的思路:应首先推导出a n ,a n -1,A n ,A n -1的关系.如图,设PQ 为圆内接正6×2n -1边形的一边,即PQ =a n -1,OR 为与PQ 垂直的半径,R 为PQ 弧的平分点,显然PR =a n .a 1=1,a n =PR =22RT PT +=22)(OT OR PT -+=22121])2(11[)2(----+n n aa =412221---n a (n =2,3,4),A 1=6×21×1×23=233,A n =6×2n -1×21×|OR ||PT |=3×2n -2a n -1(n =2,3,4). 通过上面两式,从a 1=1开始进行迭代,可逐步计算出a n 与A n .由于所考虑的是单位圆,计算出的A n 即为圆周率π的近似值,n 越大,A n 与π越接近.算法和流程图如下:Begin Read n 1←aFor I from 2 to n A ←3×2I -2×aa ←Sqrt [2-2×Sqrt [1-a 2/4]]; Print I ,A ,a End for End 流程图:例2:有一个故事是讲唐代大官杨埙提拔官员的经过.他让两个资格职位相同的候选人解答下面这个问题,谁先答出就提拔谁.“有人在林中散步,无意中听到几个强盗在商量怎样分配抢来的布匹.若每人分6匹,就剩5匹;若每人分7匹,就差8匹.问共有强盗几个?布匹多少?”你能用一个简单算式求出强盗个数和布匹数吗?我的思路:这个问题可看作二元一次方程组问题.问题的特点是给出两种分配方案,一种分法分不完,一种分法不够分.中国古代的《九章算术》一书中搜集了许多这类问题,各题都有完整的解法,后人称这种算法为——“盈不足术”.这种算法可以概括为两句口诀:有余加不足,大减小来除. 公式:(盈+不足)÷两次所得之差=人数, 每人所得数×人数+盈=物品总数,求得强盗有(8+5)÷(7-6)=13(人),布匹有6×13+5=83(匹). 伪代码: Read a ,b ,c ,d x ←(a +b )/(d -c ) y ←cx +a print x ,y 流程图:例3:由F 0=1,F 1=1,F n =F n -2+F n -1所定义的数列{F n },称为斐波那契数列,试设计一个求数列{1n n F F}的前100项的值的算法,画出流程图并用伪代码表示.我的思路:数列{F n }有个特点,前两个数都是1,从第3个数开始,每个数都是前两个数的和,例如:3是1和2的和;13是5和8的和等等.此问题的算法用流程图和伪代码表示:a ←1; b ←1; n ←1; 输出n ,ba ; while n <100; n ←n +1; c ←a +b ;输出n ,cb ; a ←b ; b ←c ;End while 流程图:例4:输入两个正整数a 和b (a >b ),求它们的最大公约数.解析:求两个正整数a 、b (a >b )的最大公约数,可以归结为求一数列: a ,b ,r 1,r 2,…,r n -1,r n ,r n +1,0此数列的首项与第二项是a 和b ,从第三项开始的各项,分别是前两项相除所得的余数,如果余数为0,它的前项r n +1即是a 和b 的最大公约数,这种方法叫做欧几里得辗转相除法,其算法如下:S1 输入a ,b (a >b ); S2 求a /b 的余数r ;S3 如果r ≠0,则将b →a ,r →b ,再次求a /b 的余数r ,转至S2; S4 输出最大公约数b . 伪代码如下: 10 Read a ,b 20 r ←mod (a ,b )30If r=0then Goto 8040Else50a←b60b←r70Goto 2080Print b流程图如下:点评:算法的多样性:对于同一个问题,可以有不同的算法.例如求1+2+3+…+100的和,可以采用如下方法:先求1+2,再加3,再加4,一直加到100,最后得到结果5050.也可以采用这样的方法:1+2+3+…+100=(1+100)+(2+99)+(3+98)+…+(50+51)=50×101=5050.显然,对于算法来说,后一种方法更简便,而循环累加更适用于计算机解题.因此,为了有效地进行解题,不仅要保证算法正确,还要选择好的算法,即方法简单、运算步骤少,能迅速得出正确结果的算法.例5:求1734,816,1343的最大公约数.分析:三个数的最大公约数分别是每个数的约数,因此也是任意两个数的最大公约数的约数,也就是说三个数的最大公约数是其中任意两个数的最大公约数与第三个数的最大公约数.解:用“辗转相除法”.先求1734和816的最大公约数,1734=816×2+102;816=102×8;所以1734与816的最大公约数为102.再求102与1343的最大公约数,1343=102×13+17;102=17×6.所以1343与102的最大公约数为17,即1734,816,1343的最大公约数为17.例6:猴子吃桃问题:有一堆桃子不知数目,猴子第一天吃掉一半,觉得不过瘾,又多吃了一只,第二天照此办法,吃掉剩下桃子的一半另加一个,天天如此,到第十天早上,猴子发现只剩一只桃子了,问这堆桃子原来有多少个?解析:此题粗看起来有些无从着手的感觉,那么怎样开始呢?假设第一天开始时有a1只桃子,第二天有a2只……第9天有a9只,第10天有a10只.在a1,a2,…,a10中,只有a10=1是知道的,现要求a1,而我们可以看出a1,a2,…,a10之间存在一个简单的关系:a9=2×(a10+1),a8=2×(a9+1),a1=2×(a2+1).也就是:a i=2×(a i+1+1)i=9,8,7,6, (1)这就是此题的数学模型.再考察上面从a9,a8直至a1的计算过程,这其实是一个递推过程,这种递推的方法在计算机解题中经常用到.另一方面,这九步运算从形式上完全一样,不同的只是a i的下标而已.由此,我们引入循环的处理方法,并统一用a0表示前一天的桃子数,a1表示后一天的桃子数,将算法改写如下:S1a1←1;{第10天的桃子数,a1的初值}S2i←9;{计数器初值为9}S3a0←2×(a1+1);{计算当天的桃子数}S4a1←a0;{将当天的桃子数作为下一次计算的初值}S5i←i-1;S6若i≥1,转S3;S7输出a0的值;伪代码如下:10a1←120i←930a0←2×(a1+1)40a1←a0.50i←i-160If i≥1 then Goto 3070Else80Print a0流程图如下:点评:这是一个从具体到抽象的过程,具体方法:(1)弄清如果由人来做,应该采取哪些步骤;(2)对这些步骤进行归纳整理,抽象出数学模型;(3)对其中的重复步骤,通过使用相同变量等方式求得形式的统一,然后简练地用循环解决.Ⅲ.课堂练习课本P30 1,2.Ⅳ.课时小结算法是在有限步骤内求解某一问题所使用的一组定义明确的规则.通俗点说,就是计算机解题的过程.1.本节通过对解决具体问题过程与步骤的分析(如求两个数的最大公约数),体会算法的思想,进一步了解算法的含义.2.本节通过阅读中国古代数学中的算法案例,如约分术,体会中国古代数学对世界数学发展的贡献.通过学生自己的亲身实践,亲自去解决几个算法设计的问题,才能体会到算法的基本思想.数学的其他内容与算法密切相关,如函数、数列等.我们在学习这些内容时要和算法联系起来Ⅴ.课后作业课本P31 1,3.变式练习1.数4557、1953、5115的最大公约数是()A.31B.93C.217D.651答案:B2.下面的伪代码的算法目的是()10Read x,y20m←x30n←y40If m/n=int(m/n)then Goto 9050c←m-int(m/n)×n60m←n70n←c80Goto 4090a←(x×y)/n100 Print aA.求x,y的最小公倍数B.求x,y的最大公约数C.求x被y整除的商D.求y 除以x 的余数 答案:B3.下面的伪代码的算法目的是. Read X ,Y If X >Y then Print X Else Print Y End if答案:输出x ,y 两个值中较大的一个值 4.下面的伪代码的算法目的是. Read a ,b ,c , If a >b then t ←a a ←b b ←tElse if a >c then t ←a a ←c c ←tElse if b >c then t ←b b ←c c ←b End if Print a ,b ,c答案:输入三个数,要求由小到大的顺序输出 5.流程图填空:输入x 的值,通过函数y =⎪⎩⎪⎨⎧≥-<≤-<,10 113,101 12,1 x x x x x x 求出y 的值.其算法流程图如下:开始N输出y结束答案:①x ②1≤x <10 ③3x -6.根据下面的流程图写出其算法的伪代码.答案:解:这是计算2+4+6+…+200的一个算法,可以用循环语句表示为 T ←0For I from 2 to 200 step 2 T ←T +I End for7.输入一个华氏温度,要求输出摄氏温度.公式为C =95(F -32).写出其算法的伪代码. 答案:解:这是顺序结构.其伪代码如下: Read F C ←95(F -32) Print C8.一个小球从100 m 高度自由落下,每次落地后反跳回原高度的一半,再落下.设计一个算法,求它在第10次落地时共经过多少米?第10次反弹多高?画出流程图并用伪代码表示.答案:解:这是一个循环结构,可以用循环语句实现. 伪代码:S←100H←S/2For n from 2 to10S←S+2×HH←H/2End forPrint S,H流程图:9.用秦九韶算法求多项式S H输出,f(x)=3x6+12x5+8x4-3.5x3+7.2x2+5x-13当x=6时的值.答案:243168.2.10.区间二分法是求方程近似解的常用算法,其解法步骤为S1取[a,b]的中点x0=(a+b)/2;S2若f(x0)=0,则x0就是方程的根,否则若f(a)f(x0)>0,则a←x0;否则b←x0;S3若|a-b|<c,计算终止,x0就是方程的根,否则转S1.写出用区间二分法求方程2x3-4x2+3x-6=0在区间(-10,10)之间的一个近似解(误差不超过0.001)的一个算法.答案:解:伪代码:10Read a,b,c20x0←(a+b)/230f(a)←2a3-4a2+3a-640f(x0)←2x3-4x2+3x-650If f(x0)=0 then Goto 12060If f(a)f(x0)<0 then70b←x080Else90a←x0100End if110If |a-b|≥c then Goto 20120 Print x 0 流程图:输出x 011.求三个数390,455,546答案:13.12.迭代法是用于求方程或方程组近似根的一种常用的算法设计方法.设方程为f (x )=0,用某种数学方法导出等价的形式x =g (x ),然后按以下步骤执行:(1)选一个方程的近似根,赋给变量x 0;(2)将x 0的值保存于变量x 1,然后计算g (x 1),并将结果存于变量x 0; (3)当x 0与x 1的差的绝对值还小于指定的精度要求时,重复步骤(2)的计算. 若方程有根,则按上述方法求得的x 0就认为是方程的根.试用迭代法求某个数的平方根,用流程图和伪代码表示问题的算法.已知求平方根的迭代公式为x 1=21(x 0+0x a ).答案:解:设平方根的解为x ,可假定一个初值x 0=a /2(估计值),根据迭代公式得到一个新的值x 1,这个新值比初值x 0更接近要求的值x ;再以新值作为初值,即x 1→x 0,重新按原来的方法求x 1,重复这一过程直到|x 1-x 0|<ε(某一给定的精度).此时可将x 0作为问题的解.伪代码: Read x 0,ε Repeatx 1←(x 0+a /x 0)/2 r ←|x 1-x 0| x 0←x 1 Until r <ε Print x 0 流程图:输出x 013.写出计算1+2!+3!+…+20!. 答案:解析:这是一个循环结构,可以用循环语句实现. 伪代码和流程图如下: T ←1 S ←0For n from 1 to 20 T ←T ×n S←S +T End for Print S输出S14.未知数的个数多于方程个数的方程(组)叫做不定方程.最早提出不定方程的是我国的《九章算术》.实际生活中有很多不定方程的例子,例如“百鸡问题”:公元五世纪末,我国古代数学家X 丘建在《算经》中提出了“百鸡问题”:“鸡母一,值钱三;鸡翁一,值钱二;鸡雏二,值钱一.百钱买百鸡,问鸡翁、母、雏各几何?”算法设计:(1)设母鸡、公鸡、小鸡数分别为I 、J 、K ,则应满足如下条件:I +J +K =100;3I +2J +1/2K =100. (2)先分析一下三个变量的可能值.①I 的最小值可能为零,若全部钱用来买母鸡,最多只能买33只,故I 的值为0~33中的整数.②J 的最小值为零,最大值为50.③K 的最小值为零,最大值为100.(3)对I 、J 、K 三个未知数来说,I 取值X 围最少.为提高程序的效率,先考虑对I 的值进行一一列举.(4)在固定一个I 的值的前提下,再对J 值进行一一列举.(5)对于每个I ,J ,怎样去寻找满足百钱买百鸡条件的K .由于I ,J 值已设定,便可由下式得到:K =100-I -J .(6)这时的I ,J ,K 是一组可能解,它只满足“百鸡”条件,还未满足“百钱”条件.是否真实解,还要看它们是否满足3I +2J +1/2K =100,满足即为所求解.根据上述算法思想,画出流程图并用伪代码表示.答案:解:这是一个循环结构的嵌套,可以用循环语句实现. 伪代码: For I from 0 to 32 For J from 0 to 49 K ←100-I -J If 3I +2J +0.5K =100 then Print I ,J ,K End for End for 流程图:开始结束N YY。
1.3算法案例 课件-高一数学人教A版必修3
用秦九韶算法求这个多项式当x=5时的值。
解:根据秦九韶算法,把多项式改写成如下 形式:
f (x) ((((4x 2)x 3.5)x 2.6)x 1.7)x 0.8
按照从内到外的顺序,依次计算一次多项式当 x=5时的值:
WHILE d<>n
IF d>n THEN m=d
ELSE m=n
n=d
END IF d=m-n WEND d=2^k*d
PRINT d
END
问题2:怎样求多项式 f (x) x5 x4 x3 x2 x 1当x=5 的值呢?
方法1:把5代入多项式,计算各项的值,然后把它们加 起来。这时共做了1+2+3+4=10次乘法运算,5 次加法运算。
例1:用更相减损术求98与63的最大公约数。
解:由于63不是偶数,把98和63以大数减小数, 并辗转相减得,如图所示:
98-63=35 63-35=28 35-28=7 28-7=21 21-7=14 14-7=7
所以,98和63的最大公约数等于7。
思考:把更相减损术与辗转相除法比较,你有什么
发现?你能根据更相减损术设计程序,求两个正数的 最大公约数吗?
v1 an x an1
然后由内向外逐层计算一次多项式的值,即
v2 v1 x an2 ,
v3 v2 x an3 ,
vn vn1 x a0 ,
这样,求n次多项式f(x)的值就转化为求n个一次多项 式的值。
上述方法称为秦九韶算法。直到今天, 这种算法仍是 多项式求值比较先进的算法。
例2、已知一个5次多项式为
⑤十进制化k进制
高中数学《算法案例》课件2 北师大版必修3
问 题
案例2、秦九韶算法
怎样求多项式f(x)=x5+x4+x3+x2+x+1当x=5时的值呢?
第四页,编辑于星期五:十点 五十五分。
计算多项式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
按由里到外的顺序,依此计算一次多项式当x = 5时的值:
v0 5
v155227
你从中看到了怎
v22 7 53.513 .58 样的规律?怎么
v313 .5 8 52.668 .99 用程序框图来描
v468 .9 9 51.734.251 述呢?
v534.25 51 0.817.2 255
所以,当x = 5时,多项式的值等于17255.2
=3125+625+125+25+5+1
算法2:
= 3906
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
( a n x n 1 a n 1 x n 2 a 1 ) x a 0
这是怎样的一 种改写方式? 最后的结果是
什么?
( a n x ( n 2 a n 1 x n 3 a 2 ) x a 1 ) x a 0
( ( a n x a n 1 ) x a n 2 ) x a 1 ) x a 0
人教版高中数学高一-07-算法案例(王群)
巩固训练
1、分别用辗转相除法和更相减损术求下列各组数的最大公约数。
(1)225;135
精校版 (2)98;196
高中数学-打印版
思考:用秦九韶算法求 n 次多项式 f (x) an xn an1xn1 ... a1x a0 当 本节课精 x x0( x0 是任意实数)时的值,需要多少次乘法运算,多少次加法运算? 华记录
上交作业:P48 A 组 1、2、3、
精校版
本节课你 学到了很 多方法, 把它总结 一点下吧
高中数学-打印版 精校版
3、通过阅读中国古代数学中的算法案例,体会中国古代数学对世界数学发
得:
展的贡献,激发民族自豪感与爱国情怀。
教学重点:理解辗转相除法与更相减损术求最大公约数的方法秦九韶算法与进位制的
方法
教学难点:把辗转相除法与更相减损术的方法理解并学会应用秦九韶算法和进位制的
方法。
1、你能用几种方 法
新课预习:
(1) 阅读课本第 34-44 页;下面几种方法你会了吗?
【例 3:】 1、把二进制数111101(2) 化为十进制数 2、 把 67 化为二进制数。
转化方法总结:
1、k 进制化为十进制数: 2、10 进制化为 k 进制数:
【练习:】(1)10212(3) ____(10)
(2) 119(10) ______ (6)
【本节检测:】
1、求下列每组数的最大公约数。 (1)324,243,135
(2)1734,816,1343
2、 已知一个 5 次多项式为 f (x) 5x5 2x4 3x3 2x2 8 ,用秦九 韶算法求这个多项式当 x=3 时的值。
3、(1)(3) 2376(8) _____ (10)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
算法案例(讲义)➢ 知识点睛典型算法举例: 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。