1、1.1.1算法的概念,随着科学技术的日新月异,算法学也得到了前所未有的发展,现在已经发展到了各个领域.有遗传算法,排序算法,加密算法,蚁群算法等,与生物学,计算机科学等有着很广泛的联系,尤其是在现在的航空航天中,更是有着更广泛的应用. 很多复杂的运算都是借助计算机和算法来完成的,在高端科学技术中有着很重要的地位.,计算机的问世可谓是20 世纪最伟大的科学技术发明。它把人类社会带进了信息技术时代。,计算机是对人脑的模拟,它强化了人的思维智能;,21世纪信息社会的两个主要特征: “计算机无处不在” “数学无处不在”,21世纪信息社会对科技人才的要求: -会“用数学”解决实际问题 -会用计算机进行科
2、学计算,而算法是计算机科学的重要基础。就像使用算盘一样,人们需要给计算机编制“口决”算法,才能让它工作,否则超级计算机只是一堆废铁而已;,要想了解计算机的工作原理,算法的学习是一个开始,把大象放进冰箱里需要几步?,2000春晚小品钟点工,1、把冰箱门打开,2、把大象装进去,3、把冰箱门关上,第一步:2得: 5x=1 ,第二步: 解得:,第三步:-2得: 5y=3 ,第四步: 解得:,第五步:得到方程组的解为,(加减消元法),(代入消元法),你能写出求一般二元一次方程组的步骤吗?,第三步:,第四步:解(4)得,第五步:得到方程组的解为,第一步:,第二步:解(3)得,数学中,一般地, 按照一定规则
3、解决某一类问题的明确和有限的步骤称为算法。,从广义的角度来看,并不是只有“计算”的问题才有算法,日常生活中处处都有.如乐谱是乐队演奏的算法,菜谱是做菜肴的算法,棋谱是下棋的算法.,它是解决某一类问题的程序或步骤;这些程序或步骤必须是明确有效的,而且能够在有限步之内完成;算法的设计尽量简单、步骤尽量少。,一.算法的概念,二.算法的基本特征:,确定性:算法中的每一步都应该是确定的,并且能有效地执行且得到确定的结果.,有限性:一个算法的步骤是有限的,它应在有限步操作之后停止,而不能是无限的,有序性:算法从初始步骤开始,分为若干明确的步骤,每一个步骤只能有一个确定的后续步骤,只有执行完前一步才能进行下
4、一步,并且每一步都要准确无误.,非唯一性:求解某个问题的算法不一定是唯一的,对于一个问题可以有不同的算法,1下列关于算法的说法正确的是( ) (A)某算法可以无止境地运算下去 (B)一个问题的算法步骤可以是可逆的 (C)完成一件事情的算法有且只有一种 (D)设计算法要本着简单、方便、可操作的原则,D,2下列运算中不属于我们所讨论算法范畴的是( ). A. 已知圆的半径求圆的面积 B. 从一副扑克牌随意抽取3张扑克牌抽到 24点的可能性 C. 已知坐标平面内的两点求直线的方程 D. 加减乘除运算法则,B,第一步:用2除7,得到余数1,所以2不能整除7.,第二步:用3除7,得到余数1,所以3不能整
5、除7.,例1:(1)设计一个算法,判断7是否为质数?,第三步:用4除7,得到余数3,所以4不能整除7.,第四步:用5除7,得到余数2,所以5不能整除7.,第五步:用6除7,得到余数1,所以6不能整除7.,因此,7是质数.,例1:(2)设计一个算法,判断35是否为质数?,第一步:用2除35,得到余数1,所以2不能整除35.,第二步:用3除35,得到余数2,所以3不能整除35.,第三步:用4除35,得到余数3,所以4不能整除35.,第四步:用5除35,得到余数0,所以5能整除35.,因此,35不是质数.,例2,用二分法设计一个求方程 的近似正根的算法,精确度0.05。,算法分析:令f(x)=x2-
6、2=0(x0),则方程x2-2=0的解就是函数f(x)的零点。“二分法”的基本思想是:把函数f(x)的零点所在的区间a,b(满足f(a)f(b)0)“一分为二”。得到a,m和m,b。根据“f(a)f(m)0”是否成立,取出零点所在的区间a,m或m,b,仍记为a,b,对所得的区间a,b重复上述步骤,直到包含零点的区间a,b“足够小“,则a,b内的数可以作为方程的近似解。,探究解决,例2,用二分法设计一个求方程 的近似正根的算法,解,练习4.写出求一元二次方程 ax2+bx+c=0 的根的算法.,第一步:计算=b2-4ac.,第三步:输出x1, x2或无实数解的信息.,第二步:如果0,则原方程无实
7、数解 ;否则(0)时,,1.任意给定一个正实数,设计一个算法求以这个数为半径的圆的面积.,第一步:输入任意一个正实数r;,第二步:计算圆的面积: S=r2;,第三步:输出圆的面积S.,三、练习,2.任意给定一个大于1 的正整数n,设计一个算法求出n的所有因数.,答案1: 第一步:依次以2(n-1)为除数去除n,检查余数是否为0,若是,则是n的因数;若不是,则不是n的因数.,第二步:在n的因数中加入1和n.,第三步:输出n的所有因数.,答案2:第一步:给定大于1的整数n 第二步:令i=2 第三步:用i除n,得余数r 第四步:判断“ r=0” 是否成立,若是,则i是n的因数,输出i, 第五步:将i
8、的值增加1,仍用i表示. 第六步:判断“in-1” 是否成立,若是,再输出n和1, 结束算法,否则返回第三步.,小结:,算法的特征是什么?,明确性,有序性,有限性,算法的概念:算法通常指可以用来解决的某 一类问题的步骤或程序,这些步骤或程序必须是明 确的和有效的,而且能够在有限步之内完成的。,非唯一性,分析问题,二分法,对于区间a,b 上连续不断、且 f(a)f(b)0的函数y=f(x),通过不断地 把函数f(x)的零点所在的区间一分 为二,使区间的两个端点逐步逼近 零点,进而得到零点近似值的方法 叫做二分法.,探究解决,解决问题,第四步, 若f(a) f(m) 0,则含零点的区间为a,m;,第一步, 令 .给定精确度d.,第二步, 给定区间a,b,满足f(a) f(b)0,第三步, 取中间点 ,第五步, 判断a,b的长度是否小于d或者 f(m)是否等于.,将新得到的含零点的仍然记为a,b .,否则,含零点的区间为m, b.,若是,则m是方程的近似 解;否则,返回第三步,解决问题,当d=0.005时,例2.用二分法设计一个求方程x2-2=0是近似根的算法。,算法分析:假设精确度为0.005,第一步:令f(x)=x2-2,因为f (1)0,所以设a=1,b=2;,第二步:令 ,判断f (m)是否为0,若是,则m为所求;若否,则继续判断f (a)f (m)大于0还是小于0;,