资源描述
第7章 算法:程序与计算系统之灵魂
1、算法就是一个有穷规则的集合,其中之规则规定了解决某一特定类型问题的一个运算序列。回答下列问题。
(1)关于算法的特性,下列说法不正确的是_____。
(A)算法必须有明确的结束条件,即算法应该能够结束,此即算法的有穷性;
(B)算法的步骤必须要确切地定义,不能有歧义性,此即算法的确定性;
(C)算法可以有零个或多个输入,也可以有零个或多个输出,此即算法的输入输出性;
(D)算法中有待执行的运算和操作必须是相当基本的,可以由机器自动完成,进一步,算法应能在有限时间内完成,此即算法的能行性;
(E)上述说法有不正确的;
答案:C
解释:
本题考查对算法基本性质的理解
(C)算法的输出性:算法有一个或多个的输出/结果,即与输入有某个特定关系的量。因此(C)选项错误。其余选项,(A)(B)(D)分别是对算法的有穷性,确定性和能行性的正确描述。
具体内容参考第七章视频之“算法与算法类问题的求解”以及第七章课件。
(2)关于算法的命题,下列说法不正确的是_____。
(A)算法规定了任务执行/问题求解的一系列、有限的步骤。
(B)算法所规定的计算/处理步骤是有限的,但算法实际执行的计算/处理步骤可以是无限的。
(C)算法可以没有输入,但必须有输出。
(D)算法的每一个步骤必须确切地定义,且其运算和操作必须相当基本,可以由机器自动完成。
答案:B
解释:
本题考查对算法基本性质的理解
(B)违反了算法的有穷性:一个算法在执行有穷步规则之后必须结束。因此(B)选项错误。其余选项,(A)(C)(D)分别是对算法的有穷性,输入输出性和确定性的正确描述。
具体内容参考第七章视频之“算法与算法类问题的求解”以及第七章课件。
(3)关于算法与程序、计算机语言之间的关系,下列说法不正确的是_____。
(A)算法是解决问题的步骤,某个问题可能有多个求解算法;
(B)算法不能直接由计算机执行,必须将其转换为程序才能够由计算机执行;
(C)算法只能由高级(计算机)语言实现,不能通过机器语言实现;
(D)求解问题的多个算法不一定获得相同的解。
答案:C
解释:
本题考查对算法基本性质的理解
(C)算法是解决问题的步骤,执行的语言是步骤书写的规范、语法规则、标准的集合
是人和计算机都能理解的语言,不仅是高级语言。因此(C)选项错误。其余选项,(A)正确,解决问题的算法可以有多个。(B)选项,程序是算法的实现方式,正确。(D)选项,算法有优劣,对于同一个问题,获得的解可能不同。
具体内容参考第七章视频之“算法与算法类问题的求解”以及第七章课件。
(4)算法是计算系统的灵魂,为什么?不正确的是_____。
(A)计算系统是执行程序的系统,而程序是用计算机语言表达的算法;
(B)一个问题的求解可以通过构造算法来解决,“是否会编程序”本质上章是“能否想出求解该问题的算法”;
(C)一个算法不仅可以解决一个具体问题,它可以在变换输入输出的情况下,求解一个问题系列;
(D)问题求解都可以归结到算法的构造与设计,系统和算法的关系是:算法是龙,而系统是睛,画龙要点睛。
(E)上述说法有不正确的;
答案:D
解释:
本题考查算法、程序与系统之间的关系
(D)选项,算法是计算系统的灵魂,因此系统和算法的关系是:系统是龙,算法是睛,好的算法能起到画龙点睛的效果。(A)(B)(C)选项描述正确。
具体内容参考第七章视频之“算法与算法类问题的求解”以及第七章课件。
2、哥尼斯堡七桥问题,是一个经典问题,如下图(a)所示,描述为“由河流隔开的四块陆地上建造了七座桥,寻找走遍这七座桥且只许走过每座桥一次最后又回到原出发点的路径”。关于哥尼斯堡七桥问题,著名数学家欧拉对该问题做了一个抽象:“顶点”为陆地,“边”为连接两块陆地的桥梁。这个抽象被称为“图”,并定义了顶点的“度”为连接一个顶点的边的数量。关于此问题回答下列问题。
//本题考查问题及其数学建模的作用
(a) (b)
(1)哥尼斯堡七桥问题的路径能够找到吗? _____。
(A)一定能够找到; (B)一定不能找到; (C)不确定能不能找到。
答案:B
解释:
本题考查问题及其数学建模的作用
选择(B),根据欧拉回路关系可知,要是一个图形可以一笔画,需要满足:1)图形必须是连通的;2)途中的“奇点”(相连的边的个数为奇数的点)个数是0或2(该题中应为0个)。该问题中将四个岛抽象成4个点,每条桥抽象成边,可知图中奇点个数是4个,因此不可能找到。
具体内容参考第七章视频之“数学建模与算法策略设计--算法思想”,第七章课件或查阅欧拉回路相关资料。
(2)对河流隔开的m块陆地上建造的n座桥梁,能否找到走遍这n座桥且只许走过每座桥一次最后又回到原出发点的路径呢? _____。
(A)一定能够找到; (B)一定不能找到; (C)不确定能不能找到。
答案:C
解释:
本题考查问题及其数学建模的作用
选择(C)根据欧拉回路关系可知,要是一个图形可以一笔画,需要满足:1)图形必须是连通的;2)途中的“奇点”(相连的边的个数为奇数的点)个数是0或2(该题中因为起点和终点是一个,所以奇点个数应为0个)。该问题中将m个岛抽象成m个点,每条桥抽象成边,但图中奇点个数未知,因此不能做判断。
具体内容参考第七章视频之“算法与算法类问题的求解,第七章课件或查阅欧拉回路相关资料。
(3)对河流隔开的m块陆地上建造的n座桥梁,若要找到走遍这n座桥且只许走过每座桥一次最后又回到原出发点的路径,则需满足以下条件_____。
(A)m个顶点n条边的图应是连通的,即由一个顶点出发可沿边到达任何一个其他顶点;
(B)每个顶点的度应为偶数;
(C)既需要满足(A)又需要满足(B);
(D)上述条件还不够,还需满足更多条件。
答案:C
解释:
本题考查问题及其数学建模的作用
选择(C)根据欧拉回路关系可知,要是一个图形可以一笔画,需要满足:1)图形必须是连通的;2)途中的“奇点”(相连的边的个数为奇数的点)个数是0或2(该题中因为起点和终点是一个,所以奇点个数应为0个)。该问题中将m个岛抽象成m个点,每条桥抽象成边,因此应该选择C。
具体内容参考第七章视频之“数学建模与算法策略设计--算法思想”,第七章课件或查阅欧拉回路相关资料。
(4)下面所示的图(c),能否找到走遍每一座桥,且每座桥仅走过一次、最后又回到原出发点的路径呢?
(c)
(A)一定能够找到; (B)一定不能找到; (C)不确定能不能找到。
答案:B
解释:
本题考查问题及其数学建模的作用
选择(B)根据欧拉回路关系可知,要是一个图形可以一笔画,需要满足:1)图形必须是连通的;2)途中的“奇点”(相连的边的个数为奇数的点)个数是0或2(该题中因为起点和终点是一个,所以奇点个数应为0个)。图中奇点是C与G,个数为2,不符合要求,因此应该选择B。
具体内容参考第七章视频之“数学建模与算法策略设计--算法思想”,第七章课件或查阅欧拉回路相关资料。
(5)参见图(c),增加哪些边,使得能够找到走遍每一座桥,且每座桥仅走过一次、最后又回到原出发点的路径呢?
(A)BG边; (B)AG边; (C)CG边; (D)AD边; (E)DE边。
答案:C
解释:
本题考查问题及其数学建模的作用
选择(C)根据欧拉回路关系可知,要是一个图形可以一笔画,需要满足:1)图形必须是连通的;2)途中的“奇点”(相连的边的个数为奇数的点)个数是0或2(该题中因为起点和终点是一个,所以奇点个数应为0个)。图中奇点是C与G,个数为2,不符合要求,因此在CG间增加一条边,将寄点数变成0可满足要求,因此应该选择C。
具体内容参考第七章视频之“数学建模与算法策略设计--算法思想”,第七章课件或查阅欧拉回路相关资料。
(6-1)对河流隔开的m块陆地上建造的n座桥梁,若要找到走遍这n座桥且只许走过每座桥一次的路径,则需满足以下条件_____。
(A)m个顶点n条边的图应是连通的,即由一个顶点出发可沿边到达任何一个其他顶点;
(B)每个顶点的度应为偶数;
(C)既需要满足(A)又需要满足(B);
(D)不满足上述条件(A)(B)(C)的图也能找出满足题目规定要求的路径;
答案:D
解释:
本题考查问题及其数学建模的作用
选择(D),此题未要求回到原地,即起点和终点可以不是一个,那么可以有2个奇数点作为起点和终点。根据欧拉回路关系可知,要是一个图形可以一笔画,需要满足:1)图形必须是连通的;2)途中的“奇点”(相连的边的个数为奇数的点)个数是0或2。不同时满足(A)(B),可以有2个顶点的度为奇数,也可以满足题目要求,因此应该选择D。
具体内容参考第七章视频之“数学建模与算法策略设计--算法思想”,第七章课件或查阅欧拉回路相关资料。
(6-2)对河流隔开的m块陆地上建造的n座桥梁,若要找到走遍这n座桥且只许走过每座桥一次的路径,则需满足以下条件_____。
(A)m个顶点n条边的图应是连通的,即由一个顶点出发可沿边到达任何一个其他顶点;
(B)每个顶点的度应为偶数,或者,只有两个顶点的度为奇数而其他顶点的度均为偶数; (C)既需要满足(A)又需要满足(B);
(D)不满足上述条件(A)(B)(C)的图也能找出满足题目规定要求的路径;
答案:C
解释:
本题考查问题及其数学建模的作用
选择(C),此题未要求回到原地,即起点和终点可以不是一个,那么可以有2个奇数点作为起点和终点。根据欧拉回路关系可知,要是一个图形可以一笔画,需要满足:1)图形必须是连通的;2)途中的“奇点”(相连的边的个数为奇数的点)个数是0或2。因此应该选择C。
具体内容参考第七章视频之“数学建模与算法策略设计--算法思想”,第七章课件或查阅欧拉回路相关资料。
(7)下面所示的图(d)和图(e),问能否找到走遍每一座桥,且每座桥仅走过一次的路径呢?
(d) (e)
(A)图(d)和图(e)都一定不能找到;
(B)图(d)一定能够找到;图(e)一定不能找到;
(C)图(d)一定不能找到;图(e)一定能够找到;
(D)图(d)和图(e)都一定能够找到;
答案:C
解释:
本题考查问题及其数学建模的作用
选择(C)根据欧拉回路关系可知,要是一个图形可以一笔画,需要满足:1)图形必须是连通的;2)途中的“奇点”(相连的边的个数为奇数的点)个数是0或2。d图有FGE三个奇点,一定不能找到,而e图有FG两个奇点,一定能找到,因此应该选择C。
具体内容参考第七章视频之“数学建模与算法策略设计--算法思想”,第七章课件或查阅欧拉回路相关资料。
(8)参见下图(f),下列说法正确的是_____。
(f)
(A)对{A、B、C、D、E、F、G}中的任意两个顶点X和Y,都可以找到一条路径,从X出发 走遍每一座桥,且每座桥仅走过一次,最后终止于Y;
(B)对两个顶点A和B,可以找到一条路径,从A出发 走遍每一座桥,且每座桥仅走过一次,最后终止于B;
(C)对两个顶点D和G,可以找到一条路径,从D出发 走遍每一座桥,且每座桥仅走过一次,最后终止于G;
(D)对{A、B、C、D、E、F、G}中的任意两个顶点X和Y,都找不到一条路径,从X出发 走遍每一座桥,且每座桥仅走过一次,最后终止于Y;
答案:C
解释:
本题考查问题及其数学建模的作用
选择(C)根据欧拉回路关系可知,要是一个图形可以一笔画,需要满足:1)图形必须是连通的;2)途中的“奇点”(相连的边的个数为奇数的点)个数是0或2。该图奇点为G和D,因此可以找到一条欧拉回路,并且只能以此两点作为起点和终点,因此应该选择C。
具体内容参考第七章视频之“数学建模与算法策略设计--算法思想”,第七章课件或查阅欧拉回路相关资料。
(9)哥尼斯堡七桥问题,给我们的启示是_____。
(A)一个具体问题应该进行数学抽象,基于数学抽象进行问题求解;
(B)一个具体问题的求解,进行数学建模后,通过模型中的性质分析可以判断该问题是否有解,如果有解,则可以进行计算;而如果无解,则无需进行计算;
(C)一个具体问题的求解方法,进行数学建模后,可反映出一类问题的求解方法,例如哥尼斯堡七桥问题的求解方法,建立“图”后,可反映任意n座桥的求解方法;
(D)上述全部;
答案:D
解释:
本题考查问题及其数学建模的作用
以上说明都正确,对一个具体问题的求解,可先进行数学建模,将具体问题转化成抽象问题,再进行判断是否有解,若有解则计算,若无解则无需计算。
具体内容参考第七章视频之“数学建模与算法策略设计--算法思想”,第七章课件或查阅欧拉回路相关资料。
(10)哥尼斯堡七桥问题,推而广之就是m个顶点n条边的图的“一笔画”问题,我们可以给出一个算法来求解该问题,即“对河流隔开的m块陆地上建造的n座桥梁,若要找到走遍这n座桥且只许走过每座桥一次的路径”。 关于该算法的基本思想,下列说法正确的是_____。
(A)以任何一个顶点为起点,按照图的“边”的指示,找到按该边与该顶点相连的下一个顶点,并标记该边为“已访问”,依次循环,直到所有的边都被访问过为止,便可找到给定问题的解;
(B)以任何一个顶点为起点,按照图的未访问过“边”的指示,找到按该边与该顶点相连的下一个顶点,并标记该边为“已访问”,依次循环,直到所有的边都被访问过为止,便可找到给定问题的解;
(C)首先判断该问题是否有解,若无解,则直接退出;若有解,则以任何一个顶点为起点,按照图的未访问过“边”的指示,找到按该边与该顶点相连的下一个顶点,并标记该边为“已访问”,依次循环,直到所有的边都被访问过为止,便可找到给定问题的解;
(D)首先判断该问题是否有解,若无解,则直接退出;若有解,则选择一个奇数度的顶点为起点,按照图的未访问过“边”的指示,找到按该边与该顶点相连的下一个顶点,并标记该边为“已访问”,依次循环,直到所有的边都被访问过为止,便可找到给定问题的解;
(E)上述都不正确。
答案:D
解释:
本题考查问题及其数学建模的作用
选择(D)根据欧拉回路关系可知,要是一个图形可以一笔画,需要满足:1)图形必须是连通的;2)途中的“奇点”(相连的边的个数为奇数的点)个数是0或2。因此,若有奇点,则起点和终点必须是奇点,若无,则任意,因此(A)(B)(C),因此应该选择D。
具体内容参考第七章视频之“数学建模与算法策略设计--算法思想”,第七章课件或查阅欧拉回路相关资料。
3、背包问题的定义是:给定一组物品,每种物品都有自己的重量和价格,在限定的总重量内,我们如何选择,才能使得物品的总价格最高。问题的名称来源于如何选择最合适的物品放置于给定背包中。背包问题的一个例子:应该选择哪些盒子,才能使价格尽可能地大,而保持重量小于或等于15 kg?其示意图如下:
(1)该背包问题的可能解的数量是_____。
(A) 5 (B) 10 (C) 32 (D) 64
答案:C
解释:
本题考查问题及其数学建模的作用
由题意可知,只要可放入背包的状态都算是可能解,可以按背包容量由1到15遍历可能性。答案为(C)32个。
具体内容查阅背包问题相关资料。
(2)假定求解该问题的一种贪心策略是:优先选择能装下盒子中价格最高的,依据该算法策略所得到的解的总价值是_____。
(A) 16 (B) 15 (C) 14 (D) 13
答案:B
解释:
本题考查问题及其数学建模的作用
由题意可知使用贪心算法,从价值最高的开始放入,第一个放入价值$10的4kg物品,接下来价值最大的是$4,但再加上12kg已经超过了背包的限度,所以不可放入,接下来放入其余的3个可满足重量限制的物品,总价值是15,所以选择(B)。
具体内容查阅背包问题相关资料。
(3)假定求解该问题的一种贪心策略是:优先选择能装下盒子中单位重量价值最高的,依据该算法策略所得到的解的总价值是_____。
(A) 16 (B) 15 (C) 14 (D) 13
答案:B
解释:
本题考查问题及其数学建模的作用
由题意可知使用贪心算法,从单位价值最高的开始放入,五个物品单位价值从大到小依次为:2.5,2,1,1,1/3,依次放入并验证是否超出背包重量限制:$10-4kg, $2-1kg,$1-1kg,$2-2kg,之后放不下$4-12kg的物品,到此总价值是15,所以选择(B)。
具体内容查阅背包问题相关资料。
(4) 假定求解该问题的一种贪心策略是:最大程度地利用背包的容量(15kg),依据该算法策略所得到的解的总价值是_____。
(A) 8 (B) 15 (C) 14 (D) 13
答案:A
解释:
本题考查问题及其数学建模的作用
由题意可知使用贪心算法,需要让剩余空间最小,那么可以得到的组合是,12kg+2kg+1kg=15kg,重量得到最大利用,总价值是8,所以选择(A)。
具体内容查阅背包问题相关资料。
(5) 使用遍历算法策略所得到的解的总价值是_____。
(A) 8 (B) 15 (C) 14 (D) 13
答案:B
解释:
本题考查问题及其数学建模的作用
用遍历算法策略,状态转移方程:f[v]=max{f[v],f[v-c[i]]+w[i]},即f[i][v]表示前i件物品恰放入一个容量为v的背包可以获得的最大价值,第i件物品的重量是c[i],价值是w[i]。“将前i件物品放入容量为v的背包中”这个子问题,若只考虑第i件物品的策略(放或不放),那么就可以转化为一个只牵扯前i-1件物品的问题。如果不放第 i件物品,那么问题就转化为“前i-1件物品放入容量为v的背包中”,价值为f[i-1][v];如果放第i件物品,那么问题就转化为“前i-1件物品放 入剩下的容量为v-c[i]的背包中”,此时能获得的最大价值就是f [i-1][v-c[i]]再加上通过放入第i件物品获得的价值w[i]。按此方法,可得总价值是15,所以选择(B)。
具体内容查阅背包问题相关资料。
(6) 假定有N个物品,其价值分别为V1, V2, ..., VN,重量分别为W1, W2, ..., WN,背包所能承受的总重量为Wmax,为物品i定义一个决策变量xi,其中xi=1表示选择该物品,xi=0表示不选择该物品。下面哪个描述共同构成了该问题的数学模型_____。
(A) 问题的目标函数是;
(B) 问题的目标函数是;
(C) 问题解所应满足的约束是;
(D) 问题解所应满足的约束是;
(E) 前述(A)和(C);
答案:E
解释:
本题考查问题及其数学建模的作用
该问题有两个条件:
1)物品不能超过背包所能承受的重量,即(C)选项:
2)背包内物品价值最大,即(A)选项目标函数为
(B)和(D)选项明显错误,将质量和价值比较。
所以选择(E)。
具体内容查阅背包问题相关资料。
4、TSP-旅行商问题,是一个经典问题,如下图所示,描述为“有n个城市,任何两个城市之间的距离都是确定的,现要求一旅行商从某城市出发必须经过每一个城市且只能在每个城市逗留一次,最后回到原出发城市,问如何事先确定好一条最短的路线使其旅行的费用最少”。围绕TSP,回答下列问题。
(1)关于TSP问题的遍历算法和贪心算法,下列说法正确的是_____。
(A)对TSP问题而言,遍历算法和贪心算法求得的解是一样的,所不同的是贪心算法更快一些,而遍历算法更慢一些;
(B)对TSP问题而言,遍历算法和贪心算法求得的解是一样的,所不同的是遍历算法更快一些,而贪心算法更慢一些;
(C)对TSP问题而言,遍历算法和贪心算法求得的解是不一样的,贪心算法是求近似解,执行更快一些,而遍历算法是求精确解,执行更慢一些;
(D)对TSP问题而言,遍历算法和贪心算法求得的解是不一样的,贪心算法是求精确解,执行更快一些,而遍历算法是求近似解,执行更慢一些;
答案:C
解释:
本题考查对贪心算法与遍历算法的简单理解
贪心算法:一定要做当前情况下的最好选择,否则将来可能会后悔,故名“贪心”。如果以A城市为起点,选择最近的下一点,为B城市。以B城市为起点,选择最近的下一个城市,可以选择C或D,以选择D为例。以D为起点,选择最近的下一点,为C城市。最后回到A。整个过程的花费为:14。于是,该贪心算法的解为14。而通过遍历可知,该问题的最优解为A-B-C-D-A,花费为13。可见,贪心算法与遍历算法的解不会总是完全相同。而贪心算法只会做当前情况下最优选择,其时间复杂度为n3 级别。而遍历则会将各种情况考虑在内,其时间复杂度为(n-1)!级别当城市的数量变多时,遍历算法将会出现组合爆炸。故,相比之下,贪心算法的计算速度更快。所以(C)选项是正确的。
详细内容请参考第七章视频“算法,程序与计算系统之灵魂”与第七章课件。
(2)关于TSP,下列说法不正确的是_____。
(A)TSP问题的一个可能解就是n个城市的一个组合<t1, t2, …, tn>,其中任何两个ti,tj都对应不同的城市。若要求得最优解,则必须对所有的组合,即所有可能解进行比较。
(B)TSP问题的难点是当n值很大时,组合数目非常庞大(组合数目为n!),以致于计算机不能在有限时间内完成所有的组合;
(C)TSP问题的难点是当n值很大时,组合数目非常庞大(组合数目为n!),虽如此,计算机仍然能够在有限时间内完成所有的组合;
(D)上述思想--对所有组合进行比较的思想,即是所谓的遍历算法策略,它仅仅对n值很小的TSP问题是能行的。
答案:C
解释:
本题考查对TSP组合优化问题的理解
对所有组合进行比较的思想,即所谓的遍历算法策略,其组合数目为n!。2001年解决了德国15112个城市的TSP问题,使用了美国Rice大学和普林斯顿大学之间互连的、速度为500MHz 的Compaq EV6 Alpha 处理器组成的110台计算机,所有计算机花费的时间之和为22.6年。由此可见,当n巨大时,用遍历算法解决TSP问题是不现实的。所以(C)选项错误。
详细内容请参考第七章视频“算法,程序与计算系统之灵魂”与第七章课件。
(3)关于TSP的贪心算法的求解思想,下列说法不正确的是_____。
(A)无需对所有组合(所有可能解)进行比较,而仅需依照某种办法确定其中的一个组合即可,该组合不一定是最优解,但却是一个较优解或次优解;
(B)在确定一个组合<t1, t2, …, tn>时,tk+1是与tk相连接的城市中与tk距离最短的城市,即tk+1是由tk确定的,与tk连接的若干城市中的特性最优的城市;
(C)贪心算法确定的路径,是由局部最优(即tk+1在tk看来是最优的)组合起来的路径,该路径从全局角度也一定是最优的;
(D)对一个具体的TSP问题,每次执行贪心算法,所求得的最终解可能是不同的。
答案:C
解释:
本题考查对TSP贪心算法的理解
(A)(B)选项都是对贪心算法的描述,贪心算法的核心就是:只考虑当前情况下得最优解。故(A)(B)正确。贪心算法得到的解释可行解,但不一定是最优解,故(C)错误。在执行贪心算法的过程中,会遇到下一步有两个最优选项的情况,所以每次执行贪心算法的最终解的结果可能是不同的。故(D)正确。
详细内容请参考第七章视频“算法,程序与计算系统之灵魂”与第七章课件。
(4)下列哪些问题可应用求解TSP的算法,正确的是_____。
(A)电路板上需要钻n个孔,选择一条最短路径使机器移动并完成所有孔的钻孔工作的问题(机器在电路板上钻孔的调度问题);
(B) n个盘子在三个柱子上的移动问题(梵天塔问题或者说汉诺塔问题);
(C) n座桥, 走过每座桥且仅走过一次的问题(图的遍历问题);
(D)上述(A)(B)(C)都可以。
答案:A
解释:
本题考查对TSP问题抽象的理解
求解TSP问题采用的是贪心算法。(A)选项所描述的问题其实就是TSP问题。(B)选项所描述的问题是梵天塔问题,应该采用的是递归的思想。(C)选项所描述的图的遍历问题,主要有深度优先搜索,和广度优先搜索两种解决方法,不是贪心算法。综上,(A)选项正确。
详细内容请参考第七章视频“算法,程序与计算系统之灵魂”与第七章课件。
(5)关于下列四个数学抽象,说法正确的是_____。
(数学抽象I)城市记为:V={v1,v2,…,vn},任意两个城市vi,vj∈V之间的距离记为:dvivj,问题的解是寻找所有城市的一个访问顺序T={t1,t2,…,tn},其中ti∈V,使得mini=1ndtiti+1,这里假定除tn+1=t1外,ti ¹ tj(i¹j时)。
(数学抽象II)电路元件记为:V={v1,v2,…,vn},任意两个元件vi,vj∈V之间的距离记为:dvivj,问题的解是寻找所有元件之间的一个访问顺序T={t1,t2,…,tn},其中ti∈V,使得mini=1ndtiti+1,这里假定除tn+1=t1外,ti ¹ tj(i¹j时)。
(数学抽象III)图的结点记为:V={v1,v2,…,vn},任意两个结点vi,vj∈V的边的权值记为:dvivj,问题的解是寻找所有结点之间的一个访问顺序T={t1,t2,…,tn},其中ti∈V,使得mini=1ndtiti+1,这里假定除tn+1=t1外,ti ¹ tj(i¹j时)。
(数学抽象IV)图的结点记为:N = {1,2,…,n},任意两个结点i,j的边的权值记为:dij,问题的解是寻找所有结点之间的一个访问顺序t={t1,t2,…,tn},其中tiÎV,使得min mini=1ndtiti+1,这里假定除tn+1=t1外,ti ¹ tj(i¹j时)。
(A)只有数学抽象I是TSP问题,数学抽象II和III不是;
(B)数学抽象I和III可以被认为是TSP问题,数学抽象II和IV不是;
(C)数学抽象I、II、III和IV都可以被认为是TSP问题;
(D)上述说法都不正确。
答案:C
解释:
本题考查对TSP问题抽象的理解
I就是对最原始的TSP问题的抽象描述。II也是对TSP问题的描述,只是将城市换成了电子元件。III和IV是对同一问题的不同表述罢了,都是TSP问题,只是将城市换为了图。四个数学抽象都可以被认为是TSP问题。故选项(C)正确。
详细内容请参考第七章视频“算法,程序与计算系统之灵魂”与第七章课件。
5、数据结构是算法设计的重要步骤,针对不同问题的算法设计应该选择适当的数据结构,不同的数据结构会使得解决问题的算法的性能有所不同。回答下列问题。
(1)关于数据结构,下列说法不正确的是_____。
(A)数据结构是问题域数学模型中各种数据的存储结构;
(B)数据结构是将逻辑上有一定语义关系的数据,转换成计算机可以存储和处理的变量,便于算法和程序进行处理;
(C)数据结构是将具有一定语义关系的变量进行命名,以便隐藏数据结构内部的操作细节,便于算法按逻辑语义通过操控该名字来操控该数据结构;
(D)数据结构包含了数据的逻辑结构、存储结构及其操作;
(E)上述说法有不正确的。
答案:E
解释:
本题考查对数据结构的理解
数据结构是数据的逻辑结构、存储结构及其操作的总称,它提供了问题求解/算法的数据操纵机制。(A) (B) (C)(D)的说法都没有问题。所以(E)是不正确的。
详细内容请参考第七章视频“算法,程序与计算系统之灵魂”与第七章课件。
(2)关于数据结构,下列说法不正确的是______________?
(A) 数据结构由逻辑结构、存储结构及运算3部分组成;
(B) 存储结构定义了数据在存储器中的存储方式;
(C) 向量使用顺序存储结构,并借助元素在存储器中的相对位置来表示数据元素的逻辑关系;
(D) 在树结构中,指针用于表达元素之间的逻辑关系——父子关系,每个元素的指针指向其父节点,因此一个元素可以有一个或多个指针。
答案:D
解释:
本题考查对数据结构的理解
数据结构是数据的逻辑结构、存储结构及其操作的总称。(A)正确。数据的存储结构也就是在反映数据逻辑关系的原则下,数据在存储器中的存储方式。(B)正确。向量确实是使用顺序存储结构,并且借助元素在存储器中的相对位置来表示数据元素的逻辑关系的,(C)正确。在树结构中,如果每个元素的指针都指向其父节点,那么每个元素只能有一个指针。因为每个元素只有一个父亲。故(D)错误。
详细内容请参考第七章视频“算法,程序与计算系统之灵魂”与第七章课件。
6. 数据通常要存储在存储器中,存储器是按地址访问的存储单元的集合,因此存储器可被认为是按线性方式组织数据。数组是高级语言中经常使用的一种数据结构,其按照不同的下标可访问数组的不同的元素。如下图所示:
(1)关于数组和存储器,下列说法不正确的是_____。
(A)和存储器一样,数组是按线性方式组织数据;
(B)和存储器一样,一维数组是按线性方式组织数据,一个数据元素需要一个存储单元来存储,一个下标即相当于一个存储单元的地址;
(C)和存储器一样,一维数组是按线性方式组织数据,一个数据元素需要一个或多个存储单元来存储,一个下标即相当于一个存储单元的地址;
(D)和存储器一样,一维数组是按线性方式组织数据,一个数据元素需要一个或多个存储单元来存储,一个下标即相当于一个或多个存储单元的地址;
答案:C
解释:
本题考查对存储器和数组的理解。
数组是按照线性方式组织数据的。当一个数据元素需要多个存储单元存储时,一个下标代表的就是多个存储单元的地址,所以(C)的说法不准确。其余说法都对。
详细内容请参考第七章视频“算法,程序与计算系统之灵魂”与第七章课件。
(2)请对照上图的左子图和右子图来观察,右子图的二维数组是按左图的形式存储在存储器中。则D[4][2]元素所对应的存储单元的存储地址为_____。
(A)00000000 00000101;
(B)00000000 00001000;
(C)00000000 00001010;
(D)上述都不正确;
答案:B
解释:
本题考查对存储器和数组的理解。
图中,二维数组中,D[4][2]对应的元素是80,而且是第二个80.在存储器中,找到第二个80的位置,其所对应的地址为:00000000 00001000;(B)正确。
详细内容请参考第七章视频“算法,程序与计算系统之灵魂”与第七章课件。
(3)请参照上图的左子图和右子图来观察,右子图的二维数组是按左图的形式存储在存储器中。则D[i][j]元素,与对应存储单元的存储地址的转换关系正确的为_____。
(A)D[i][j]元素的存储地址=数组的起始地址+((i-1)*每行的列数+j-1)*单一元素占用存储单元的数目;
(B)D[i][j]元素的存储地址=数组的起始地址+(i-1)*每行的列数+j-1;此公式在任何情况下都正确;
(C)D[i][j]元素的存储地址=数组的起始地址+((j-1)*每行的列数+i-1)*单一元素占用存储单元的数目;
(D)D[i][j]元素的存储地址=数组的起始地址+(j-1)*每行的列数+i-1;此公式在任何情况下都正确;
答案:A
解释:
本题考查对存储器和二维数组的理解。
记住数组的下标是从0开始编号的。((i-1)*每行的列数+j-1)得到二维数组中,所求的元素的下标偏移量。((i-1)*每行的列数+j-1) *单一元素占用存储单元的数目得到地址的偏移量。再加上数组的起始地址,便可得到所求元素的地址。(A)正确。
详细内容请参考第七章视频“算法,程序与计算系统之灵魂”与第七章课件。
7.“树”是一种典型的数据结构,在很多算法中都应用树来组织相关的数据。树是组织层次型数据的一种存储结构,它将每一个数据称为一个数据元素。见下图I.示意,采用三个数组来存储树型数据,一个数组TreeElement[]存放数据元素本身,一个数组LeftPointer[]存放该数据元素的左侧子元素的存放地址(简称为左指针),另一个数组RightPointer[]存放该数据元素的右侧子元素的存放地址(简称为右指针)。参照图I.,回答下列问题。
图I.
(1)关于“树”这种数据结构,下列说法不正确的是_____。
(A)“树”既需要存储数据元素本身即数据,还需要存储数据元素之间的关系;
(B)“树”可以采用两个数组来组织树型数据,其中一个数组用于存储数据元素本身,另一个数组用于存储与该数据元素发生某种关系的另一个数据元素的存储位置;
(C)“树”可以采用三个数组来组织树型数据,其中一个数组用于存储数据元素本身,另外两个数组用于存储与该数据元素发生某种关系的另外两个数据元素的存储位置;
(D)不仅可以采用(B)(C)的方式组织树型数据,还有其他的方式;
(E)上述说法有不正确的。
答案:E
解释:
本题考查对树结构的理解。
“树”既需要存储数据元素本身即数据,还需要存储数据元素之间的关系。(A)的说法没有问题。用两个数组组织树形数据时,一个数组存放数据元素,另一个数组存储对应的父元素。用三个数组组织树形数据时,一个数组存放数据元素,剩下的两个数据,一个存放对应的左儿子,一个存放对应的右儿子。组织树形数据时,可以把每个元素当做一个节点,通过指针来指向其儿子。故(B)(C)(D)正确。(E)不正确。
详细内容请参考第七章视频“算法,程序与计算系统之灵魂”与第七章课件。
(2)参照上图(I),下列说法不正确的是_____。
(A)当数据元素不发生变化,而只是数据元素之间的关系发生变化时,可以通过调整数据元素对应的左指针数组或右指针数组中的值来完成;
(B)当数据元素不发生变化,而只是数据元素之间的关系发生变化时,既需要调整数据元素本身,又需要调整其对应的左指针数组或右指针数组中的值来完成;
(C)相同的数据元素,不同的左指针和右指针可以反映数据元素之间不同的关系;
(D)图(a)说明,一个数据元素最多只能有两个子元素,一个是左子元素,一个是右子元素;
(E)上述说法有不正确的。
答案:B
解释:
本题考查对树结构的理解。
“树”既需要存储数据元素本身即数据,还需要存储数据元素之间的关系。当数据元素不发生变化,而只是数据元素之间的关系发生变化时,数据本身是不需要调整的。(B)错误。其余说法均正确。
详细内容请参考第七章视频“算法,程序与计算系统之灵魂”与第七章课件。
(3)上图(I)表示的数据的逻辑关系,下列正确的是_____。
(A)图II.(a);
(B)图II.(b);
(C)图II.(c);
(D)图II.(d);
图II.
答案:D
解释:
本题考查对树结构的理解。
第一个元素值为100。其左指针指向的存储单元的内容为地址:00000000 00000010。该地址存储的数据为50。故第一个元素100的左儿子为50。一次类推,
展开阅读全文