1、算法的概念算法的概念 要把大象装冰箱,分几步?要把大象装冰箱,分几步?问:问:答:分三步:答:分三步:第一步:打开冰箱门第一步:打开冰箱门第二步:把大象赶入冰箱第二步:把大象赶入冰箱第三步:关上冰箱门第三步:关上冰箱门1、现有九枚硬币,有一枚略重,你能用天平、现有九枚硬币,有一枚略重,你能用天平(不用砝码不用砝码)将其找出来吗?设计一种方法,解决这一问题将其找出来吗?设计一种方法,解决这一问题.第一步:把九枚硬币平均分成第一步:把九枚硬币平均分成三份,取其中两份放天平上称,三份,取其中两份放天平上称,若平衡则重的在剩下的一份里,若平衡则重的在剩下的一份里,若不平衡则在重的一份里;若不平衡则在重
2、的一份里;第二步:在重的一份里取两枚第二步:在重的一份里取两枚放天平的两边,若平衡则剩下放天平的两边,若平衡则剩下的一枚就是所找的,若不平衡的一枚就是所找的,若不平衡则重的那枚就是所要找的。则重的那枚就是所要找的。【2】“鸡兔同笼鸡兔同笼”是我国隋朝时期的是我国隋朝时期的数学著作数学著作孙子算经孙子算经中的一个有趣中的一个有趣而具有深远影响的题目:而具有深远影响的题目:“今有雉兔今有雉兔同笼,上有三十五头,下有九十四足,同笼,上有三十五头,下有九十四足,问:雉兔各几何?问:雉兔各几何?”【2】“鸡兔同笼鸡兔同笼”是我国隋朝时期的数学著作是我国隋朝时期的数学著作孙子算经孙子算经中的一个有趣而具有
3、深远影响的题中的一个有趣而具有深远影响的题目:目:“今有雉兔同笼,上有三十五头,下有九今有雉兔同笼,上有三十五头,下有九十四足,问:雉兔各几何?十四足,问:雉兔各几何?”解:解:设设 笼子里有鸡笼子里有鸡 只,兔子只,兔子 只只.xy列列得得352494xyxy解解得得23,12xy答:答:笼子中有鸡笼子中有鸡2323只,兔只,兔1212只只.式式设设列列解解答:答:35(1)2494(2)xyxy解方程解方程第一步第一步,由(由(1)得)得35(3)xy第二步第二步,将(将(3)代入()代入(2)得)得2(35)494(4)yy第三步第三步,解(解(4)得)得12(5)y 第四步第四步,将(
4、将(5)代入()代入(3)得)得23x 第五步第五步,得到方程组的解得得到方程组的解得2312xy35(1)2494(2)xyxy解方程解方程第一步第一步,(1)2(2)224(3)y 得:第二步第二步,第三步第三步,第四步第四步,第五步第五步,得到方程组的解得得到方程组的解得2312xy(3)12y 解得:(1)4(2)246(4)x得:(4)23x 解得:问问3:3:参照上述思路,一般地,解方程参照上述思路,一般地,解方程组组 的基的基本步骤是什么?本步骤是什么?111a xb yc222a xb yc1 22 10aba b()2b1b第一步第一步,-,得,得 .1 22 12 11 2
5、()aba b xb cbc第二步第二步,解,解,得,得 .2 112122 1b cb cxa ba b 第三步第三步,-,得,得 .1a2a1 22 11 22 1()aba b ya ca c第四步第四步,解,解,得,得 .12211221a ca cya ba b第五步第五步,得到方程组的解为,得到方程组的解为 2112122112211221b cb cxa ba ba ca cya ba b 根据上述分析,用加减消元法解二元根据上述分析,用加减消元法解二元一次方程组,可以分为五个步骤进行,一次方程组,可以分为五个步骤进行,这五个步骤就构成了解二元一次方程组这五个步骤就构成了解二元一
6、次方程组的一个的一个“算法算法”.我们再根据这一算法编我们再根据这一算法编制计算机程序,就可以让计算机来解二制计算机程序,就可以让计算机来解二元一次方程组元一次方程组.算法的概念算法的概念算法算法(algorithm)这个词出现于这个词出现于12世纪世纪,指的是用阿拉伯数字进行算术运算的过程指的是用阿拉伯数字进行算术运算的过程.广义地说:为了解决某一问题而采取的方法和步骤,广义地说:为了解决某一问题而采取的方法和步骤,就称之为算法。就称之为算法。例例1 1、给出求给出求1+2+3+4+51+2+3+4+5的一个算法。的一个算法。算法算法1 1:S1S1:计算:计算1+21+2得到得到3 3;S
7、2S2:将第一步中的运算结果:将第一步中的运算结果3 3与与3 3相加得到相加得到6 6;S3S3:将第二步中的运算结果:将第二步中的运算结果6 6与与4 4相加得到相加得到1010;S4S4:将第三步中的运算结果:将第三步中的运算结果1010与与5 5相加得到相加得到1515;算法算法2:S1:取:取n=5;S3:输出运算结果。:输出运算结果。S2:计算:计算2)1(nn1有限性:一个算法应在执行有限个步骤后必须结束有限性:一个算法应在执行有限个步骤后必须结束.2确定性:算法中每一个步骤和次序应当是确定的确定性:算法中每一个步骤和次序应当是确定的.算法的主要特点算法的主要特点3不唯一性:对于
8、一个问题可以有不同的算法不唯一性:对于一个问题可以有不同的算法问问5 5:有人对哥德巴赫猜想有人对哥德巴赫猜想“任何大于任何大于4 4的偶的偶数都能写成两个质数之和数都能写成两个质数之和”设计了如下操作设计了如下操作步骤:步骤:第一步,检验第一步,检验6=3+36=3+3,第二步,检验第二步,检验8=3+58=3+5,第三步,检验第三步,检验10=5+510=5+5,利用计算机无穷地进行下去!利用计算机无穷地进行下去!请问:这是一个算法吗?请问:这是一个算法吗?算法的描述算法的描述1、自然语言、自然语言2、框图(流程图)、框图(流程图)3、程序设计语言、程序设计语言低级语言低级语言高级语言高级
9、语言算法的步骤设计算法的步骤设计:例例1 1:如果让计算机判断如果让计算机判断7 7是否为质数,如何是否为质数,如何设计算法步骤?设计算法步骤?第一步第一步,用,用2 2除除7 7,得到余数,得到余数1,1,所以所以2 2不能整除不能整除7.7.第四步第四步,用,用5 5除除7 7,得到余数,得到余数2,2,所以所以5 5不能整除不能整除7.7.第五步第五步,用,用6 6除除7 7,得到余数,得到余数1,1,所以所以6 6不能整除不能整除7.7.第二步第二步,用,用3 3除除7 7,得到余数,得到余数1,1,所以所以3 3不能整除不能整除7.7.第三步第三步,用,用4 4除除7 7,得到余数,
10、得到余数3,3,所以所以4 4不能整除不能整除7.7.因此,因此,7 7是质数是质数.例例2:2:如果让计算机判断如果让计算机判断3535是否为质数,如何是否为质数,如何设计算法步骤?设计算法步骤?第一步第一步,用,用2 2除除3535,得到余数,得到余数1,1,所以所以2 2不能整除不能整除35.35.第二步第二步,用,用3 3除除3535,得到余数,得到余数2,2,所以所以3 3不能整除不能整除35.35.第三步第三步,用,用4 4除除3535,得到余数,得到余数3,3,所以所以4 4不能整除不能整除35.35.第四步第四步,用,用5 5除除3535,得到余数,得到余数0,0,所以所以5
11、5能整除能整除35.35.因此,因此,3535不是质数不是质数.探究探究:任意给定一个大于任意给定一个大于1的整数的整数n,试设计一个试设计一个算法判断算法判断n是否为质数是否为质数算法分析算法分析:例例3:写出用二分法求方程写出用二分法求方程x2-2=0(x0)的近似根的近似根的算法的算法.算法分析算法分析:第一步第一步:令令f(x)=x2-2.给定精确度给定精确度第二步第二步:确定确定a,b.使得使得f(a)f(b)0,则则a=m;否则否则,b=m.第五步第五步:判断判断|a-b|7时时)求该函数值的算法分析求该函数值的算法分析:第一步第一步:输入输入x;第二步第二步:判断判断x是否不超过是否不超过7.若是若是,则则y=1.2x;若否若否,则则y=1.9x-4.9.第三步第三步:输出输出y.设计一个求该函数值的算法设计一个求该函数值的算法.练习三练习三:任意给定一个大于任意给定一个大于1的正整数的正整数n,设计一个算法求出设计一个算法求出n的所有因数的所有因数.算法步骤:第一步,给定一个大于l的正整数n 第=步,令i=1 第三步,用i除n得到余数r.第四步,判断“r=0”是否成立若是,则i是n的因数;否则,i不是n的因数.第五步,使i的值增加l,仍用i表示 第六步,判断“in”是否成立若是,则结束算法;否则,返回第三步),(11yxA),(22yxB
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。