【新教材2024版】 教学资料范本 2024高中数学第1章算法初步1-1算法的含义名师导航学案 编 辑:__________________ 时 间:__________________ 本资料系本人收集整编,以VIP专享文档的呈现方式与各位同仁分享,欢迎下载收藏,如有侵权,望告知删除!1 / 8 【新教材2024版】 【最新】20xx年高中数学第1章算法初步1-1算法的含义名师导航学案 名师导航 三点剖析 一、算法的含义 在日常生活中做任何一件事情,都是按照一定规则,一步一步进行,比如在工厂中生产一部机器,先把零件按一道道工序进行加工,然后,再把各种零件按一定法则组装成一部完整的机器,它们的工艺流程就是算法;在农村中种庄稼有耕地、播种、育苗、施肥、中耕、收割等各个环节,这些栽培技术也是算法.总之,在任何这些数值计算或非数值计算的过程中所采取的方法和步骤,都称之为算法.一般而言,对一类问题的机械的、统一的求解方法称为算法. 注意: 1.这种描述不是算法的严格定义,但是反映了算法的基本思想.算法的基本思想就是程序化思想. 2.简单地说,算法是完成某项工作的一系列步骤.现代意义上的“算法”通常是指可以用计算机来解决的某一类问题的程序或步骤,这些程序或步骤必须是明确和有效的,而且能够在有限步之内完成. 3.算法的概念源于数学.比如数学中常用的配方法、换元法、待定系数法等都是解决某一类特定问题的方法,它们的特点是对于某一类特定的问题都有效,都有固定的、机械的步骤,每一步都能得到惟一的结果,只要严格按照步骤进行,就一定可以解决问题.但不要认为只有“计算”的问题才有算法.广义地说,为解决一个问题而采取的方法,就称为算法.例如,我们要发一封电子邮件,一般需要经历以下几个步骤:第一步,打开电子邮箱;第二步,点击“写邮件”;第三步,输入发送地址;第四步,输入主题;第五步,输入信件内容;第六步,点击“发送邮件”.这些步骤从广义上来讲也可以称作是发一封电子邮件的算法. 4.计算机解决任何问题都要依赖于算法.只有将解决问题的过程分解为若干个明确的步骤,即算法,并用计算机能够接受的“语言”准确地描述出来,计算机才能够解决问题. 本资料系本人收集整编,以VIP专享文档的呈现方式与各位同仁分享,欢迎下载收藏,如有侵权,望告知删除!2 / 8 【新教材2024版】 我们知道,计算机本质上就是一个机械,只不过是一个非常复杂的机械罢了.和所有的机械一样,它能根据特定的指令执行特定的任务.我们不妨拿我们所熟悉的一种机械——钢琴来说明这个道理.钢琴对于人的特定的命令(按键或按键组合)会发出特定的、固定的声音,并且这种基本的对应关系是有限的.正是由于掌握了这种固定的对应关系,钢琴家才能够以此为基础进行创作,如果没有这种固定的对应关系,钢琴家也就无法驾驭钢琴,更谈不上弹奏出优美的旋律了.计算机也是一样,它对于特定的命令(基本命令或由基本命令组合而成的复杂命令),能作出固定的反应(例如对于命令2+3,计算机的反应就是计算出这个算式的值为5),像这种计算机能接受并执行的基本命令或由基本命令所组合而成的复杂命令就是计算机能够接受的“语言”,也正是依靠这种“语言”,我们才能与计算机进行“交流”并且让计算机为我们所用,按照我们的意图去解决问题. 二、算法的特性 一般来讲,一个算法应具有以下五个重要特性: 1.有穷性:一个算法必须总是(对任何合法的输入值)在执行有穷步之后结束,且每一步都可在有穷时间内完成. 算法具有有穷性是为了让算法不能无休止地执行下去,以致达不到解决问题的目的. 数学中的无穷级数,在实际计算时只能取有限项,即计算无穷级数的过程只能是有穷的.因此,一个无穷级数的表示只能是一个计算公式,而根据精度要求确定的计算过程才是有穷的算法. 2.确定性:算法中每一条指令必须有确切的含义,读者理解时不会产生歧义.也就是说,算法的步骤中不能含有模糊不清、容易让人误解的叙述. 确定性是要保证算法在执行过程中,不能因不同的人的喜好、理解不同及其他人为因素而“走样”.事实上,在程序设计中,一个算法必须确定到这样一个程度,即使一台计算机也能遵循这个指示正确执行.从这个角度我们可以看到算法的步骤的一个特点就是:清晰、准确而又机械、刻板、缺乏创造性(但从算法步骤的执行上讲也不需要有创造性,能严格执行就可以了). 3.可行性:算法的可行性包括两个方面:一是算法中的每一个步骤必须是能实现的.例如,在算法中,不允许出现分母为零的情况;在实数范围内不能求一个负数的平方根等.二是算法执行的结果能达到预本资料系本人收集整编,以VIP专享文档的呈现方式与各位同仁分享,欢迎下载收藏,如有侵权,望告知删除!3 / 8 【新教材2024版】 期的目的.通常,针对实际问题设计的算法,人们总是希望能得到满意的结果. 当然可行性对于不同的人及不同的时代具有不同的含义.仅就计算工具上来讲,古代最好的计算工具大概就是算盘了,而现代的超级计算机无论是在计算的速度还是在可计算问题的范围上都远在其上.古代很多不能完成的计算在现代都变成了可能. 4.输入:算法一定要根据输入的初始数据或给定的初值才能正确执行它的每一步骤.需要注意的是,算法的输入数据和输出数据都应该是离散(分散的、不连续的、可逐个计算的数据)的符号(或称字母,其中也包括数字),例如不能输入一条连续的曲线.(连续曲线上的点是连续的,无法对所有点所对应数据逐个进行计算)这是因为算法一般都是靠计算机来执行的,而数字电子计算机是一个离散结构,它只能处理离散的或离散化了的数量关系.因此,无论计算机科学本身,还是与计算机科学及其应用密切相关的现代科学研究领域,都面临着如何对离散结构建立相应的数学模型,又如何将已用连续数量关系建立起来的数学模型离散化,从而可由计算机加以处理. 5.输出:算法一定能得到问题的解,有一个或多个的输出,达到求解问题的目的.这些输出是同输入有着某些特定关系的量.没有输出结果的算法是没有意义的. 此外,还要求算法应具有通用性:即算法应适用于某一类问题中的所有个体,而不是只能用来解决一个具体问题.例如一个能解所有二元一次方程组的算法就比一个只能解某一个特定的二元一次方程组的算法更具有通用性. 三、算法的描述 描述算法可以有不同的方式,常用的有自然语言、框图(流程图)、程序设计语言、伪代码等. 1.自然语言:就是人们日常使用的语言.用自然语言描述算法的优点是通俗易懂,当算法中的操作步骤都是顺序执行时比较容易理解.缺点是如果算法中包含判断和转向等较复杂的过程时,就会显得不够清晰、直观了,并且叙述会较烦琐和冗长,并且容易出现歧义. 2.流程图:是用一组几何图形表示各种类型的操作,在图形上用简明扼要的文字和符号表示具体的操作,并用带有箭头的流线表示操作的先后次序.用框图描述算法,具有直观、结构清晰、条理分明、通俗易懂、便于检查修改及交流等优点. 本资料系本人收集整编,以VIP专享文档的呈现方式与各位同仁分享,欢迎下载收藏,如有侵权,望告知删除!4 / 8 【新教材2024版】 3.程序设计语言:“算法是计算机科学的基础”,计算机完成任何一项任务都需要算法.但是,用自然语言或程序框图描述的算法计算机是无法“理解”的,我们还需要将算法用计算机能够理解的语言表达出来,通常这称为程序设计,所用的语言称为程序设计语言(programming language).程序设计语言由一些有特定含义的程序语句构成,与算法程序框图的三种基本结构相对应,任何程序设计语言都包含输入输出语句、赋值语句、条件语句和循环语句.不同的程序设计语言有不同的语句形式和语法规则,但基本结构是相同的.正是由于这样的原因,在研究算法的时候,有时并不很关心算法语句是否用的是某种精确的程序语言,而采用基本结构相同的更为简便易懂的语言形式,有人称之为伪代码. 问题探究 问题1:算法的概念和我们生活中所遇到的许多概念有类似的地方.如菜谱,就是指导人们如何做菜的.那么,菜谱的概念和算法的概念究竟有哪些相同点和不同点呢? 探究:我们知道,算法有五个重要的特征,即有穷性、确定性、可行性、有输入、有输出.于是我们想到可以根据算法的特性对菜谱逐一进行对比来探究这个问题. 首先,容易想到,菜谱总是符合有穷性的要求的(厨师肯定不会花无限多的时间来做一盘菜吧?).其次,可行性也是菜谱所具有的(做菜的步骤必须是厨师力所能及的).输入就是作菜的原料(如鸡蛋、西红柿、糖、盐等),输出就是做好的菜了(如鸡蛋炒西红柿等).但是对于确定性,菜谱就不是那么令人满意了.例如,步骤“加少许盐”,“盐”也许已经是明确的定义了;那么“少许”该是多少呢,算法要求每一步都是精确的,按照这个标准,“少许”这样模糊的词句是不被允许的,当然我们可以将这个步骤改为如“加2.2 g盐”这样的叙述,但盐应该加到哪(顶上、边上等等)也不是很明确的.也许像“轻轻地颠簸直到混合物发脆为止”、“在小长柄锅里加热的料酒”等等指示,对于训练有素的厨师来说,说明已经是足够了,但是一个算法必须确定到这样一个程度:即使一台计算机也能遵循这个指示.因此从严格的意义上来讲,菜谱并不能称为算法. 问题2:在实际问题和算法理论中,找出好的算法是一项重要的工作.但是对于“好”没有严格的定义.一个好的算法都应该满足哪些标准? 本资料系本人收集整编,以VIP专享文档的呈现方式与各位同仁分享,欢迎下载收藏,如有侵权,望告知删除!5 / 8
好文档 - 专业文书写作范文服务资料分享网站