算法的含义
教学目标:
使算法思想成为学生的一种数学素养. 教学重点:
掌握算法的五个特性. 教学难点:
掌握算法的五个特性. 教学过程: Ⅰ.课题导入
算法是数学及其应用的重要组成部分,是计算科学的重要基础.随着现代信息技术的飞速发展,算法在科学技术、社会发展中发挥着越来越大的作用,并日益融入社会生活的许多方面,算法思想已经成为现代人应具备的一种数学素养.
算法是高中数学课程中的新增内容,其思想是非常重要的,但并不神秘.例如,运用消元法解二元一次方程组、求最大公因数等的过程就是算法.一般地,机械式地按照某种确定的步骤行事,通过一系列小的简单计算操作完成复杂计算的过程,被人们称为“算法”过程.例如,人们很容易完成的基本计算是一位数的加、减、乘和进位借位等,复杂计算过程实际上都是通过这些操作,按照一定的工作次序与步骤组合完成的.
为解决某一个问题而采取的方法和步骤,称为算法.或者说算法是解决一个问题的方法的精确描述. Ⅱ.讲授新课
例1:给出求1+2+3+4+5+6+7的一个算法.
解析:本例主要是培养学生理解概念的程度,了解解决数学问题都需要算法. 算法一:按照逐一相加的程序进行. 第一步 计算1+2,得到3;
第二步 将第一步中的运算结果3与3相加,得到6; 第三步 将第二步中的运算结果6与4相加,得到10; 第四步 将第三步中的运算结果10与5相加,得到15; 第五步 将第四步中的运算结果15与6相加,得到21; 第六步 将第五步中的运算结果21与7相加,得到28. 算法二:可以运用公式1+2+3+?+n=第一步 取n=7; 第二步 计算n(n+1)
2
直接计算.
n(n+1)
2
;
第三步 输出运算结果.
点评:本题主要考查学生对算法的灵活准确应用和自然语言表达一个问题的算法的方法.
用心 爱心 专心
算法不同,解决问题的繁简程度也不同,我们研究算法,就是要找出解决问题的最好的算法.
?2x+y=5 ①
例2:给出求解方程组? 的一个算法.
?4x+5y=13 ②
解析:消元法,步骤:
4
第一步 方程①不动,将方程②中的x的系数除以方程①中x的系数,得到乘数m= =
22;
?2x+y=5
第二步 方程②减去m乘以方程①,消去方程②中的x项,得到?
?3y=3
第三步 将上面的方程组自下而上回代求解,得到y=1,x=2,所以原方程组的解为
?x=2? ,这种消元回代的算法适用于一般线性方程组的求解. ?y=1
点评:一个算法,就是一个有穷规则的集合,它为某个特定类型问题提供了解决问题的运算序列.其中的每条规则必须是明确定义的、可行的.序列的终止表示问题得到解答或指出问题没有解答.
例3:一个人带三只狼和三只羚羊过河.只有一条船,同船可以容一个人和两只动物.没有人在的时候,如果狼的数量不少于羚羊的数量,狼就会吃掉羚羊.
(1)设计安全渡河的算法;
(2)思考每一步算法所遵循的相同原则是什么. 解析:(1)S1 人带两只狼过河. S2 人自己返回. S3 人带两只羚羊过河. S4 人带一只狼返回. S5 人带一只羚羊过河. S6 人自己返回. S7 人带两只狼过河.
(2)在人运送动物过河的过程中,人离开岸边时必须保证每个岸边的羚羊数目要大于狼的数目.
点评:这是一个实际问题,生活中解决任何问题都需要算法,我们要在处理实际问题的过程中理解算法的含义,体会算法设计的思想方法. Ⅲ.课堂练习
课本P6 1,2,3,4.
问题1:两个大人和两个小孩一起渡河,渡口只有一条小船,每次只能渡1个大人或两个小孩,他们四人都会划船,但都不会游泳.同学们现在想一想,他们怎样渡过河去?请写一写你的渡河方案.
我的思路:因为一次只能渡过一个大人,而船还要回来渡其他人,所以只能让两个小孩先过河,渡河的方法与步骤为
用心 爱心 专心
第一步 两个小孩同船渡过河去; 第二步 一个小孩划船回来; 第三步 一个大人独自划船渡过河去; 第四步 对岸的小孩划船回来; 第五步 两个小孩再同船渡过河去; 第六步 一个小孩划船回来;
第七步 余下的一个大人独自划船渡过河去; 第八步 对岸的小孩划船回来; 第九步 两个小孩再同船渡过河去.
问题2:电脑与人脑的思维方式有什么不同?为什么要学习算法?
我的思路:电脑运算的高速度和超强的记忆能力是人脑无法比拟的,但人脑能够推理、归纳、判断、分析、计算??这些电脑都不会,电脑只会算术运算与逻辑运算.要让电脑为我们做事,就要把我们的意图转成电脑能懂的语法,这就需要算法设计.计算机解题的核心是算法设计,一个算法应具有以下五个重要特征:
(1)有穷性:一个算法必须保证执行有限步之后结束; (2)确切性:算法的每一步骤必须有确切定义;
(3)可行性:算法原则上能够精确地运行,而且人们用笔和纸做有限次即可完成; (4)输入:一个算法有0个或多个输入,以刻划运算对象的初始条件.所谓0个输入是指算法本身定出了初始条件;
(5)输出:一个算法有1个或多个输出,以反映对输入数据加工后的结果.没有输出的算法是毫无意义的. Ⅳ.课时小结
要正确地设计一个算法就需要掌握算法的五个特性:①有穷性,算法中执行的步骤总是有限次数的,不能无休止地执行下去.②确切性,算法中的每一步操作的内容和顺序必须含义确切,不能有二义性.③可行性,算法中的每一步操作都必须是可执行的,也就是说算法中的每一步都能通过手工和机器在有限时间内完成,这称之为有效性.④输入,一个算法中有零个或多个输入.这些输入数据应在算法操作前提供.⑤输出,一个算法中有一个或多个输出.算法的目的是用来解决一个给定的问题,因此,它应向人们提供产生的结果,否则,就没有意义了. Ⅴ.课后作业
补充.
1.下面的结论正确的是 ( )
A.一个程序的算法步骤是可逆的 B.一个算法可以无止境地运算下去 C.完成一件事情的算法有且只有一种 D.设计算法要本着简单方便的原则
答案:D
2.早上从起床到出门需要洗脸刷牙(5 min)、刷水壶(2 min)、烧水(8 min)、泡面(3 min)、吃饭(10 min)、听广播(8 min)几个步骤.从下列选项中选最好的一种算法 ( ) A.S1洗脸刷牙、S2刷水壶、S3烧水、S4泡面、S5吃饭、S6听广播
用心 爱心 专心
B.S1刷水壶、S2烧水同时洗脸刷牙、S3泡面、S4吃饭、S5听广播 C. S1刷水壶、S2烧水同时洗脸刷牙、S3泡面、S4吃饭同时听广播 D.S1吃饭同时听广播、S2泡面、S3烧水同时洗脸刷牙、S4刷水壶 答案:C
3.著名数学家华罗庚“烧水泡茶”的两个算法.
算法一: 第一步 烧水;
第二步 水烧开后,洗刷茶具; 第三步 沏茶. 算法二: 第一步 烧水;
第二步 烧水过程中,洗刷茶具; 第三步 水烧开后沏茶.
这两个算法的区别在哪里?哪个算法更高效?为什么? 答案:第二个算法更高效.因为节约时间.
4.写出求1+2+3+?+100的一个算法.可以运用公式1+2+3+?+n=算.
第一步 ① ; 第二步 ② ;
第三步 输出运算结果. 答案:①取n=100 ②计算n(n+1)
2
直接计
n(n+1)
2
5.已知一个学生的语文成绩为89,数学成绩为96,外语成绩为99,求他的总分和平均成绩的一个算法为:
第一步 取A=89,B=96,C=99; 第二步 ① ; 第三步 ② ; 第四步 输出D,E.
答案:①计算总分D=A+B+C ②计算平均成绩E=
D 36.“鸡兔同笼”是我国隋朝时期的数学著作《孙子算经》中的一个有趣而具有深远影响的题目:“今有雉兔同笼,上有三十五头,下有九十四足.问雉兔各几何.” 用方程组的思想不难解决这一问题,请你设计一个这类问题的通用算法.
答案:解析:鸡兔同笼,设鸡兔总头数为H,总脚数为F,求鸡兔各有多少只.算法如下: 第一步 输入总头数H,总脚数F; 第二步 计算鸡的个数x=(4?H-F)/2; 第三步 计算兔的个数y=(F-2?H)/2;
用心 爱心 专心
第四步 输出x,y.
7.已知直角坐标系中的两点A(-1,0),B(3,2),写出求直线AB的方程的一个算法.
y?y1x?x1答案:解析:可以运用公式=直接求解.
y2?y1x2?x1第一步 取x1=-1,y1=0,x2=3,y2=2;
y?y1x?x1第二步 代入公式=,得直线AB的方程;
y2?y1x2?x1第三步 输出直线AB的方程.
8.写出交换两个大小相同的杯子中的液体(A水、B酒)的两个算法.
答案:解析:算法1:
1.再找一个大小与A相同的空杯子C; 2.将A中的水倒入C中; 3.将B中的酒倒入A中; 4.将C中的水倒入B中,结束. 算法2:
1.再找两个空杯子C和D;
2.将A中的水倒入C中,将B中的酒倒入D中; 3.将C中的水倒入B中,将D中的酒倒入A中,结束.
注意:一个算法往往具有代表性,能解决一类问题,如,例一可以引申为:交换两个变量的值.
9.写出1×2×3×4×5×6的一个算法.
答案:解析:按照逐一相乘的程序进行. 第一步 计算1×2,得到2;
第二步 将第一步中的运算结果2与3相乘,得到6; 第三步 将第二步中的运算结果6与4相乘,得到24; 第四步 将第三步中的运算结果24与5相乘,得到120; 第五步 将第四步中的运算结果120与6相乘,得到720; 第六步 输出结果.
10.已知一个三角形的三边边长分别为2、3、4,设计一个算法,求出它的面积.
答案:解析:可利用公式
S=p(p?a)(p?b)(p?c)求解.
第一步 取a=2,b=3,c=4; 第二步 计算p=
a?b?c; 2第三步 计算三角形的面积S=p(p?a)(p?b)(p?c);
用心 爱心 专心
用心 爱心专心第四步 输出S的值.