资源描述:
《1.1.1算法概念》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、1.1.1算法的概念一位商人有9枚银元,其中有1枚略轻的是假银元。你能用天平(不用砝码)将假银元找出来吗?问题1问题1第一步:把9枚金币平均分成三组,每组三枚。第二步:先将其中的两组放在天平的两边,如果天平不平衡,那么假金币就在轻的那一组;如果天平左右平衡,则假金币就在未称量的那一组里。第三步:取出含假币的那一组,从中任取两枚金币放在天平两边进行称量,如果天平不平衡,则假金币在轻的那一边;若平衡,则未称的那一枚就是假币。、一个农夫带着一条狼、一头山羊和一篮蔬菜要过河,但只有一条小船.乘船时,农夫只能带一样东西.当农夫在场的时候,这三样东西相安无事.一旦
2、农夫不在,狼会吃羊,羊会吃菜.请设计一个算法,使农夫能安全地将这三样东西带过河.第一步:农夫带羊过河;第二步:农夫独自回来;第三步:农夫带狼过河;第四步:农夫带羊回来;第五步:农夫带蔬菜过河;第六步:农夫独自回来;第七步:农夫带羊过河.“鸡兔同笼”是我国隋朝时期的数学著作《孙子算经》中的一个有趣而具有深远影响的题目:“今有鸡兔同笼,上有三十五头,下有九十四足,问:鸡兔各几何?”问题3解:笼子里有鸡只,兔子只.设列式得解得答:笼子中有鸡23只,兔12只.第一步第二步第三步第四步设列答解什么是算法呢?一般地,按照一定规则解决某一类问题的明确和有限的步骤称为
3、算法(algorithm)。乐谱是乐队演奏的算法菜谱是做菜肴的算法珠算口诀是使用算盘的算法日常生活中的算法:算法的含义(广义)完成某项工作的方法和步骤(现代)可以用计算机来解决的一类问题的程序和步骤.(教材)在数学中,算法通常是按照一定规则解决某一类问题的明确和有限的步骤.算法的特征确切性:算法的每一个步骤都是确切的,能有效执行且得到确定结果,不能模棱两可。有穷性:一个算法必须在执行有穷步之后结束,并且每一步都必须在有穷时间内完成。可行性:算法中描述的操作都是可以通过已经实现的基本运算执行有限次来实现的。不唯一性:求解某一个问题的算法不一定只有唯一的一
4、个,可以有不同的算法。普遍性:练习判断下列关于算法的说法是否确:1、求解某一类问题的算法是唯一的;2、算法必须在有限步操作之后停止:3、算法的每一步必须是明确的,不能有歧义或模糊:4、算法执行后一定产生确定的结果:第一步第三步第四步第五步得到方程组的解问题4第二步写出解方程的算法由(1)得将(3)代入(2)得解(4)得将(5)代入(3)得第一步第三步第四步第五步得到方程组的解问题4第二步写出解方程的算法写出解一般二元一次方程组的算法.推广第一步,第二步,解(3)得写出解一般二元一次方程组的算法.推广第三步,第四步,解(4)得第五步,得到方程组的解为(1
5、)设计一个算法判断7是否为质数.例1第一步,用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.第三步,
6、用4除35,得到余数3.因为余数不为0,所以4不能整除7.第四步,用5除35,得到余数0.因为余数为0,所以5能整除35.因此,35不是质数.算法分析:根据质数的定义,很容易设计出下面的步骤:第一步:判断n是否等于2,若n=2,则n是质数;若n>2,则执行第二步。第二步:令i=2。变式:任意给定一个大于1的整数n,试设计一个程序或步骤对n是否为质数做出判定。第三步:用i除n,得到余数是r。第四步:判断r是否为0,若是,则n不是质数;否则,将i的值增加1,仍用i表示。第五步:判断i>(n-1)是否成立。若是,则n是质数,结束算法;否则,返回第三步。用二分
7、法设计一个求方程的近似正根的算法,精确度0.05。例2判断有人对歌德巴赫猜想“任何大于4的偶数都能写成两个奇质数之和”设计了如下操作步骤:第一步:检验6=3+3第二步:检验8=3+5第三步:检验10=5+5。。。利用计算机无穷地进行下去!请问,利用这种程序能够证明猜想的正确性吗?这是一种算法吗?1.任意给定一个正实数a,试设计一个算法求以a为直径的圆的面积。第一步:输入a的值.第二步:________________________.第三步:________________________.第四步:输出圆的面积的值.练习计算圆的面积:S=πr2计算r=
8、a/22.任意给定一个大于1的正整数n,设计一个算法求出n的所有因数.第一步:依次以2~(n-