第一章 算法初步
1.1.1 算法的概念
课时目标 通过分析解决具体问题的过程与步骤,体会算法的思想,了解算法的含义,能用自然语言描述解决具体问题的算法.
1.算法的概念
12世纪的
算法
指的是用阿拉伯数字进行算术运算的过程
数学中的
算法
通常是指按照一定规则解决某一类问题的明确和有限的步骤
现代算法
通常可以编成计算机程序,让计算机执行并解决问题
2.算法与计算机
计算机解决任何问题都要依赖于算法,只有将解决问题的过程分解为若干个明确的步骤,即算法,并用计算机能够接受的“语言”准确地描述出来,计算机才能够解决问题.
一、选择题
1.下面四种叙述能称为算法的是( )
A.在家里一般是妈妈做饭
B.做米饭需要刷锅、淘米、添水、加热这些步骤
C.在野外做饭叫野炊
D.做饭必须要有米
答案 B
解析 算法是解决一类问题的程序或步骤,A、C、D均不符合.
2.下列对算法的理解不正确的是( )
A.算法有一个共同特点就是对一类问题都有效(而不是个别问题)
B.算法要求是一步步执行,每一步都能得到唯一的结果
C.算法一般是机械的,有时要进行大量重复计算,它的优点是一种通法
D.任何问题都可以用算法来解决
答案 D
3.下列关于算法的描述正确的是( )
A.算法与求解一个问题的方法相同
B.算法只能解决一个问题,不能重复使用
C.算法过程要一步一步执行,每步执行的操作必须确切
D.有的算法执行完后,可能无结果
答案 C
解析 算法与求解一个问题的方法既有区别又有联系,故A不对;算法能重复使用,故B不对;每个算法执行后必须有结果,故D不对;由算法的有序性和确定性可知C正确.
4.计算下列各式中S的值,能设计算法求解的是( )
①S=+++…+
②S=+++…++…
③S=+++…+ (n≥1且n∈N*)
A.①② B.①③ C.②③ D.①②③
答案 B
解析 因为算法的步骤是有限的,所以②不能设计算法求解.
5.关于一元二次方程x2-5x+6=0的求根问题,下列说法正确的是( )
A.只能设计一种算法
B.可以设计两种算法
C.不能设计算法
D.不能根据解题过程设计算法
答案 B
解析 算法具有不唯一性,对于一个问题,我们可以设计不同的算法.
6.对于算法:第一步,输入n.
第二步,判断n是否等于2,若n=2,则n满足条件;若n>2,则执行第三步.
第三步,依次从2到(n-1)检验能不能整除n,若不能整除n,则执行第四步;若能整除n,则执行第一步.
第四步,输出n.
满足条件的n是( )
A.质数 B.奇数 C.偶数 D.约数
答案 A
解析 此题首先要理解质数,只能被1和自身整除的大于1的整数叫质数.2是最小的质数,这个算法通过对2到(n-1)一一验证,看是否有其他约数,来判断其是否为质数.
二、填空题
7.已知直角三角形两条直角边长分别为a,b.写出求斜边长c的算法如下:
第一步,输入两直角边长a,b的值.
第二步,计算c=的值.
第三步,________________.
将算法补充完整,横线处应填____________.
答案 输出斜边长c的值
8.下面给出了解决问题的算法:
第一步:输入x.
第二步:若x≤1,则y=2x-1,否则y=x2+3.
第三步:输出y.
(1)这个算法解决的问题是________;
(2)当输入的x值为________时,输入值与输出值相等.
答案 (1)求分段函数y=的函数值 (2)1
9.求1×3×5×7×9×11的值的一个算法是:
第一步,求1×3得到结果3;
第二步,将第一步所得结果3乘5,得到结果15;
第三步,____________________;
第四步,再将105乘9得到945;
第五步,再将945乘11,得到10 395,即为最后结果.
答案 将第二步所得的结果15乘7,得结果105
三、解答题
10.已知某梯形的底边长AB=a,CD=b,高为h,写出一个求这个梯形面积S的算法.
解 第一步,输入梯形的底边长a和b,以及高h.
第二步,计算a+b的值.
第三步,计算(a+b)×h的值.
第四步,计算S=的值.
第五步,输出结果S.
11.函数y=,写出给定自变量x,求函数值的算法.
解 算法如下:第一步,输入x.
第二步,若x>0,则令y=-x+1后执行第五步,否则执行第三步.
第三步,若x=0,则令y=0后执行第五步,否则执行第四步.
第四步,令y=x+1;
第五步,输出y的值.
能力提升
12.某铁路部门规定甲、乙两地之间旅客托运行李的费用为:
c=
其中ω(单位:kg)为行李的质量,如何设计计算托运费用c(单位:元)的算法.
解 第一步,输入行李的质量ω.
第二步,如果ω≤50,则令c=0.53×ω,否则执行第三步.
第三步,c=50×0.53+(ω-50)×0.85.
第四步,输出托运费c.
13.从古印度的汉诺塔传说中演变了一个汉诺塔游戏:
(1)有三根杆子A,B,C,B杆上有三个碟子(大小不等,自上到下,由小到大),如图.
(2)每次移动一个碟子,小的只能叠在大的上面.
(3)把所有碟子从A杆移到C杆上.
试设计一个算法,完成上述游戏.
解 第一步,将A杆最上面碟子移到C杆.
第二步,将A杆最上面碟子移到B杆.
第三步,将C杆上的碟子移到B杆.
第四步,将A杆上的碟子移到C杆.
第五步,将B杆最上面碟子移到B杆.
第六步,将B杆上的碟子移到C杆.
第七步,将A杆上的碟子移到C杆.
1.算法的特点
(1)有限性:一个算法的步骤序列是有限的,必须在有限操作之后停止,不能是无限的.
(2)确定性:算法中的每一步应该是确定的并且能有效地执行且能得到确定的结果,而不应当是模棱两可的.
(3)顺序性与正确性:算法从初始步骤开始,分为若干明确的步骤,每一个步骤只能有一个确定的后继步骤,前一步是后一步的前提,只有执行完前一步才能进行下一步,并且每一步都准确无误,才能完成问题.
(4)不唯一性:求解某一个问题的解法不一定是唯一的,对于一个问题可以有不同的算法.
(5)普遍性:很多具体的问题,都可以设计合理的算法去解决.
2.算法与数学问题解法的区别与联系
(1)联系
算法与解法是一般与特殊的关系,也是抽象与具体的关系.
(2)区别
算法是解决某一类问题所需要的程序和步骤的统称,也可理解为数学中的“通法通解”;而解法是解决某一个具体问题的过程和步骤,是具体的解题过程.