2.1 算法的基本思想 学案1(含答案)

文档属性

名称 2.1 算法的基本思想 学案1(含答案)
格式 zip
文件大小 302.9KB
资源类型 教案
版本资源 北师大版
科目 数学
更新时间 2016-08-16 21:29:14

图片预览

文档简介

2.1
算法的基本思想
学案
[读教材·填要点]
1.算法的概念
在解决某些问题时,需要设计出一系列可操作或可计算的步骤,通过实施这一系列步骤来解决问题,我们把这一系列步骤称为解决这个问题的一个算法.
2.算法的作用
现代算法的作用之一是使计算机能代替人完成某些工作,这是学习算法的重要原因之一.
3.排序问题
(1)排序的定义:
为了便于查询和检索,根据某种要求把被查询的对象用数字(或者符号)表示出来,并把数字按大小排列,是信息处理中的一项基本工作,通常叫排序.
(2)有序列:
按顺序排列的数据列为有序列.
(3)有序列的排序方法:
有序列的排序方法有直接插入排序法和折半插入排序法两种.
[小问题·大思维]
1.是不是任何一个算法都有明确结果?
提示:是,因为算法的步骤是明确的和有限的,有时可能需大量重复的计算,但只要按部就班地去做,总能得到确定的结果.
2.一个具体问题的算法唯一吗?
提示:解决一个具体问题的算法可有多个,但我们可以选择其中最优的、最简单的、步骤尽量少的算法.
[研一题]
[例1] 下列语句中是算法的有(  )
①做饭需要刷锅、淘米、加水、加热这些步骤;
②解一元一次方程的步骤是去分母、去括号、移项、合并同类项、系数化为1;
③方程x2-1=0有两个实根;
④求1+2+3+4的值,先计算1+2=3,再由3+3=6,6+4=10得最终结果是10.
A.1个         
B.2个
C.3个
D.4个
[自主解答] ①说明了做饭的步骤;②中给出了一元一次方程这一类问题的解决方式;④中给出了求1+2+3+4的一个过程,最终得出结果;对于③,并没有说明如何去算,故①②④是算法,③不是算法.
[答案] C
[悟一法]
解答这类问题的方法为特征判断法,主要从以下三方面判断:
(1)看是否满足顺序性.算法实际上就是顺序化的解题过程,是指可以用计算机来解决某一类问题的程序或步骤.
(2)看是否满足明确性.算法的每一步都是确定的,而不是含糊的、模棱两可的.
(3)看是否满足有限性.一个算法必须在有限步后结束.如果一个解题步骤永远不能结束,那么就永远得不到答案.因此,有始无终的解题步骤不是算法.
此外,算法的不唯一性也要考虑到.
[通一类]
1.下列语句表达中是算法的有(  )
①从济南到巴黎可以先乘火车到北京,再坐飞机抵达;
②x>2x+4;
③求M(1,2)与N(-3,-5)两点连线的方程,可先求MN的斜率,再利用点斜式方程求得.
A.0个
B.1个
C.2个
D.3个
解析:①中说明了从济南到巴黎的行程安排,完成任务.对于②没有说明如何去做.③说明了求直线MN的方程的算法步骤.
答案:C
[研一题]
[例2] 给出解方程ax2+bx+c=0(a、b、c为实常数)的一个算法.
[自主解答] 算法步骤如下:
1.当a=0,b=0,c=0时,解集为全体实数;
2.当a=0,b=0,c≠0时,原方程无实数解;
3.当a=0,b≠0时,原方程的解为x=-;
4.当a≠0且b2-4ac>0时,方程有两个不等实根x1=,
x2=;
5.当a≠0,b2-4ac=0时,方程有两个相等实根x1=x2=-;
6.当a≠0且b2-4ac<0时,方程没有实数根.
[悟一法]
设计算法的基本要求是:(1)设计的算法必须能解决一类问题并且能重复使用;(2)算法的过程需能一步步执行,每步执行的操作必须确切,不能含糊不清,而且经过有限步运算后能得出结果;(3)任何算法都必须输出结果,否则是无意义的算法;(4)如果需要分类讨论解决的问题,那么设计的算法中,要根据条件是否成立来决定执行任务的步骤;(5)如果需要重复做同一种动作,那么设计的算法要含有返回步骤.
[通一类]
2.写出解方程x2-2x-3=0的一个算法.
解:法一:1.移项,得x2-2x=3;①
2.①两边同时加1并配方,得(x-1)2=4;②
3.②式两边开方,得x-1=±2;③
4.解③得x=3,或x=-1.
法二:1.计算方程的判别式并判断其符号,Δ=(-2)2-4×1×(-3)=16>0;
2.将a=1,b=-2,c=-3代入求根公式x=,得x1=3,x2=-1.
[研一题]
[例3] 将-4插入有序列{-8,-3,0,2,6}中,分别用直接插入排序法和折半插入排序法写出算法.
[自主解答] 法一:直接插入排序法:
1.-4与6比较,由于-4<6,则-4在6的左边;
2.-4与2比较,由于-4<2,则-4在2的左边;
3.-4与0比较,由于-4<0,则-4在0的左边;
4.-4与-3比较,由于-4<-3,则-4在-3的左边;
5.-4与-8比较,由于-4>-8,则-4在-8的右边,则-4在-8与-3之间;
6.得新的有序列{-8,-4,-3,0,2,6}.
法二:折半插入排序法:
1.-4与0比较,由于-4<0,则-4在0的左边;
2.-4与-8比较,由于-4>-8,则-4在-8的右边;
3.-4与-3比较,由于-4<-3,则-4在-3的左边,故-4在-8与-3之间;
4.得新的有序列{-8,-4,-3,0,2,6}.
[悟一法]
有序列直接插入排序法与折半插入排序法的区别是:有序列直接插入排序法就是比较两个数的大小,再把其余的数依次进行比较插入到这个数列中,而折半插入排序法是先将新数据与“中间位置”的数据进行比较,把原有序列折半,直到确定新数据应有的位置.
[通一类]
3.设计一个算法,对无序列{36,6,12,24,38,46,0}进行排序.
解:算法如下:
1.{36}是有序列,将36与6比较,因为36>6,故得到有序列{6,36};
2.将12与6,36各数进行比较,因为12>6,12<36,故得到有序列{6,12,36};
3.将24与6,12,36各数进行比较,因为24>12,24<36,故得到有序列{6,12,24,36};
4.将38与6,12,24,36各数进行比较,因为38>36,故得到有序列{6,12,24,36,38};
5.将46与6,12,24,36,38各数进行比较,因为46>38,故得到有序列{6,12,24,36,38,46};
6.将0与6,12,24,36,38,46各数进行比较,因为0<6,故得到有序列{0,6,12,24,36,38,46}.
所以,排序之后的结果为{0,6,12,24,36,38,46}.
设计一个算法,求1+2+3+4+5+6+7+8+9+10的值.
[错解] 1.计算1+2的值为3;
2.将3加到上一步的结果中,3+3=6;
3.将4加到上一步的结果中,6+4=10;

9.将10加到上一步的结果中,45+10=55;
10.输出结果为55.
[错因] 根据算法的确定性.算法的每一步都是明确具体的.当算法中出现类似步骤时,可以给出判定条件重复执行,不能由省略号代替.本题做错的根本原因在于对算法的确定性理解不到位所致.
[正解] 算法:
1.令S=0,n=1;
2.将n加给S;
3.判断n是否为10,若不是,则n加1后,执行第二步;若n是10,则输出结果S后结束.
1.下列说法正确的是(  )
A.“5+6=11”是一个算法
B.“3是15与21的公约数”是一个算法
C.判断15是否为素数的一个程序或步骤是一个算法
D.用二分法求方程x2-2=0的近似根(精确到0.01)是一个算法
解析:算法中的程序或步骤应是明确的,有效的,且在有限步之内能够解决问题.
答案:D
2.用折半插入排序法将1插入有序列{-2,-1,3,5,8}中,则第一次与该有序列中的哪个数比较(  )
A.-2        
B.-1
C.3
D.8
解析:∵有序列的中间数据为3,∴应先与3比较大小.
答案:C
3.计算下列各式中的S值,能设计算法求解的是(  )
①S=1+2+3+…+100;
②S=1+2+3+…+100+…;
③S=1+2+3+…+n(n≥1,且n∈N
).
A.①②
B.①③
C.②③
D.①②③
解析:算法的设计要求步骤是可行的,并且能在有限步之内完成任务.
答案:B
4.以下有六个步骤:
①拨号;②等拨号音;③提起话筒(或免提功能);④开始通话或挂机(线路不通);⑤等复话方信号;⑥结束通话.
试写出打一个本地电话的算法________.(只写编号)
解析:按照拨打电话的顺序设计,同时考虑所有可能的情况.
答案:③②①⑤④⑥
5.求二次函数y=ax2+bx+c(a≠0)的最值的一个算法如下,请将其补充完整:
第一步,计算m=.
第二步,________________________________________________________________.
第三步,________________________________________________________________.
解析:m是最大值还是最小值由a的正负确定,依据二次函数求最值的方法,确定第二、三步的内容.
答案:如果a>0,则得到ymin=m,否则执行第三步 得到ymax=m
6.求半径r=2的圆的周长,写出算法.
解:算法如下:
1.取r=2;
2.计算C=2πr;
3.输出C.
一、选择题
1.想泡茶喝,当时的情况是:火已经生起了,凉水和茶叶也有了,开水没有,开水壶要洗,茶壶和茶杯要洗,下面给出了四种不同形式的算法过程,你认为最好的一种算法是(  )
A.洗开水壶,灌水,烧水,在等待水开时,洗茶壶、茶杯、拿茶叶,等水开了后泡茶喝
B.洗开水壶,洗茶壶和茶杯,拿茶叶,一切就绪后,灌水,烧水,坐等水开后泡茶喝
C.洗开水壶,灌水,烧水,坐等水开,等水开后,再拿茶叶,洗茶壶、茶杯,泡茶喝
D.洗开水壶,灌水,烧水,再拿茶叶,坐等水开,洗茶壶、茶杯,泡茶喝
解析:解决一个问题可以有多种算法,可以选择其中最优、最简单、步骤尽可能少的算法.选项中的四种算法中都符合题意,但算法A运用了统筹法原理,因此这个算法要比其余的三种算法科学.
答案:A
2.将有序列{5,4,3,2,1}按照从小到大的顺序输出,通过直接排序需要排序的次数为(  )
A.7          
B.8
C.9
D.10
解析:1.把4插入到{5}中,得{4,5},需1次排序;
2.把3插入到{4,5}中,得{3,4,5},需2次排序;
3.把2插入到{3,4,5}中,得{2,3,4,5},需3次排序;
4.把1插入到{2,3,4,5}中,得{1,2,3,4,5},需4次排序.
故共需1+2+3+4=10次排序.
答案:D
3.下列叙述能称为算法的个数为(  )
①植树需要运苗、挖坑、栽苗、浇水这些步骤.
②顺序进行下列运算:1+1=2,2+1=3,3+1=4,…,99+1=100.
③从枣庄乘火车到徐州,从徐州乘飞机到广州.
④3x>x+1.
⑤求所有能被3整除的正数,即3,6,9,12,….
A.2
B.3
C.4
D.5
解析:根据算法的含义和特征:①②③都是算法.④⑤不是算法.其中④,3x>x+1不是一个明确的逻辑步骤,不符合逻辑性;⑤的步骤是无穷的,与算法的有穷性矛盾.
答案:B
4.下列所给问题中:
①二分法解方程x2-3=0(精确到0.01);
②解方程
③求半径为2的球的体积;
④判断y=x2在R上的单调性.
其中可以设计一个算法求解的个数是(  )
A.1
B.2
C.3
D.4
解析:由算法的特征可知①②③都能设计算法.对于④,当x>0或x<0时,函数y=x2是单调递增或单调递减函数,但当x∈R时,由函数的图像可知在整个定义域R上不是单调函数,因此不能设计算法求解.
答案:C
5.已知算法:
1.输入n;
2.判断n是否是2,
若n=2,则n满足条件;
若n>2,则执行第3步;
3.依次检验从2到n-1的整数能不能整除n,若不能整除n,满足条件.
上述满足条件的数是(  )
A.质数
B.奇数
C.偶数
D.4的倍数
解析:由质数的定义知,满足条件的是质数.
答案:A
二、填空题
6.给出下列算法:
1.输入x的值.
2.当x>4时,计算y=x+2;否则执行下一步.
3.计算y=.
4.输出y.
当输入x=10时,输出y=__________.
解析:∵x=10>4,∴计算y=x+2=12.
答案:12
7.已知直角三角形的两条直角边长分别为a,b,写出求斜边c的算法步骤.
1.________________________________________________________________________;
2.________________________________________________________________________;
3.________________________________________________________________________.
解析:先输入a、b的值,再根据勾股定理算出斜边c的长,最后输出c的结果.
答案:输入两直角边长a、b的值
计算c=
输出斜边长c的值
8.将{5,21,37,13,29}按照从小到大的顺序排序,所需排序的次数为________.
解析:1.将{5}作为一个有序列;
2.由5<21,得到{5,21};
3.将37插入{5,21},得到{5,21,37};
4.将13插入{5,21,37},得到{5,13,21,37};
5.将29插入{5,13,21,37},得到{5,13,21,29,37}.
故排序结果为{5,13,21,29,37},需1+1+3+2=7次排序.
答案:7
三、解答题
9.请设计求18的所有正约数的算法.
解:1.18=2×9;
2.18=2×32;
3.列出18的所有正约数:1,2,3,32,2×3,2×32.
10.写出将56插入有序列{1,8,12,36,49,57,68,79}中的算法.
解:法一:1.56与79比较,56<79,56应在79的左边;
2.56与68比较,56<68,56应在68的左边;
3.56与57比较,56<57,56应在57的左边;
4.56与49比较,56>49,56应在49的右边.
因此将56插入到49与57之间,得到一个新的有序列,{1,8,12,36,49,56,57,68,79}.
法二:1.将56与中间位置的数36比较,56>36,故56应该在36的右边;
2.将56与剩余的数的中间位置的数57比较,56<57,故56应该在57的左边;
3.再将56与49比较,56>49,故56应该在49与57之间.
由此得插入56后的新的有序列{1,8,12,36,49,56,57,68,79}.