《算法的概念》教案
教学目标
初步了解算法的含义和概念,了解算法的概括性、逻辑性、有穷性、不惟一性和普遍性等特征。
初步了解消去法的思想。
体会算法的思想,能说明解决简单问题的算法步骤。
重点与难点
教学重点:算法的含义、概念及特征。
教学难点:把自然语言转化为算法语言。
教学过程
概念引入
一个人带三只狼和三只羚羊过河,只有一条船,同船可以容纳一个人和两只动物.没有人在的时候,如果狼的数量不少于羚羊的数量,狼就会吃掉羚羊.请设计过河的算法。
解:算法或步骤如下:
S1 人带两只狼过河;
S2 人自己返回;
S3 人带一只羚羊过河;
S4 人带两只狼返回;
S5 人带两只羚羊过河;
S6 人自己返回;
S7 人带两只狼过河;
S8 人自己返回;
S9 人带一只狼过河.
算法(algorithm)一词源于算术(arithmetic),即算术方法,是指一个由已知推求未知的运算过程。后来,人们把它推广到一般,把进行某一工作的方法和步骤称为算法。
广义地说,算法就是做某一件事的步骤或程序。菜谱是做菜肴的算法,洗衣机的使用说明书是操作洗衣机的算法,歌谱是一首歌曲的算法。在数学中,主要研究计算机能实现的算法,即按照某种机械程序步骤一定可以得到结果的解决问题的程序。比如解方程的算法、函数求值的算法、作图的算法,等等。
新知探究
处理方式
【问题1】
请同学们解二元一次方程组
x-2y=-1, ①
2x+y=1, ②
求解过程,我们可以归纳出以下步骤:
第一步:②-①×2,得
5y=3;
第二步:解③得y=3/5;
第三步:将y=3/5代入①,得x=1/5;
第四步:得到方程组的解为
从特殊到一半,若上式的数字用字母代替会如何?
【问题2】
对于一般的二元一次方程组
其中a1b2-a2b1≠0,设计一个算法。
第一步:④×b2-⑤×b1,得(a1b2-a2b1)x=b2c1- b1c2, ⑥
第二步:解⑥,得
第三步:,⑤×a1-④×a2,得(a1b2-a2b1)y=a1c2- a2c1. ⑦
第四步:解⑦,得.
第五步:得到方程组的解为
通过上面的例子我们可以总结出算法的概念:
总结:这一例子体现算法具有通用性。在数学中,算法通常是指按照一定规则解决某一类问题的明确和有限的步骤。
在数学中,现代意义的“算法”是指可以用计算机来解决的某一类问题的程序或步骤,这些程序或步骤必须是明确和有效的,而且能够在有限步之内完成。
即时巩固
处理方式
四人小组合作完成,代表回答!
【问题3】
设计一个算法,判断7是否为质数;
设计一个算法,判断35是否为质数。
【算法分析】
根据质数的定义,可以这样判断:依次用2~6除7,如果它们中 有一个能整除7,则7不是质数,否则7是质数。
根据以上分析,可定出如下算法:
第一步,用2除7,得到余数1。因为余数不为0,所以2不能整除7。
第二步,用3除7,得到余数1。因为余数不为0,所以3不能整除7。
第三步,用4除7,得到余数3。因为余数不为0,所以4不能整除7。
第四步,用5除7,得到余数2。因为余数不为0,所以5不能整除7。
第五步,用6除7,得到余数1。因为余数不为0,所以6不能整除7。
类似地,可写出“判断35是否为质数”的算法。
第一步,用2除35,得到余数1。因为余数不为0,所以2不能整除35。
第二步,用3除35,得到余数2。因为余数不为0,所以3不能整除35。
第三步,用4除35,得到余数3。因为余数不为0,所以4不能整除35。
第四步,用5除35,得到余数0。因为余数为0,所以5能整除35。
因此35不是质数。
【问题4】
用二分法设计一个求方程x2-2=0的近似根的算法。
【算法分析】
令,则方程的解就是函数的零点。
“二分法”的基本思想是:把函数的零点所在的区间[a,b]﹝满足﹞“一分为二”,得到[a,m]和[m,b].根据“”是否成立,取出零点所在的区间[a,m]或[m,b],仍记为[a,b]。对所得的区间[a,b]重复上述步骤,直到包含零点的区间[a,b]“足够小”,则[a,b]内的数可以作为方程的近似解。
根据以上分析可以写出如下算法:
第一步,令,给定精确度d.
第二步,确定区间[a,b],满足。
第三步,取区间中点.
第四步,若,则含零点的区间为[a,m];否则,含零点的区间为[m,b]。将新得到的含零点的区间仍记为[a,b]。
第五步,判断[a,b]的长度是否小于d或是否等于0。若是,则m是方程的近似解;否则,返回第三步。
当d=0.005时,按照以上算法,可得到下图和下表。
a
b
︱a-b︱
1
2
1
1
1.5
0.5
1.25
1.5
0.25
1.375
1.5
0.125
1.375
1.437 5
0.062 5
1.406 25
1.437 5
0.031 25
1.406 25
1.421 875
0.015 625
1.414 062 5
1.421 875
0.007 812 5
1.414 062 5
1.417 968 75
0.003 906 25
于是,开区间(1.414 062 5,1.417 968 75)中的实数都是当精确度为0.005时的原方程的近似解。
实际上,上步骤也是求的近似值的一个算法。
计算机解决任何问题都要依赖于算法。只有将解决问题的过程分解为若干个明确的步骤,即算法,并用计算机能够接受的“语言”准确地描述出来,计算机才能够解决问题。
归纳提升
处理方式
引导学生归纳体课时的主要学习内容,交流成果,教师帮助完善。
算法的概念
对于一项任务,按照事先设计好的步骤,一理一步地执行,并在有限步内完成任务,则这些步骤称为完成该任务的一个算法。
算法的五个性质:
概括性:写出的算法必须能解决某一类问题,并且能够重复使用。
逻辑性:算法从初始步骤开始,分为若干个明确的步骤,前一步是后一步的前提,只有完成前一步,才能进行后一步,而且每一步都是正确无误的,从而组成具有很强逻辑性的步骤序列。
有穷性:一个算法必须保证在执行有限步之后结束。
不惟一性:求解某一个问题的算法不一定只有惟一的一个,也可以有不同的算法,这些算法有繁简、优劣之分。
普遍性:很多具体问题,都可以设计合理的算法去解决。
算法与一般意义上的数学问题的解法既有联系又有区别
联系:算法与解法是一般与特殊的关系,也是抽象与具体的关系。比如:教材先从分析一个具体的二元一次方程组的求解过程(算法)出发,归纳出了二元一次方程组的求解步骤;并且指出,这样的求解步骤也适合有限制条件的二元一次方程组,这些步骤就构成了解二元一次方程组的算法;
区别:算法是解决某一类问题所需要的程序和步骤的统称,也可理解为数学中的“通法通解”;而解法是解决某一个具体问题的过程和步骤,是具体的解题过程。
【课后作业】
回顾本课的学习过程,整理学习笔记。
完成书面作业:练习1、2