欢迎来到天天文库
浏览记录
ID:26663806
大小:350.50 KB
页数:17页
时间:2018-11-28
《算法的概念23810》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、算法的概念——知能阐释一、知识精讲1.算法的含义算法可以理解为由基本运算及规定的运算顺序所构成的完整的解题步骤,或看成按要求设计好的有限的确切的计算序列,并且这样的步骤或序列能够解决一类问题。说明:(1)算法一般是机械的,有时要进行大量的重复计算,只要按部就班地去做,总能算出结果。通常把算法过程称为“数学机械化”,数学机械化的最大优点,是它可以让计算机来完成。(2)实际上,处理任何问题都需要算法,中国象棋有中国象棋的棋谱,国际象棋有国际象棋的棋谱。再比如,邮寄物品有其相应的手续,购买飞机票也有一系列的手续等等。(3)求解某个问题的算法不唯
2、一。2.算法的特征(1)确定性:算法的每一步必须是确切定义的,且无二意性,算法只有唯一的一条执行路径,对于相同的输入只能得出相同的输出。(2)有容性:一个算法必须在执行有穷次运算后结束,在所规定的时间和空间内,若不能获得正确结果,其算法也是不能被采用的。(3)可行性:算法中的每一个步骤都必须能用实现算法的工具——可执行指令精确表达,并在有限步骤内完成,否则这种算法也是不会被采纳的。(4)算法一定要根据输入的初始数据或给定的初值才能正确执行它的每一步骤。(5)有输出,算法一定能得到问题的解,有一个或多个结果输出,达到求解问题的目的,没有输出
3、结果的算法是没有意义的。3.算法的描述(1)自然语言:自然语言就是人们日常使用的语言,可以是汉语、英语或数学语言等。用自然语言描述算法的优点是通俗易懂,当算法中的操作步骤都是顺序执行时比较容易理解。缺点是如果算法中包含判断或转向,并且操作步骤较多时,就不那么直观清晰了。(2)框图(流程图):所谓框图,就是指用规定的图形符号来描述算法,用框图描述算法,具有直观、结构清晰、条理分明、通俗易懂、便于检查修改及交流等优点。(3)程序设计语言:算法最终可通过程序的形式编写出来,并在计算机上执行。程序设计语言可分为低级语言和高级语言,低级语言包括机器
4、语言和汇编语言。3.设计算法的要求(1)写出的算法,必须解决一类问题,并且能够重复使用。(2)要使算法尽量简单、步骤尽量少。(3)要保证算法正确,且计算机能够执行,如:让计算机计算是可以做到的,但让计算机去执行“倒一杯水”则是做不到的。二、范例剖析例1写出作的外接圆的一个算法。分析:解决这个问题可按下面的算法进行。解析:第一步:作的垂直平分线;第二步:作的垂直平分线;第三步:以与的交点为圆心,为半径作圆,圆即为的外接圆。评注:本题实质就是将的外接圆的一个作法分步写出。例2写出求经过点、的直线与两坐标轴围成的三角形面积的一个算法。分析:已知
5、直线上的两点、,由两点式可写出直线的方程,令,得与轴交点;令,得与轴交点。求出三角形两直角边的长,根据三角形的面积公式求出三角形的面积。解析:算法如下:第一步:取,,,;第二步:得直线方程;第三步:在第二步的方程中,令,得的值,从而得直线与轴的交点;第四步:在第二步的方程中,令,得的值,从而得直线与轴的交点;第五步:根据三角形的面积公式求;第六步:输出运算结果。评注:由于两点式直线方程可以有公式套用,所以这一步骤选择了套用公式的算法;三角形的面积需要求两直角边的长度,而本题中正是先求出三角形的两直角边的长度,再代入面积公式求出了三角形的面
6、积。例3一位商人有9枚银元,其中有一枚略轻的是假银元,你能用天平(不用砝码)将假银元找出来吗?分析1:最容易想到的解决这个问题的一种方法是:把9枚银元按顺序排成一列,先称前2枚,若不平衡,则可找出假银元;若平衡,则2枚银元都是真的,再依次与剩下的银元比较,就能找出假银元。解析:算法步骤如下:第一步:任取2枚银元分别放在天平的两边,如果天平左右不平衡,则轻的一边就是假银元;如果天平平衡,则进行第二步;第二步:取下右边的银元放在一边,然后把剩余的7枚银元依次放在右边进行称量,直到天平不平衡,偏轻的那一枚就是假银元。分析2:上述算法至少要称1次
7、,最多称7次,我们可以采用下面的办法,使称量次数少一些。第一步:把银元分成3组,每组3枚;第二步:先将两组分别放在天平的两边,如果天平不平衡,那么假银元就在轻的一组;如果天平左右平衡,则假银元就在未称的第3组里;第三步:取出含假银元的那一组,从中任取两枚银元放在天平的两边,如果左右不平衡,则轻的那一边就是假银元;如果天平两边平衡,则未称的那一枚就是假银元。评注:从第二种方法中,我们发现一共只需要称两次就可以了,比第一种方法要优越。《算法初步》中的一、二、三、四、五一个概念算法概念是本章的一个基本概念,算法作为新名词,在以前的数学教科书中没
8、有出现过.但是算法本身,同学们并不陌生,解方程的算法、解不等式的算法、因式分解的算法,都是同学们熟知的内容.而现代意义上的算法通常是指可以用计算机来解决的某一类问题的程序或步骤.它具有有穷性(
此文档下载收益归作者所有