《算法初步》专题讲座
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《算法初步》专题讲座
算法作为一个全新的课题,已经成为计算科学的重要基础,它在科学技术和 社会发展中起着越来越重要的作用,算法的思想已经成为现代人所具备的一种 数学素养,每一个高中学生,都应该在九年义务教育的基础上,为适应时代发 展的需要,进一步提高自身的数学素养.高中数学课程改革将算法初步列为高 中必修课程内容的一部分,既体现了现代社会使公民具有较高数学素养的要求, 也是基础数学教育改革面向世界、面向未来、面向现代化的体现,是历史的必 然.
1.算法的背景及含义
广义的讲,
算法就是做某一
件事的步骤和程序。如:菜谱是做菜肴的算法, 洗衣机的使用说
明书是操作洗衣机的算法, 个全新的概念, 把复杂的计算 诀就是算法.
文化背景。
♦中国古代的数学叫做算术。术,即方法,因此算术也就可认为是算法的别称了。 在上个世纪,小学的数学仍然叫算术,初中以后才叫数学。算术的叫法,一直沿 用到上个世纪末。我国从11世纪到14世纪,出现了一批著名的数学家和许多经 典数学著作,如贾宪的《黄帝九章算法细草》,杨辉的《详解九章算法》,《杨 辉算法》等。其中一些方法在现代仍然是极为优秀的算法。如:割圆术则是求n 值的优秀算法,我国传统的开方术求高次方程的近似根是算法上的一大成就.
♦在国外,公元前2100年左右,美索不达米亚人已有了乘法表,其中有六十进 制的算法。公兀前2000年左右,古埃及已有将乘法简化为加法的算法。人类最 早关于算法的记录是在两河流域发现的公元前两三千年的黏土板, 其中的一个典 型例子就是计算利息何时能够等于本金.算法早期发展中的一个成果应归功于古 希腊的欧几里德,他提出的计算最大公约数的辗转相除法(又称欧几里德算法) 是算法上的一大成就.最近几个世纪,求定积分近似值的梯形法、求方程近似解 的牛顿切线法等,都是非常典型的优秀算法。
我们今天探讨数学中现代意义上的算法可以理解为: 由基本运算及规定的运 算顺序构成的完整的解题步骤,或看成按要求设计好的、有限的、确切的计算序 列,并且这样的步骤或序列能解决一类问题。更具体的通常是指:可以用计算机 来解决的某一类问题的程序或步骤, 这些程序或步骤必须是明确和有效的, 而且 能够在有限步之内完成.比如,我们非常熟悉的带余除法、解线性方程组的消元 法等,都是算法.
2.算法思想方法 算法思想就是指:按照一定的步骤,一步一步去解决某个问题的程序化思想。 算 法一方面具有通用化、程序化、机械化的特点,同时又有高度抽象性、概括性和 精确性。对于一个具体算法而言,从算法分析到算法语言的实现,任何一个疏漏 或错误都将导致算法的失败。算法思想是思维的条理化、逻辑化。算法步骤具有 明确有效有限的要求。 在中学学习算法的主要目的, 在于让学生了解算法所具有 的一些特殊的思想方法和技巧。这些思想方法和技巧主要体现在以下几个方面。
歌谱是一首歌的算法。算法并不是一 在社会上得到广泛使用的珠算口诀就可以看作是典型的算法, 它 (例如除法)描述为一系列按口诀执行的简单的算珠拨动操作, 口 从古到今,算法都在扮演着重要的作用。算法有着悠久的历史和
♦step by Ste p 的思想方法
算法的实质是将人的思维过程处理成计算机能够一步一步执行的步骤, 进而转化为一步一步执行的程序。这种处理问题的方式, 学生以往有一些经验, 如教师对某些题型总结的较为固定的解题步骤。不过这种经验并没有得到应有的升华。学习了算法后,学生才能把这些知识提升到新的高度来认识。顺序结构反映的是step by step 的思想,即把解决问题的方法步骤化,一步一步地执行. 顺序结构是任何一个算法都离不开的最简单、最基本的结构。
♦逻辑选择的思想方法教材中介绍了条件结构和IF…ELSE…THEN§句,这对学生来说是较新的思想。这之前学过的分段函数与这种思想较为接近, 但这种思想并不是只能用来处理分段函数。正是有了这种方法, 才使得计算机有了思维能力, 或称之为逻辑判断能力。学习这种思想对于学生了解计算机人工智能有很好的作用。条件结构反映的是先判断、后执行的思想, 计算机区别于其他机械的能力就来自于算法做判断和按判断的结果行动的能力。条件结构是指在算法中通过对条件的判断, 根据条件是否成立而选择不同流向的算法结构。
♦循环的思想方法人们最怕机械重复,因为重复枯燥乏味。而计算机则擅长重复。这种重复体现到程序中就是循环。不难想象,如果没有循环,计算机还能干什么!在教材中出现了几个典型的循环问题,如二分法、数列求和、判定质数、辗转相除法、秦九韶算法等。这种思想方法在其他内容中很少使用,即使用到也因为手工计算过于繁琐而不愿用或不能用。循环结构蕴涵的是递推迭代的思想。
♦递推的思想方法所谓递推,就是已知第一个数,其后的每一个数都可利用递推公式由前数推出,并且能够重复进行,因此这种算法可用循环结构来处理解决。例如:裴波那契数列表示这样一系列数:0, 1, 1, 2, 3, 5, 13, 21,…,后一项等于前两项的和,请设计一个算法框图,输出这个数列的前100项。
♦累加、累乘的思想方法累加、累乘算法的思想在我们生活中无处不在, 比如我们小时候所用的存钱罐的例子,当我们每次把剩余的零钱存到存钱罐中,最后把存钱罐打开作一个统计。这就是一个累加的过程。
♦迭代的思想方法所谓迭代就是一个不断用新值取代变量的旧值或由旧值递推出变量的新值的过程。而在算法循环结构的教学中,应用循环结构和迭代思想,就可以解决数例求和、数列求积等问题。
另外,在教学中,同一算法稍加改造可以用来解决不同的问题,对算法的优化或改造,是帮助学生理解算法的通用性、有效性的良好素材。对算法的优化或改造在算法的程序框图中进行,也有利于学生看清算法的结构和更好地把握算理。例如让学生改造求
S=1+2+3+••…+100的值①若推广为求S=1+2+••…+m则只需在循环结构前给定变量m赋初始值,并将循环的终止条件改为n>m即可;②若求S=3+5+••…+ (2m+1,则起始值变成了3,终端数字变成了2m+1循环体也变为S=S+ (2i+1 );③若求2+2+2+ +2”°,贝U只需将循环体变为S=S+2,这样的训练,容易触类旁通,大大激发学生学习的积极性,对学生创新意识的培养和创新能力的提高也具有很强的现实意义。
教材中还涉及了一些其他的思想方法及技巧,这里就不一一列举了。