《学习算法应注意的几个问题》由会员分享,可在线阅读,更多相关《学习算法应注意的几个问题(6页珍藏版)》请在金锄头文库上搜索。
1、学习算法应注意的几个问题“算法是一个全新的课题,已经成为计算机科学的核心,它在科学技术和社会发展中起着越来越重要的作用.算法的思想和初步知识,也正在成为普通公民的常识学习算法的基本思想和初步知识,算法思想将贯穿高中数学课程的相关部分 ”学习算法应注意什么?本文将从以下四个方面加以阐述:一、明确算法的概念“算法”并不能简单的理解为“计算(或运算)方法”的简称,而是为了解决一类问题而设计的,进行某一工作的方法和步骤比如某道菜的菜谱,某个品牌空调的使用说明,某首歌的歌谱,我们熟悉的带余除法,解线性方程组的消元法,求两个数的最大公因数等都是算法。而现代意义上的“算法”通常是指可以用计算机来解决的某一类
2、问题的程序或步骤只要 正确的输入原始数据,按操作程序去做就能得出结果(输出相应的数据)可见算法的产生是与计算工具相联系的,不同的计算工具有不同的算法,如算盘有相应的珠算口诀,电子计算机有相应的电子计算机的算法,但由于机器不能直接与人对话,所以必须有相对应的算法语言来作为人机之间的交流使者人们曾设计出数十种算法语言,并不断改进,使其更接近数学语言,更方便使用,不论哪种算法语言都是由一系列符号和英文字母组成的,但不同的算法语言各有规则,不能混用一般用计算机解决问题的步骤是:将数学语言写成解题程序用选定的算法语言写成算法程序上计算机运算,得出结果得出问题答案二、明确算法的意义1算法学习有助于我们全面
3、的理解运算能力很多时候,人们对运算存在一些误解,认为运算就是按照各种运算法则进行加、减、乘、除,从而学习运算就是背诵书本中给出的计算法则,形成一些基本的计算技巧,也就是说,能够根据熟记的法则,迅速的计算给定式子子的正确答案实际上,按照算法规则进行逻辑推理而获得正确结果仅仅是计算的很小的一方面,更重要的是,在运算中中构造、设计、选择一个合理的算法,理解相应的算理在算法学习中,我们要让学生给出一个问题的不同算法,并比较这些算法的优劣,并作出选择,从而提高效率,而这个过程才是一个真正的运算过程,因此算法学习使得我们更加全面的理解运算能力2算法学习能够培养学生的逻辑思维能力我们常常说数学是思维的体操,
4、能够训练学生的思维能力。算法作为数学的一个基本内容,在培养学生的逻辑思维能力上能够发挥重要的作用算法是解题方法的精确描述,算法一方面具有具体化、程序化、机械化的特点,同时又有高度抽象性、概括性和精确性。因此,将解决具体问题的方法整理成算法的过程是一个条理化、精确化和逻辑化的过程,有助于培养学生的逻辑思维能力3明确算法的要素和结构算法含有两大要素:一是操作,计算机算法由计算机实现,组成它的操作主要包括:(1)算术运算,即+,等;(2)逻辑运算,即与() ,或() ,非( )等;(3)关系运算,如,等;(4)函数运算,如 ex,lnx,sinx等二是控制结构控制结构的作用是控制算法各操作的执行顺序
5、一个算法通常由三种基本结构组成,这三种基本结构是:.顺序结构顺序结构的算法是操作顺序是按照书写顺序执行如:“乘数是两位数的乘法”的一个算法S1:用乘数个位上的数去乘被乘数,得到的末位和乘数的个位对齐;S2:用乘数十位上的数去乘被乘数,得到的末位数和乘数的十位数对齐 5;S3:把两次乘得的数加起来我们只要“按部就班”地照着这三个步骤认真地算,像“12345” 、 “6789”这类的乘法运算都不在话下2.选择结构选择结构的算法是根据指定的条件进行判断,由判断的结果决定选择执行两条分支路径中的一条。对任意给定的三个整数 x,y,z,设计求出其最大值这个算法是简单的,只要先比较出 x 和 y ,得到一
6、个大的值,再用这个值与 z 比较,这两者中大的值即为所求的最大值可以将这个算法描述为:(1)输入变量:x,y,z;(2)b:=x;(3)比较 b 与 y:如果 by,则 b:=y.(4)比较 b 与 z:如果 bz,则 b:=z.(5)输出 b.在这个算法中,我们变量 b 比较的不同的结果决定后面的操作3.循环结构循环结构的算法要根据条件是否满足决定是否继续执行循环体中的操作我们知道求三个数中的最大数,我们要进行两次比较,假如我们要找出 100 个数中的最大数,按照这样的算法就需要比较 99 次,算法步骤就是 101 步。既不便于书写,也不便于阅读。解决这个问题,就需要利用循环结构了,对于求
7、100 个数中的最大数的问题,相应的算法控制结构可以用下列流程图来表示:象这样的算法控制结构我们称为循环结构四. 明确算法的要求我们在具体写出解决某一个问题的算法时,必须注意以下几个方面:1.有明确的规则用某种算法解决一个问题,是指使用一系列预先指定的运算规则求解这个问题。其中的规则必须是明确可行的,不能含糊不清或不可行如求 1+2+3+4+5+6 的一个算法:S1:计算 1+2;S2:计算 3+4;S3:计算 5+6;S4:输出运算结果由于在第四步输出运算结果之前,部位规定对第一步、第二步、第三步中的运算结果如何处理,因此这个规定不明确,也不可行,这个“算法”不能称为真正的算法2.只能有限次的运算对于一个算法来说,必须要求在有限的步骤内完成,否则,会因为步骤无限多,而使计算机陷入永无尽头的无穷多次运算,致使无法输出结果如求 1357 值的一个算法:S1:T=1;S2:I=3;S3:T=TI;求 TI,乘积结果存放在变量 T 中S4:I=I+2,转第三步S5:输出结果由于对 I 的大小没有限制,致使第三、四步无限地运行,进入“死循环” ,使结果无法输出,运行失效,算法失败3.流向必须唯一算法从初始步骤开始,每一步只能有一个确定的后继步骤,即流向唯一否则,将会因为流向多元化而使程序混乱,不能顺利运行