算法的概念——知能阐释一、知识精讲1.算法的含义算法可以理解为由基本运算及规定的运算顺序所构成的完整的解题步骤,或看成按要求设计好的有限的确切的计算序列,并且这样的步骤或序列能够解决一类问题。说明:(1)算法一般是机械的,有时要进行大量的重复计算,只要按部就班地去做,总能算出结果。通常把算法过程称为“数学机械化”,数学机械化的最大优点,是它可以让计算机来完成。(2)实际上,处理任何问题都需要算法,中国象棋有中国象棋的棋谱,国际象棋有国际象棋的棋谱。再比如,邮寄物品有其相应的手续,购买飞机票也有一系列的手续等等。(3)求解某个问题的算法不唯一。2.算法的特征(1)确定性:算法的每一步必须是确切定义的,且无二意性,算法只有唯一的一条执行路径,对于相同的输入只能得出相同的输出。(2)有容性:一个算法必须在执行有穷次运算后结束,在所规定的时间和空间内,若不能获得正确结果,其算法也是不能被采用的。(3)可行性:算法中的每一个步骤都必须能用实现算法的工具——可执行指令精确表达,并在有限步骤内完成,否则这种算法也是不会被采纳的。(4)算法一定要根据输入的初始数据或给定的初值才能正确执行它的每一步骤。(5)有输出,算法一定能得到问题的解,有一个或多个结果输出,达到求解问题的目的,没有输出结果的算法是没有意义的。3.算法的描述(1)自然语言:自然语言就是人们日常使用的语言,可以是汉语、英语或数学语言等。用自然语言描述算法的优点是通俗易懂,当算法中的操作步骤都是顺序执行时比较容易理解。缺点是如果算法中包含判断或转向,并且操作步骤较多时就不那么直观清晰了。(2)框图(流程图):所谓框图,就是指用规定的图形符号来描述算法,用框图描述算法,具有直观、结构清晰、条理分明、通俗易懂、便于检查修改及交流等优用心爱心专心点。(3)程序设计语言:算法最终可通过程序的形式编写出来,并在计算机上执行。程序设计语言可分为低级语言和高级语言,低级语言包括机器语言和汇编语言。3.设计算法的要求(1)写出的算法,必须解决一类问题,并且能够重复使用。(2)要使算法尽量简单、步骤尽量少。(3)要保证算法正确,且计算机能够执行,如:让计算机计算12345是可以做到的,但让计算机去执行“倒一杯水”则是做不到的。二、范例剖析例1写出作ABC的外接圆的一个算法。分析:解决这个问题可按下面的算法进行。解析:第一步:作AB的垂直平分线1l;第二步:作BC的垂直平分线2l;第三步:以1l与2l的交点M为圆心,MA为半径作圆,圆M即为ABC的外接圆。评注:本题实质就是将ABC的外接圆的一个作法分步写出。例2写出求经过点(2,1)M、(2,3)N的直线与两坐标轴围成的三角形面积的一个算法。分析:已知直线上的两点M、N,由两点式可写出直线的方程,令0x,得与y轴交点;令0y,得与x轴交点。求出三角形两直角边的长,根据三角形的面积公式求出三角形的面积。解析:算法如下:第一步:取12x,11y,22x,23y;第二步:得直线方程112121yyxxyyxx;第三步:在第二步的方程中,令0x,得y的值m,从而得直线与y轴的交点用心爱心专心(0,)Bm;第四步:在第二步的方程中,令0y,得x的值n,从而得直线与x轴的交点(,0)An;第五步:根据三角形的面积公式求12Smn;第六步:输出运算结果。评注:由于两点式直线方程可以有公式套用,所以这一步骤选择了套用公式的算法;三角形的面积需要求两直角边的长度,而本题中正是先求出三角形的两直角边的长度,再代入面积公式求出了三角形的面积。例3一位商人有9枚银元,其中有一枚略轻的是假银元,你能用天平(不用砝码)将假银元找出来吗?分析1:最容易想到的解决这个问题的一种方法是:把9枚银元按顺序排成一列,先称前2枚,若不平衡,则可找出假银元;若平衡,则2枚银元都是真的,再依次与剩下的银元比较,就能找出假银元。解析:算法步骤如下:第一步:任取2枚银元分别放在天平的两边,如果天平左右不平衡,则轻的一边就是假银元;如果天平平衡,则进行第二步;第二步:取下右边的银元放在一边,然后把剩余的7枚银元依次放在...