1.1.1算法的概念自学导引1.在数学中,“算法”通常是指按照一定规则解决某一类问题的明确和有限的________.2.计算机解决任何问题都要依赖于________,只有将解决问题的过程分解为若干个明确的________,即________,并用计算机能够接受的“语言”准确地描述出来,计算机才能够解决问题.步骤算法步骤算法自主探究1.解决某一类问题的算法是否唯一?【答案】不唯一.如解二元一次方程组的算法有加减消元法和代入消元法两种,但不同的算法有优劣之分.2.在解放战争中,有一名战士接到命令,要求在最短的时间内配制三副炸药,但是由于条件艰苦,称量物品的天平只剩下50g和5g两个砝码.现有495g硫黄,如何设计算法使称量的次数最少?需称量多少次?【答案】S1先计算出495g硫黄如果平均分成三份每一份应该是165g.S2165g中有3个5g和3个50g.S3用5g砝码称出5g硫黄.S4用5g砝码和5g硫黄共同称出10g硫黄.S5再用50g砝码称出50g硫黄.S6用50g砝码和50g硫黄共同称出100g硫黄.S7把5g、10g、50g、100g硫黄混合,构成165g硫黄,也就是一份的质量.S8用这一份硫黄再称出165g.此时全部硫黄被平均分成三份,按照以上算法共需要称量5次.要点阐释1.算法概念的理解(1)算法是指按照一定规则解决某一类问题的明确和有限的步骤.这些步骤必须是明确和有效的,而且能够在有限步之内完成.(2)算法与一般意义上具体问题的解法既有联系,又有区别.它们之间是一般和特殊的关系,也是抽象与具体的关系.(3)算法一方面具有具体化、程序化、机械化的特点,同时又有高度的抽象性、概括性、精确性,所以算法在解决问题时更具有条理性、逻辑性等特点.2.算法的特征(1)概括性:写出的算法必须能够解决某一类问题,并且能够重复使用.(2)逻辑性:算法从初始步骤开始,分为若干个明确的步骤,前一步是后一步的前提,只有完成前一步,才能进行下一步,而且每一步都是正确无误的,从而组成具有很强逻辑性的步骤序列.(3)有穷性:一个算法必须保证在执行了有限步之后结束.(4)不唯一性:求解某一个问题的算法不一定只有唯一的一个,也可以有不同的算法,这些算法有繁简、优劣之分.(5)普遍性:很多具体问题,都可以设计合理的算法去解决.3.设计算法的要求(1)写出的算法必须能解决一类问题(如,判断一个整数n(n2)是否为质数,求任意一个方程的近似解等),并且能够重复使用.(2)要使算法尽量简单,步骤尽量少.(3)要保证算法正确,且计算机能够执行,如让计算机计算1+2+3+4+5是可以做到的,但让计算机去执行“倒一杯水”、“替我理发”等则是做不到的.典例剖析题型一对算法概念的理解【例1】下列关于算法的说法,正确的个数有()①求解某一类问题的算法是唯一的;②算法必须在有限步操作之后停止;③算法的每一步操作必须是明确的,不能有歧义或模糊;④算法执行后一定产生确定的结果.A.1B.2C.3D.4【解析】由于算法具有有穷性、确定性、输出性等特点,因而②③④正确,而解决某类问题的算法不一定唯一,从而①错.【答案】C变式训练1.下列对算法的理解不正确的是()A.一个算法应包含有限的步骤,而不能是无限的B.算法中的每一步骤都应当是确定的,而不应当是含糊的、模棱两可的C.算法中的每一步骤都应当有效地执行,并得到确定的结果D.一个问题只能设计出一种算法【答案】D题型二计算问题的算法设计【例2】给出求1+2+3+4+5的一个算法.解:解法一:第一步,计算1+2,得3.第二步,将第一步中运算结果3与3相加,得6.第三步,将第二步中运算结果6与4相加,得10.第四步,将第三步的运算结果10与5相加,得15.第五步,输出运算结果.解法二:第一步,取n=5.第二步,计算n(n+1)2.第三步,输出运算结果.变式训练2.求1×3×5×7×9×11的值,写出其算法.解:算法如下:第一步,先求1×3,得到结果3.第二步,将第一步所得结果3再乘以5,得到结果15.第三步,再将15乘以7,得到结果105.第四步,再将105乘以9,得到945.第五步,再将945乘以11,得到10395.第六步,输出运算结果.题型三算法的应用【例3】写出解方程x2-2x-3=0的一个算法.解:解法一:第一步,将方程左边因式分解,得(x-3)(x+1)=0.①第二步,由①得x-3=0,②或x+1=0.③第三步,解②得x=3,解③得x=-1.变式训练3.写出能找出a,b,c三个数中最小值的一个算法.解:第一步,输入a、b、c,并且假定min=a.第二步,若bmin成立,则用b的值替换min;否则直接执行下一步.第三步,若cmin成立,则用c的值替换min,否则直接执行下一步.第四步,输出min的值,结束.题型四非数值性问题的算法设计【例4】各种比赛在计算选手最后得分时,要去掉所有评委对该选手所打分数中的最高分和最低分,试设计一个找出最高分的算法.解:算法如下:第一步,先假定其中一个为“最高分”.第二步,将第二个分数与“最高分”比较,如果它比“最高分”还高,就用该分数替代原假定的“最高分”而得出新的“最高分”;否则“最高分”不变.第三步,如果还有其他分数,重复第二步.第四步,一直到没有可比的分数为止,这时的“最高分”就是所有评委打分中的最高分.变式训练4.若本例中已知条件不变,试设计一个找出最低分的算法.解:算法如下:第一步,先假定其中一个为“最低分”.第二步,将第二个分数与“最低分”比较,如果它比“最低分”还低,就用该分数替代原假定的“最低分”而得出新的“最低分”;否则“最低分”不变.第三步,如果还有其他分数,重复第二步.第四步,一直到没有可比的分数为止,这时的“最低分”就是所有评委打分中的最低分.课堂总结1.正确理解算法的概念,一个程序的算法要本着方便简捷的原则,还要讲求科学性,算法的步骤是按照一定顺序进行的,不具有可逆性.2.在设计算法的过程当中要牢固把握住它的五个特性:概括性、逻辑性、有穷性、不唯一性、普遍性.当堂检测1.下面关于算法的描述,不正确的是()A.早期,算法指的是用阿拉伯数字进行算术运算的过程B.从数学发展的历史看,算法只是一个“新生儿”,最近几年才有的C.解决任何问题都有算法D.算法是计算科学的基础,算法通常可以编成计算机程序,让计算机执行并解决【答案】B2.下面的结论正确的是()A.算法步骤是可逆的B.一个算法可以无止境地运算下去C.完成一件事情的算法有且只有一种D.设计算法要本着简单方便的原则【解析】A错,不一定可逆;B错,算法必须在有限步之内完成;C错,可以有多种;D正确.【答案】D3.下列可以看成算法的是()A.学习数学时,课前预习,课上认真听讲并记好笔记,课下先复习再做作业,之后做适当的练习题B.今天餐厅的饭真好吃C.这道数学题难做D.方程2x2-x+1=0无实数根【答案】A4.判断5是否为质数的算法步骤如下:第一步:用2除5,得余数为1.因为余数不为0,所以2不能整除5;第二步:________;第三步:用4除5,得余数为1.因为余数不为0,所以4不能整除5.因此,5是质数.【答案】用3除5,得余数为2.因为余数不为0,所以3不能整除5.5.已知一个学生的语文成绩为89,数学成绩为96,外语成绩为99.求他的总分和平均分的一个算法为:第一步,令A=89,B=96,C=99.第二步,计算总分S=____________①.第三步,计算平均分M=____________②.第四步,输出S和M.【答案】①A+B+C②S36.给出求解方程组2x+y=74x+5y=11的一个算法.解:方法一:用代入消元法第一步,由2x+y=7得y=7-2x.第二步,将y=7-2x代入4x+5y=11,得4x+5(7-2x)=11,解得x=4.第三步,将x=4代入方程y=7-2x,解得y=-1.第四步,输出方程组的解为x=4y=-1.方法二:用加减消元法第一步,方程2x+y=7两边都乘以5得,10x+5y=35.第二步,将第一步所得的方程与方程4x+5y=11作差,消去y得,6x=24,解得x=4.第三步,将x=4代入方程2x+y=7,解得y=-1.第四步,输出方程组的解为x=4y=-1.