一人带着一只狼、一只羊和一箱蔬菜要过河,但只有一条小船.乘船时,每次只能带狼、羊和蔬菜中的一种.当有人在场时,狼、羊、蔬菜都相安无事.一旦人不在,狼会吃羊,羊会吃菜.请设计一个方案,安全地将狼、羊和蔬菜带过河.过河游戏趣味益智游戏如何发电子邮件?假如你的朋友不会发电子邮件,你能教会他么?发邮件的方法很多,下面就是其中一种的操作步骤:第一步登陆电子信箱第二步点击“写信”第三步输入收件人地址第四步输入主题第五步输入信件内容第六步点击“发送”一般地,对于一类问题的机械式地、统一地、按部就班地求解过程称为算法(algorithm)它是解决某一问题的程序或步骤.按照这样的理解,我们可以设计出很多具体数学问题的算法.下面看几个例子:所谓“算法”就是解题方法的精确描述.从更广义的角度来看,并不是只有“计算”的问题才有算法,日常生活中处处都有.如乐谱是乐队演奏的算法,菜谱是做菜肴的算法,珠算口诀是使用算盘的算法.请你写出解下面二元一次方程组的详细过程.2121xyxy①②第二步解③得1;5x第三步②-①×2得5y=3;④第四步解④得3;5y1,53.5xy第五步得到方程组的解为第一步①+②×2得5x=1;③解:做一做你能写出解一般的二元一次方程组的步骤吗?第一步,第二步,解(3)得12211221.cbcbxabab思考21122112.acacyabab第四步,解(4)得21(1)(2)aa得:第三步,21122112.ababyacac(4)第五步,得到方程组的解为上述步骤构成了解二元一次方程组的一个算法,我们可以进一步根据这一算法编制计算机程序,让计算机来解二元一次方程组.练习1.给出求1+2+3+4+5+6的一个算法.解法1.按照逐一相加的程序进行.第一步:计算1+2,得3;第二步:将第一步中的运算结果3与3相加得6;第三步:将第二步中的运算结果6与4相加得10;第四步:将第三步中的运算结果10与5相加得15;第五步:将第四步中的运算结果15与6相加得21.解法2.可以运用下面公式直接计算.(1)12342nnn第一步,取n=6;第二步,计算;2)1(nn第三步,输出计算结果.点评:解法1繁琐,步骤较多;解法2简单,步骤较少.找出好的算法是我们的追求目标.现在你对算法有了新的认识了吗?在数学中,算法通常是指按照一定规则解决某一类问题的明确和有限的步骤.现在,算法通常可以编成计算机程序,让计算机执行并解决问题.2.算法的要求(1)写出的算法,必须能解决一类问题(例如解任意一个二元一次方程组),并且能重复使用;(2)算法过程要能一步一步执行,每一步执行的操作,必须确切,不能含混不清,而且在有限步之内完成后能得出结果.1.算法的定义3.算法的基本特征:明确性:算法对每一个步骤都有确切的、非二义性的规定,即每一步对于利用算法解决问题的人或计算机来说都是可读的、可执行的,而不需要计算者临时动脑筋.有效性:算法的每一个步骤都能够通过基本运算有效地进行,并得到确定的结果;对于相同的输入,无论谁执行算法,都能够得到相同的最终结果.有限性:算法应由有限步组成,至少对某些输入,算法应在有限多步内结束,并给出计算结果.例1:(1)设计一个算法判断7是否为质数.第一步用2除7,得到余数1.因为余数不为0,所以2不能整除7.第二步用3除7,得到余数1.因为余数不为0,所以3不能整除7.第三步用4除7,得到余数3.因为余数不为0,所以4不能整除7.第四步用5除7,得到余数2.因为余数不为0,所以5不能整除7.第五步用6除7,得到余数1.因为余数不为0,所以6不能整除7.因此,7是质数.例1:(2)设计一个算法判断35是否为质数.第一步,用2除35,得到余数1.因为余数不为0,所以2不能整除35.第二步,用3除35,得到余数2.因为余数不为0,所以3不能整除35.第三步,用4除35,得到余数3.因为余数不为0,所以4不能整除35.第四步,用5除35,得到余数0.因为余数为0,所以5能整除35.因此,35不是质数.变式:“判断53是否质数”的算法如下:第1步,用2除53得余数为1,余数不为0,所以2不能整除53;第2步,用3除53得余数为2,余数不为0,所以3不能整除53;……第52步,用52除53得余数为1,余数不为0,故52不能整除53;所以53是质数.上述算法正确吗?请说明理由.②算法要“面面俱到”,不能省略任何一个细小的步骤,只有这样,才能在人设计出算法后,把具体的执行过程交给计算机完成.①设计一个具体问题的算法时,与过去熟悉地解数学题的过程有直接的联系,但这个过程必须被分解成若干个明确的步骤,而且这些步骤必须是有效的.判断“整数n(n2)是否是质数”的算法自然语言描述第一步给定大于2的整数n.第二步令i=2.第三步用i除n,得到余数r.第四步判断“r=0”是否成立.若是,则n不是质数,结束算法;否则将i的值增加1,仍用i表示.第五步判断“i(n-1)”是否成立.若是,则n是质数,结束算法;否则返回第三步.例2:用二分法设计一个求方程近似根的算法二分法对于区间[a,b]上连续不断、且f(a)f(b)0的函数y=f(x),通过不断地把函数f(x)的零点所在的区间一分为二,使区间的两个端点逐步逼近零点,进而得到零点或其近似值的方法叫做二分法.第四步,若f(a)·f(m)0,则含零点的区间为[a,m];第二步,给定区间[a,b],满足f(a)·f(b)<0.第三步,取中间点.2abm第五步,判断f(m)是否等于0或者[a,b]的长度是否小于d,若是,则m是方程的近似解;否则,返回第三步.将新得到的含零点的仍然记为[a,b].否则,含零点的区间为[m,b].算法步骤:第一步,令,给定精确度d.2()2fxxab|a-b|12111.50.51.251.50.251.3751.50.1251.3751.43750.06251.406251.43750.031251.406251.4218750.0156251.4146251.4218750.00781251.41406251.417968750.00390625当d=0.005时,按照以上算法,可得下面表和图.y=x2-2121.51.3751.25于是,开区间(1.4140625,1.41796875)中的实数都是当精确度为0.005时的原方程的近似解.小结:•算法的特征是什么?明确性有效性有限性算法的概念:算法通常指可以用来解决的某一类问题的步骤或程序,这些步骤或程序必须是明确的和有效的,而且能够在有限步之内完成的.