1.1.1 算法的概念
项目 内容 课题 1.1.1 算法的概念
(共 1 课时) 修改与创新 教学
目标 1.正确理解算法的概念,掌握算法的基本特点.
2.通过例题教学,使学生体会设计算法的基本思路.
3.通过有趣的实例使学生了解算法这一概念的同时,激发学生学习数学的兴趣. 教学重、
难点 教学重点:算法的含义及应用.
教学难点:写出解决一类问题的算法. 教学
准备 多媒体课件 教学过程
导入新课(情境导入)
一个人带着三只狼和三只羚羊过河,只有一条船,同船可容纳一个人和两只动物,没有人在的时候,如果狼的数量不少于羚羊的数量狼就会吃羚羊.该人如何将动物转移过河?请同学们写出解决问题的步骤,解决这一问题将要用到我们今天学习的内容--算法.
推进新课
新知探究
提出问题
(1)解二元一次方程组有几种方法?
(2)结合教材实例总结用加减消元法解二元一次方程组的步骤.
(3)结合教材实例总结用代入消元法解二元一次方程组的步骤.
(4)请写出解一般二元一次方程组的步骤.
(5)根据上述实例谈谈你对算法的理解.
(6)请同学们总结算法的特征.
(7)请思考我们学习算法的意义.
讨论结果:
(1)代入消元法和加减消元法.
(2)回顾二元一次方程组
的求解过程,我们可以归纳出以下步骤:
第一步,①+②×2,得5x=1.③
第二步,解③,得x=.
第三步,②-①×2,得5y=3.④
第四步,解④,得y=.
第五步,得到方程组的解为
(3)用代入消元法解二元一次方程组
我们可以归纳出以下步骤:
第一步,由①得x=2y-1.③
第二步,把③代入②,得2(2y-1)+y=1.④
第三步,解④得y=.⑤
第四步,把⑤代入③,得x=2×-1=.
第五步,得到方程组的解为
(4)对于一般的二元一次方程组
其中a1b2-a2b1≠0,可以写出类似的求解步骤:
第一步,①×b2-②×b1,得
(a1b2-a2b1)x=b2c1-b1c2.③
第二步,解③,得x=.
第三步,②×a1-①×a2,得(a1b2-a2b1)y=a1c2-a2c1.④
第四步,解④,得y=.
第五步,得到方程组的解为
(5)算法的定义:广义的算法是指完成某项工作的方法和步骤,那么我们可以说洗衣机的使用说明书是操作洗衣机的算法,菜谱是做菜的算法等等.
在数学中,算法通常是指按照一定规则解决某一类问题的明确有限的步骤.
现在,算法通常可以编成计算机程序,让计算机执行并解决问题.
(6)算法的特征:①确定性:算法的每一步都应当做到准确无误、不重不漏."不重"是指不是可有可无的,甚至无用的步骤,"不漏" 是指缺少哪一步都无法完成任务.②逻辑性:算法从开始的"第一步"直到"最后一步"之间做到环环相扣,分工明确,"前一步"是"后一步"的前提, "后一步"是"前一步"的继续.③有穷性:算法要有明确的开始和结束,当到达终止步骤时所要解决的问题必须有明确的结果,也就是说必须在有限步内完成任务,不能无限制地持续进行.
(7)在解决某些问题时,需要设计出一系列可操作或可计算的步骤来解决问题,这些步骤称为解决这些问题的算法.也就是说,算法实际上就是解决问题的一种程序性方法.算法一般是机械的,有时需进行大量重复的计算,它的优点是一种通法,只要按部就班地去做,总能得到结果.因此算法是计算科学的重要基础.
应用示例
例1 (1)设计一个算法,判断7是否为质数.
(2)设计一个算法,判断35是否为质数.
算法分析:(1)根据质数的定义,可以这样判断:依次用2-6除7,如果它们中有一个能整除7,则7不是质数,否则7是质数.
算法如下:(1)第一步,用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.因此,7是质数.
(2)类似地,可写出"判断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不是质数.
点评:上述算法有很大的局限性,用上述算法判断35是否为质数还可以,如果判断1997是否为质数就麻烦了,因此,我们需要寻找普适性的算法步骤.
变式训练
请写出判断n(n>2)是否为质数的算法.
分析:对于任意的整数n(n>2),若用i表示2-(n-1)中的任意整数,则"判断n是否为质数"的算法包含下面的重复操作:用i除n,得到余数r.判断余数r是否为0,若是,则不是质数;否则,将i的值增加1,再执行同样的操作.
这个操作一直要进行到i的值等于(n-1)为止.
算法如下:第一步,给定大于2的整数n.
第二步,令i=2.
第三步,用i除n,得到余数r.
第四步,判断"r=0"是否成立.若是,则n不是质数,结束算法;否则,将i的值增加1,仍用i表示.
第五步,判断"i>(n-1)"是否成立.若是,则n是质数,结束算法;否则,返回第三步.
例2 写出用"二分法"求方程x2-2=0 (x>0)的近似解的算法.
分析:令f(x)=x2-2,则方程x2-2=0 (x>0)的解就是函数f(x)的零点.
"二分法"的基本思想是:把函数f(x)的零点所在的区间[a,b](满足f(a)·f(b)<0)"一分为二",得到[a,m]和[m,b].根据"f(a)·f(m)<0"是否成立,取出零点所在的区间[a,m]或[m,b],仍记为[a,b].对所得的区间[a,b]重复上述步骤,直到包含零点的区间[a,b]"足够小",则[a,b]内的数可以作为方程的近似解.
解:第一步,令f(x)=x2-2,给定精确度d.
第二步,确定区间[a,b],满足f(a)·f(b)<0.
第三步,取区间中点m=.
第四步,若f(a)·f(m)<0,则含零点的区间为[a,m];否则,含零点的区间为[m,b].将新得到的含零点的区间仍记为[a,b].
第五步,判断[a,b]的长度是否小于d或f(m)是否等于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时的原方程的近似解.实际上,上述步骤也是求的近似值的一个算法.
点评:算法一般是机械的,有时需要进行大量的重复计算,只要按部就班地去做,总能算出结果,通常把算法过程称为"数学机械化".数学机械化的最大优点是它可以借助计算机来完成,实际上处理任何问题都需要算法.如:中国象棋有中国象棋的棋谱、走法、胜负的评判准则;而国际象棋有国际象棋的棋谱、走法、胜负的评判准则;再比如申请出国有一系列的先后手续,购买物品也有相关的手续......
知能训练
设计算法判断一元二次方程ax2+bx+c=0是否有实数根.
解:算法步骤如下:
第一步,输入一元二次方程的系数:a,b,c.
第二步,计算Δ=b2-4ac的值.
第三步,判断Δ≥0是否成立.若Δ≥0成立,输出"方程有实根";否则输出"方程无实根",结束算法.
点评:用算法解决问题的特点是:具有很好的程序性,是一种通法.并且具有确定性、逻辑性、有穷性.让我们结合例题仔细体会算法的特点.
拓展提升
中国网通规定:拨打市内电话时,如果不超过3分钟,则收取话费0.22元;如果通话时间超过3分钟,则超出部分按每分钟0.1元收取通话费,不足一分钟按一分钟计算.设通话时间为t(分钟),通话费用y(元),如何设计一个程序,计算通话的费用.
解:算法分析:
数学模型实际上为:y关于t的分段函数.
关系式如下:
y=
其中[t-3]表示取不大于t-3的整数部分.
算法步骤如下:
第一步,输入通话时间t.
第二步,如果t≤3,那么y=0.22;否则判断t∈Z 是否成立,若成立执行
y=0.2+0.1×(t-3);否则执行y=0.2+0.1×([t-3]+1).
第三步,输出通话费用c.
课堂小结
(1)正确理解算法这一概念.
(2)结合例题掌握算法的特点,能够写出常见问题的算法.
作业
课本本节练习1、2.