




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1.1.1算法的概念要把大象装冰箱,分几步?哈哈问:问题情境一个农夫带着一只狼、一头山羊和一篮蔬菜要过河,但只有一条小船。乘船时,农夫只能带一样东西。当农夫在场的时候,这三样东西相安无事,一旦农夫不在,狼会吃羊,羊会吃菜。请设计一个方案,使农夫能安全地将这三样东西带过河。S1:农夫带羊过河S2:农夫独自回来;S3:农夫带狼过河S4:农夫带羊回来;S5:农夫带蔬菜过河S6:农夫独自回来;S7:农夫带羊过河我们从小学就开始接触算法,熟悉许多问题的算法。如,做四则运算要先乘除后加减,从里往外脱括弧,竖式笔算等都是算法,至于乘法口诀、珠算口诀更是算法的具体体现。一、算法的概念
广义的算法是指进行某一工作的方法和步骤。在数学中算法可以理解为由基本运算及规定的运算顺序所构成的完整解题步骤或者看成按照要求设计好的有限的确切的计算序列,并且这样的步骤或序列能够解决一类问题例1“一群小兔一群鸡,两群合到一群里,要数腿共48,要数脑袋整17,多少小兔多少鸡?”解:算术方法:如果没有小兔,那么小鸡应为17只,总的腿数应为2×17=34条,但现在有48条腿,造成腿的数目不够是由于小兔的数目为0,每有一只小兔便会增加两条腿,故应有(48-17×2)÷2=7只小兔。相应的,小鸡有10只。代数方法:设有x只小鸡,y只小兔.则将第一个方程的两边同乘以-2加到第二个方程中去,得到解第二个方程得y=7.把y代入到第一个方程得x=10.思考1
对著名的“鸡兔同笼”问题,其中第一种解法是算术方法,教材中对它的评价是“简单直观,却包含着深刻的算法思想”,那么它是如何体现算法的思想呢?S1假设没有小兔,则小鸡应为n只;S2计算总腿数为2n只;S3计算实际总腿数与假设总腿数的差值为m-2n;S4计算小兔只数为;S5小鸡的只数为n-.思考2
教材中例1的第二种解法是列方程组的方法,它是否也是一种算法呢?
S1设未知数;S2根据题意列方程组;S3解方程组;S4还原实际问题,得到实际问题的答案。探究:是的,其算法步骤为在实际中,很多问题可以归结为求解二元一次方程组,下面我们用消元法来解一般的二元一次方程组S1假定a11≠0,②×a11-①×a21得S2如果a11a22-a12a21≠0,则执行下步;否则执行S6S3④两边同除以a11a22-a12a21≠0得S4⑥代入⑤.得S5输出结果x1,x2,S6若a11b2-a21b1≠0.则执行下一步;否则执行S8S7输出“方程组无解”.S8输出“方程组有无穷多个解”以上解二元一次方程组的方法,叫做高斯消去法二.算法的要求:(1)写出的算法,必须能解决一类问题(例如解任意一个二元一次方程组),并且能重复使用;(2)算法过程要能一步一步执行,每一步执行的操作,必须确切,不能含混不清,而且在有限步之内完成后能得出结果。写算法要先建立过程模型,根据过程设计步骤,使之条理化,完成算法体验:写出解方程x2-2x-3=0的一个算法.配方法:S1移项,得x2-2x=3①S2①式两边同加1并配方得(x-1)2=4②S3②式两边开方,得x-1=±2③S4解③式得x=3或x=-1因式分解法:S1将方程左边因式分解得(x-3)(x+1)=0①S2由①得x-3=0或x+1=0②S3解②得x=3或x-1公式法:S1计算方程的判别式,判断其符号
△=(-2)2-4×(-3)>0;S2将a=1,b=-2,c=-3代入求根公式,得x=3或x=-1三、算法的特点
1.有穷性:不论在哪一种算法中,它们都是经有限次步骤完成的。2.确定性:在算法中,每一步都能明确地执行,且有确定的结果。3.可行性:在所有算法中,每一步操作都是可以执行的。4.不唯一性:求解某一个问题的算法不一定只有唯一的一个,也可以有不同的算法5.普适性:算法解决的通常都是一类问题,可以重复使用例2写出一个求有限整数列中的最大值的算法。解:算法如下:
S1先假定序列中的第一个整数为“最大值”;
S2将序列中的下一个整数值与“最大值”比较,如果它大于此“最大值”,这时你就假定“最大值”是这个整数;
S3如果序列中还有其他整数,重复S2;
S4在序列中一直到没有可比的数为止,这时假定的“最大值”就是这个序列中的最大值。如果让你去找,你可能不会这样做,可能认为,这样太机械、太枯燥。不要忘了,我们写的是算法。算法要求按部就班地做,每一步都有唯一的结果,又要求写出的算法对任意整数序列都适用,总能得到结果。所以上面写的,符合算法的要求。
S1max=aS2如果b>max,则max=b.S3如果C>max,则max=c.S4max就是a,b,c中的最大值。下面我们用数学语言,写出对任意3个整数a,b,c求出最大值的算法。四、应用举例写出交换两个大小相同的杯子中的液体(A水、B酒)的一个算法。S1:找一个大小与A相同的空杯子C。酒B空C水A四、应用举例写出交换两个大小相同的杯子中的液体(A水、B酒)的一个算法。S1:找一个大小与A相同的空杯子C。S2:将A中的水倒入C中。酒B水C空A四、应用举例写出交换两个大小相同的杯子中的液体(A水、B酒)的一个算法。S1:找一个大小与A相同的空杯子C。S2:将A中的水倒入C中。S3:将B中的酒精倒入A中。空B水C酒A四、应用举例例1.写出交换两个大小相同的杯子中的液体(A水、B酒)的一个算法。S1:找一个大小与A相同的空杯子C。S4:将C中的水倒入B中,结束。S2:将A中的水倒入C中。S3:将B中的酒精倒入A中。水B空C酒A2.算法的特点:思路简单清晰,叙述复杂,步骤繁琐,计算量大,完全依靠人力难以完成。而这些恰恰就是计算机的特长,它能不厌其烦地完成枯燥的、重复的繁琐的工作。正因为这些,现代算法的作用之一就是使计算机代替人完成某些工作,这也是我们学习算法的重要原因之一。五、课堂总结1.知识结构算法的概念算法的步骤算法的特点算法五、课堂总结3.设计算法的注意事项:
(1)认真分析问题,联系解决此问题的一般数学方法;(2)综合考虑此类问题中可能涉及的各种情况;(3)借助有关的变量或参数对算法加以表达;(4)将解决问题的过程划分为若干个步骤;(5)然后用简练的语言将各个步骤表示出来。1.下面的四种叙述不能称为算法的是()(A)广播的广播操图解(B)歌曲的歌谱(C)做饭用米(D)做米饭需要刷锅、淘米、添水、加热这些步骤当堂检测:C2.下列关于算法的说法正确的是()(A)某算法可以无止境地运算下去(B)一个问题的算法步骤可以是可逆的(C)完成一件事情的算法有且只有一种(D)设计算法要本着简单、方便、可操作的原则D3.下列关于算法的说法中,正确的是().A.算法就是某个问题的解题过程B.算法执行后可以不产生确定的结果C.解决某类问题的算法不是惟一的D.算法可以无限地操作下去不停止C4.下列运算中不属于我们所讨论算法范畴的是().A.已知圆的半径求圆的面积B.从一副扑克牌随意抽取3张扑克牌抽到24点的可能性C.已知坐标平面内的两点求直线的方程D.加减乘除运算法则B5.下列语句表达中是算法的有().①从济南到巴黎可以先乘火车到北京再坐飞机抵达;②利用公式S=ah÷2计算底为1高为2的三角形的面积;③x>2x+4;④求M(1,2)与N(3,5)两点连线的方程可先求MN的斜率再利用点斜式方程求得.A.1个B.2个C.3个D.4个C6.写出求1+2+3+…+100的一个算法.可以运用公式1+2+3+…+n=直接计算.第一步
①
;第二步
②
;第三步输出运算结果.①取n=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论