20091算法设计与分析课程期末试卷 A卷自测课案
- 格式:doc
- 大小:99.33 KB
- 文档页数:9
《算法分析与设计》期末试题及参考答案一、简要回答下列问题:1.算法重要特性是什么?2.算法分析的目的是什么?3.算法的时间复杂性与问题的什么因素相关?4.算法的渐进时间复杂性的含义?5.最坏情况下的时间复杂性和平均时间复杂性有什么不同?6.简述二分检索(折半查找)算法的基本过程。
7.背包问题的目标函数和贪心算法最优化量度相同吗?8.采用回溯法求解的问题,其解如何表示?有什么规定?9.回溯法的搜索特点是什么?10.n皇后问题回溯算法的判别函数place的基本流程是什么?11.为什么用分治法设计的算法一般有递归调用?12.为什么要分析最坏情况下的算法时间复杂性?13.简述渐进时间复杂性上界的定义。
14.二分检索算法最多的比较次数?15.快速排序算法最坏情况下需要多少次比较运算?16.贪心算法的基本思想?17.回溯法的解(x1,x2,……x n)的隐约束一般指什么?18.阐述归并排序的分治思路。
19.快速排序的基本思想是什么。
20.什么是直接递归和间接递归?消除递归一般要用到什么数据结构?21.什么是哈密顿环问题?22.用回溯法求解哈密顿环,如何定义判定函数?23.请写出prim算法的基本思想。
二、复杂性分析1、MERGESORT(low,high)if low<high;then mid←(low,high)/2;MERGESORT(low,mid);MERGESORT(mid+1,high);MERGE(low,mid,high);endifend MERGESORT2、procedure S1(P,W,M,X,n)i←1; a←0while i≤ n doif W(i)>M then return endifa←a+ii←i+1 ;repeatend3.procedure PARTITION(m,p)Integer m,p,i;global A(m:p-1)v←A(m);i←mlooploop i←i+1 until A(i) ≥v repeatloop p←p-1 until A(p) ≤v repeatif i<pthen call INTERCHANGE(A(i),A(p))else exitendifrepeatA(m) ←A(p);A(p) ←vEnd PARTITION4.procedure F1(n)if n<2 then return(1)else return(F2(2,n,1,1))endifend F1procedure F2(i,n,x,y)if i≤nthen call F2(i+1,n,y,x+y)endifreturn(y)end F25.procedure MAX(A,n,j)xmax←A(1);j←1for i←2 to n doif A(i)>xmax then xmax←A(i); j←i;endif repeatend MAX6.procedure BINSRCH(A,n,x,j)integer low,high,mid,j,n;low←1;high←nwhile low≤high domid←|_(low+high)/2_|case:x<A(mid):high←mid-1:x>A(mid):low←mid+1:else:j ←mid; returnendcase repeat j ←0 end BINSRCH三、算法理解1、写出多段图最短路经动态规划算法求解下列实例的过程,并求出最优值。
内部资料,转载请注明出处,谢谢合作。
《算法分析与设计》期末复习题(一)一、选择题1.应用Johnson法则的流水作业调度采用的算法是(D)A. 贪心算法B. 分支限界法C.分治法D. 动态规划算法2.Hanoi塔问题如下图所示。
现要求将塔座A上的的所有圆盘移到塔座B上,并仍按同样顺序叠置。
移动圆盘时遵守Hanoi塔问题的移动规则。
由此设计出解Hanoi塔问题的递归算法正确的为:(B)Hanoi塔3. 动态规划算法的基本要素为(C)A. 最优子结构性质与贪心选择性质B.重叠子问题性质与贪心选择性质C.最优子结构性质与重叠子问题性质D. 预排序与递归调用4. 算法分析中,记号O表示(B),记号Ω表示(A),记号Θ表示(D)。
A.渐进下界B.渐进上界C.非紧上界D.紧渐进界E.非紧下界5. 以下关于渐进记号的性质是正确的有:(A)A.f(n)(g(n)),g(n)(h(n))f(n)(h(n))=Θ=Θ⇒=ΘB. f(n)O(g(n)),g(n)O(h(n))h(n)O(f(n))==⇒=C. O(f(n))+O(g(n)) = O(min{f(n),g(n)})D. f(n)O(g(n))g(n)O(f(n))=⇔=6.能采用贪心算法求最优解的问题,一般具有的重要性质为:(A)A. 最优子结构性质与贪心选择性质B.重叠子问题性质与贪心选择性质C.最优子结构性质与重叠子问题性质D. 预排序与递归调用7. 回溯法在问题的解空间树中,按(D)策略,从根结点出发搜索解空间树。
A.广度优先B. 活结点优先 C.扩展结点优先 D. 深度优先8. 分支限界法在问题的解空间树中,按(A)策略,从根结点出发搜索解空间树。
A.广度优先B. 活结点优先 C.扩展结点优先 D. 深度优先9. 程序块(A)是回溯法中遍历排列树的算法框架程序。
A.B.C.D.10. 回溯法的效率不依赖于以下哪一个因素?(C )A.产生x[k]的时间;B.满足显约束的x[k]值的个数;C.问题的解空间的形式;D.计算上界函数bound的时间;E.满足约束函数和上界函数约束的所有x[k]的个数。
(1)用计算机求解问题的步骤:1、问题分析2、数学模型建立3、算法设计与选择4、算法指标5、算法分析6、算法实现7、程序调试8、结果整理文档编制(2)算法定义:算法是指在解决问题时,按照某种机械步骤一定可以得到问题结果的处理过程(3)算法的三要素1、操作2、控制结构3、数据结构算法具有以下5个属性:有穷性:一个算法必须总是在执行有穷步之后结束,且每一步都在有穷时间内完成。
确定性:算法中每一条指令必须有确切的含义。
不存在二义性。
只有一个入口和一个出口可行性:一个算法是可行的就是算法描述的操作是可以通过已经实现的基本运算执行有限次来实现的。
输入:一个算法有零个或多个输入,这些输入取自于某个特定对象的集合。
输出:一个算法有一个或多个输出,这些输出同输入有着某些特定关系的量。
算法设计的质量指标:正确性:算法应满足具体问题的需求;可读性:算法应该好读,以有利于读者对程序的理解;健壮性:算法应具有容错处理,当输入为非法数据时,算法应对其作出反应,而不是产生莫名其妙的输出结果。
效率与存储量需求:效率指的是算法执行的时间;存储量需求指算法执行过程中所需要的最大存储空间。
一般这两者与问题的规模有关。
经常采用的算法主要有迭代法、分而治之法、贪婪法、动态规划法、回溯法、分支限界法迭代法也称“辗转法”,是一种不断用变量的旧值递推出新值的解决问题的方法。
利用迭代算法解决问题,需要做好以下三个方面的工作:一、确定迭代模型。
在可以用迭代算法解决的问题中,至少存在一个直接或间接地不断由旧值递推出新值的变量,这个变量就是迭代变量。
二、建立迭代关系式。
所谓迭代关系式,指如何从变量的前一个值推出其下一个值的公式(或关系)。
迭代关系式的建立是解决迭代问题的关键,通常可以使用递推或倒推的方法来完成。
三、对迭代过程进行控制。
在什么时候结束迭代过程?这是编写迭代程序必须考虑的问题。
不能让迭代过程无休止地重复执行下去。
迭代过程的控制通常可分为两种情况:一种是所需的迭代次数是个确定的值,可以计算出来;另一种是所需的迭代次数无法确定。
chengcheng算法分析考试试卷(A卷)课程名称算法分析编号题号一二三四总分得分评阅人一、填空题(每小题3分,共30分)1、一个算法的优劣可以用空间复杂度与时间复杂度来衡量。
2、这种不断回头寻找目标的方法称为回溯法。
3、直接或间接地调用自身的算法称为递归算法。
4、 记号在算法复杂性的表示法中表示紧致界。
5、由分治法产生的子问题往往是原问题较小模式,这就为使用递归技术提供了方便。
6、建立计算模型的目的是为了使问题的计算复杂性分析有一个共同的客观尺度。
7、下列各步骤的先后顺序是②③④①。
①调试程序②分析问题③设计算法④编写程序。
8、最优子结构性质的含义是问题最优解包含其子问题最优解。
9、贪心算法从初始阶段开始,每一个阶段总是作一个使局部最优的贪心选择。
10、拉斯维加斯算法找到的解一定是正确的。
二、选择题(每小题2分,共20分)1、哈夫曼编码可利用( C )算法实现。
A、分治策略B、动态规划法C、贪心法D、回溯法2、下列不是基本计算模型的是( B )。
A、RAMB、ROMC、RASPD、TM3、下列算法中通常以自顶向下的方式求解最优解的是( C)。
A、分治法B、动态规划法C、贪心法D、回溯法chengcheng 4、在对问题的解空间树进行搜索的方法中,一个活结点有多次机会成为活结点的是( A )A、回溯法B、分支限界法C、回溯法和分支限界法D、动态规划5、秦始皇吞并六国使用的远交近攻,逐个击破的连横策略采用了以下哪种算法思想? BA、递归;B、分治;C、迭代;D、模拟。
6、FIFO是( A )的一搜索方式。
A、分支界限法B、动态规划法C、贪心法D、回溯法7、投点法是( B )的一种。
A、分支界限算法B、概率算法C、贪心算法D、回溯算法8、若线性规划问题存在最优解,它一定不在( C )A.可行域的某个顶点上 B.可行域的某条边上 C.可行域内部 D.以上都不对9、在一般输入数据的程序里,输入多多少少会影响到算法的计算复杂度,为了消除这种影响可用( B )对输入进行预处理。
华南农业大学期末考试试卷〔A卷〕2008学年第一学期考试科目:算法分析与设计考试类型:〔闭卷〕考试时间:120 分钟学号某某年级专业一、选择题〔20分,每题2分〕1.下述表达不正确的答案是。
A.n2/2 + 2n的渐进表达式上界函数是O(2n)B.n2/2 + 2n的渐进表达式下界函数是Ω(2n)C.logn3的渐进表达式上界函数是O(logn)D.logn3的渐进表达式下界函数是Ω(n3)2.当输入规模为n时,算法增长率最大的是。
A.5n B.20log2n C.2n2 D.3nlog3n3.T〔n〕表示当输入规模为n时的算法效率,以下算法效率最优的是。
A.T〔n〕= T〔n – 1〕+1,T〔1〕=1 B.T〔n〕= 2n2C.T〔n〕= T〔n/2〕+1,T〔1〕=1D.T〔n〕= 3nlog2n4.在棋盘覆盖问题中,对于2k×2k的特殊棋盘〔有一个特殊方块〕,所需的L型骨牌的个数是。
A.〔4k– 1〕/3 B.2k /3 C.4k D.2k5.在寻找n个元素中第k小元素问题中,假如使用快速排序算法思想,运用分治算法对n个元素进展划分,应如何选择划分基准?下面答案解释最合理。
A.随机选择一个元素作为划分基准B.取子序列的第一个元素作为划分基准C.用中位数的中位数方法寻找划分基准D.以上皆可行。
但不同方法,算法复杂度上界可能不同6. 有9个村庄,其坐标位置如下表所示:现在要盖一所邮局为这9个村庄服务,请问邮局应该盖在才能使到邮局到这9个村庄的总距离和最短。
A .〔4.5,0〕B .〔4.5,4.5〕C .〔5,5〕D .〔5,0〕7. n 个人拎着水桶在一个水龙头前面排队打水,水桶有大有小,水桶必须打满水,水流恒定。
如下说法不正确?A .让水桶大的人先打水,可以使得每个人排队时间之和最小B .让水桶小的人先打水,可以使得每个人排队时间之和最小C .让水桶小的人先打水,在某个确定的时间t 内,可以让尽可能多的人打上水D .假如要在尽可能短的时间内,n 个人都打完水,按照什么顺序其实都一样8. 分治法的设计思想是将一个难以直接解决的大问题分割成规模较小的子问题,分别解决子问题,最后将子问题的解组合起来形成原问题的解。
西北民族大学计算机科学与信息工程学院期末考试算法设计与分析试卷( A 卷)参考答案及评分标准专业: 课程代码:一、填空题(每空 1 分,共 25 分)1.输入,输出,确定性,有限性。
2。
某种程序设计语言的具体实现,有限性,无限循环中。
3.直接,间接,自身。
4.最坏情况,最好情况,平均情况,最坏情况。
5..备忘录方法。
6.深度优先策略,组合数较大。
7.数值概率算法、蒙特卡罗算法、拉斯维加斯算法、舍伍德算法。
8.整体最优考虑,局部最优选择。
9.最优子结构性质,子问题重叠性质。
1、通俗地讲,算法是指解决问题的方法或过程。
严格地讲,算法是满足下述性质的指令序列:(输入)、(输出)、(确定性)(有限性)。
2、程序(program)与算法不同。
程序是算法用(某种程序设计语言的具体)实现。
程序可以不满足算法的(有限性)性质。
例如操作系统,它是在(无限循环中)执行的程序。
3、(直接)或(间接)地调用(自身)的算法称为递归算法。
4、一般情况下,时间复杂度分为(最坏情况)、(最好情况)和(平均情况)。
但实践表明,可操作性最好且最有实际价值的是(最坏情况)下的时间复杂度。
5、动态规划法的变形是(备忘录方法)。
6、回溯法在问题的解空间树中,按(深度优先策略),它适用于求解(组合数较大)的问题。
7、概率算法可分为:(数值概率)算法、(蒙特卡罗)算法、(拉斯维加斯)算法、(舍伍德)算法。
8、贪心算法并不从(整体最优考虑)考虑,它所做出的选择只是在某种意义上的(局部最优选择)。
9、动态规划算法的基本要素是(最优子结构性质)和(子问题重叠性质)。
二、证明简答(共4题35分)1、合并排序的基本思想什么?递归的描述它的算法。
(10分)合并排序算法是用分治策略实现对n个元素进行排序的算法。
思想:将待排序元素分成大小大致相同的2个子集合,分别对2个子集合进行排序,最终将排好序的子集合合并成为所要求的排好序的集合。
合并排序算法可递归地描述:Public static void mergesort(comparable a[],int left,int right){If (left <right)Int i=(left+right)/2;Mergesort(a,left,i);Mergesort(a,i+1,right);Mergesort(a,b,left,i,right);Copy(a,b,left,right);}}2、二分搜索算法的基本思想是什么?描述它的算法,并讨论时间复杂性。
《算法设计与分析》试卷及答案算法设计与分析考试复习试卷《算法设计与分析》试卷1一、多项选择题(每空2分,共20分):1、以下关于算法设计问题的叙述中正确的是__________。
A、计算机与数值问题的求解——方程式求根、插值问题、数值积分、函数逼近等有关B、利用计算机无法解决非数值问题C、计算机在解决分类、语言翻译、图形识别、解决高等代数和组合分析等方面的数学问题、定理证明、公式推导乃至日常生活中各种过程的模拟等问题中,主要进行的是判断、比较,而不是算术运算D、算法设计与分析主要研究对象是非数值问题,当然也包含某些数值问题2、算法的特征包括_________。
A、有穷性B、确定性C、输入和输出D、能行性或可行性3、以下描述是有关算法设计的基本步骤:①问题的陈述②算法分析③模型的拟制④算法的实现⑤算法的详细设计⑥文档的编制,应与其它环节交织在一起其中正确的顺序是__________。
A、①②③④⑤⑥B、①③⑤②④⑥C、②④①③⑤⑥D、⑥①③⑤②④4、以下说法正确的是__________。
A、数学归纳法可以证明算法终止性B、良序原则是证明算法的正确性的有力工具C、x = 小于或等于x的最大整数(x的低限)D、x = 小于或等于x的最大整数(x的高限)5、汉诺塔(Hanoi)问题中令h(n)为从A移动n个金片到C 上所用的次数,则递归方程为__________,其初始条件为__________,将n个金片从A柱移到C柱上的移动次数是__________;设菲波那契(Fibonacci)数列中Fn为第n个月时兔子的对数,则有递归方程为__________,其中F1=F2=__________。
A、Fn=Fn-1+Fn-2B、h(n)= 2h(n-1)+1C、1D、h(1)= 1E、h(n)=2n-1F、06、在一个有向连通图中(如下图所示),找出点A到点B的一条最短路为____ ______。
A、最短路:1→3→5→8→10,耗费:20B、最短路:1→4→6→9→10,耗费:16。
算法设计与分析期末考试卷及答案a-CAL-FENGHAI.-(YICAI)-Company One1考生 信 息 栏 ______学院______系______ 专业 ______年级姓名______学号__装订线考生 信息栏______学院______系______ 专业 ______年级姓名______学号_装订线pro2(n) ex1(n/2) end if return end ex1 3.用Floyd 算法求下图每一对顶点之间的最短路径长度,计算矩阵D 0,D 1,D 2和D 3,其中D k [i, j]表示从顶点i 到顶点j 的不经过编号大于k 的顶点的最短路径长度。
三.算法填空题(共34分) 1.(10分)设n 个不同的整数按升序存于数组A[1..n]中,求使得A[i]=i 的下标i 。
下面是求解该问题的分治算法。
算法 SEARCH 输入:正整数n ,存储n 个按升序排列的不同整数的数组A[1..n]。
输出:A[1..n]中使得A[i]=i 的一个下标i ,若不存在,则输出 no solution 。
i=find ( (1) ) if i>0 then output i else output “no solution ” end SEARCH 过程 find (low, high) // 求A[low..high] 中使得A[i]=i 的一个下标并返回,若不存在,考生 信息栏______学院______系______ 专业 ______年级姓名______学号_____装订线《算法设计与分析》期考试卷(A)标准答案一. 填空题:1. 元运算 考 生 信息栏______学院______系______ 专业 ______年级姓名______学号_____装订线2. O3. ∑∈nD I I t I p )()(4. 将规模为n 的问题分解为子问题以及组合相应的子问题的解所需的时间5. 分解,递归,组合6. 在问题的状态空间树上作带剪枝的DFS 搜索(或:DFS+剪枝)7. 前者分解出的子问题有重叠的,而后者分解出的子问题是相互独立(不重叠)的8. 局部9. 高10. 归并排序算法11. 不同12. v=random (low, high); 交换A[low]和A[v]的值随机选主元13. 比较n二. 计算题和简答题:1. 阶的关系:(1) f(n)= O(g(n))(2) f(n)=Ω(g(n))(3) f(n)=Ω(g(n))(4) f(n)= O(g(n))(5) f(n)=Θ(g(n))阶最低的函数是:100阶最高的函数是:n 32. 该递归算法的时间复杂性T(n)满足下列递归方程:⎩⎨⎧>+===1n ,n log T(n/2)T(n)1n , 1T(n)2 将n=k 2, a=1, c=2, g(n)=n log 2, d=1代入该类递归方程解的一般形式得: T(n)=1+∑-=1k 0i i 22n log =1+k n log 2-∑-=1k 0i i =1+ k n log 2-2)1k (k -=n log 2122+n log 212+1 所以,T(n)= n log 2122+n log 212+1=)(log 2n Θ。
华南农业大学期末考试试卷(A卷)2008学年第一学期考试科目:算法分析与设计考试类型:(闭卷)考试时间:120分钟学号姓名年级专业一二三四总分一、选择题(20分,每题2分)1.下述表达不正确的是。
2nn) /2 + 2O(2A.n的渐进表达式上界函数是2nn) (2的渐进表达式下界函数是B.nΩ/2 + 23的渐进表达式上界函数是O(logn) .lognC33)(n的渐进表达式下界函数是D.lognΩ2.当输入规模为n时,算法增长率最大的是。
n n2n.3nlog 20log C.2nD A.5B.323.T(n)表示当输入规模为n时的算法效率,以下算法效率最优的是。
2 2n)= B .T(nn –1)+1,T(1)=1 (A.T(n)= T n= 3nlogn)D.T()+1,T (1)=1 )C.T(n= T(n/22kk的特殊棋盘(有一个特殊方块),所需的L在棋盘覆盖问题中,对于2型骨×24.牌的个数是。
k kkk 2 D. 4 B 4–1)/3 .2 /3 C.(A.5.在寻找n个元素中第k小元素问题中,若使用快速排序算法思想,运用分治算法对n个元素进行划分,应如何选择划分基准?下面答案解释最合理。
A.随机选择一个元素作为划分基准B.取子序列的第一个元素作为划分基准C.用中位数的中位数方法寻找划分基准D.以上皆可行。
但不同方法,算法复杂度上界可能不同16.有9个村庄,其坐标位置如下表所示:i 1 2 3 4 5 6 7 8 99 5 1 7 2 6 3 8 4 )x(i953178246)y(i现在要盖一所邮局为这9个村庄服务,请问邮局应该盖在才能使到邮局到这9个村庄的总距离和最短。
A.(4.5,0)B.(4.5,4.5)C.(5,5)D.(5,0)7.n个人拎着水桶在一个水龙头前面排队打水,水桶有大有小,水桶必须打满水,水流恒定。
如下说法不正确?A.让水桶大的人先打水,可以使得每个人排队时间之和最小B.让水桶小的人先打水,可以使得每个人排队时间之和最小C.让水桶小的人先打水,在某个确定的时间t内,可以让尽可能多的人打上水D.若要在尽可能短的时间内,n个人都打完水,按照什么顺序其实都一样8.分治法的设计思想是将一个难以直接解决的大问题分割成规模较小的子问题,分别解决子问题,最后将子问题的解组合起来形成原问题的解。
这要求原问题和子问题。
A.问题规模相同,问题性质相同B.问题规模相同,问题性质不同C.问题规模不同,问题性质相同D.问题规模不同,问题性质不同9.对布线问题,以下是不正确描述。
A.布线问题的解空间是一个图B.可以对方格阵列四周设置围墙,即增设标记的附加方格的预处理,使得算法简化对边界的判定C.采用广度优先的标号法找到从起点到终点的布线方案(这个方案如果存在的话)不一定是最短的D.采用先入先出的队列作为活结点表,以终点b为扩展结点或活结点队列为空作为算法结束条件10.对于含有n个元素的子集树问题,最坏情况下其解空间的叶结点数目为。
n?n+1n!/!in D.2C 2B n!A...-11?i答案:DACAD CACCB2二、填空题(10分,每题2分)1、一个算法复杂性的高低体现在计算机运行该算法所需的时间和存储器资源上,因此算法的复杂性有时间复杂性和空间复杂性之分。
2、出自于“平衡子问题”的思想,通常分治法在分割原问题,形成若干子问题时,这些子问题的规模都大致相同。
3、使用二分搜索算法在n个有序元素表中搜索一个特定元素,在最佳情况下,搜索的时间复杂性为O(1),在最坏情况下,搜索的时间复杂性为O(logn)。
4、已知一个分治算法耗费的计算时间T(n),T(n)满足如下递归方程:n?2O(1)?T(n)??2T(n/2)?O(n)n?2?解得此递归方可得T(n)= O(nlogn)。
5、动态规划算法有一个变形方法备忘录方法。
这种方法不同于动态规划算法“自底向上”的填充方向,而是“自顶向下”的递归方向,为每个解过的子问题建立了备忘录以备需要时查看,同样也可避免相同子问题的重复求解。
n log n 51 logn 4、、备忘录方法 2参考解答:1、时间、相同 3、三、简答题(40分,每题8分)1、(8分)写出下列复杂性函数的偏序关系(即按照渐进阶从低到高排序):nn2n310n!nn log nn23log n23nnn n!n10n log n log nn23参考解答:2、(8分)现在有8位运动员要进行网球循环赛,要设计一个满足以下要求的比赛日程表:3(1)每个选手必须与其他选手各赛一次;(2)每个选手一天只能赛一次;(3)循环赛一共进行n –1天。
请利用分治法的思想,给这8位运动员设计一个合理的比赛日程。
参考解答:1234567876825143687132453、(8分)某体育馆有一羽毛球场出租,现在总共有10位客户申请租用此羽毛球场,每个客户所租用的时间单元如下表所示,s(i)表示开始租用时刻,f(i)表示结束租用时刻,10个客户的申请如下表所示:i 1 2 3 4 5 6 7 8 9 106 3 11 1 8 5 8 3 5 s(i) 0101151348129f(i)76同一时刻,该羽毛球场只能租借给一位客户,请设计一个租用安排方案,在这10位客户里面,使得体育馆能尽可能满足多位客户的需求,并算出针对上表的10个客户申请,最多可以安排几位客户申请。
参考解答:将这10位客户的申请按照结束时间f(i)递增排序,如下表:i 1 2 3 4 5 6 7 8 9 1011 3 5 s(i) 1 8 3 0 6 5 8138610f(i)974115121)选择申请1(1,4)2)依次检查后续客户申请,只要与已选择的申请相容不冲突,则选择该申请。
直到所有申请检查完毕。
申请4(5,7)、申请8(8,11)、申请10(11,13)3)最后,可以满足:申请1(1,4)、申请4(5,7)、申请8(8,11)、申请10(11,13)共4个客户申请。
这已经是可以满足的最大客户人数。
4、(8分)对于矩阵连乘所需最少数乘次数问题,其递归关系式为:40i?j??m[i,j]??min{m[i,k]?m[k?1,j]?ppp}i?j?j1k?i?i?k?j p为的行,为矩阵AiAi…Aj所需的最少数乘次数,p其中m[i,j]为计算矩阵连乘i-1i矩阵Ai的列。
现有四个矩阵,其中各矩阵维数分别为:A A A A431230??4054050?10?3010请根据以上的递归关系,计算出矩阵连乘积AAAA所需要的最少数乘次数。
4321参考解答:m[1][1]?m[2][4]?ppp?0?8000?50?10?5?10500?401?m[1][4]?min m[1][2]?m[3][4]?ppp? 20000?6000?50?40?5?36000?402?34500??50?50?30?m[4][4]?ppp?27000?[1][3]m?430?105005、(8分)有这样一类特殊0-1背包问题:可选物品重量越轻的物品价值越高。
n=6,c=20,P=(4,8,15,1,6,3),W=(5,3,2,10,4,8)。
其中n为物品个数,c为背包载重量,P表示物品的价值,W表示物品的重量。
请问对于此0-1背包问题,应如何选择放进去的物品,才能使到放进背包的物品总价值最大,能获得的最大总价值多少?参考解答:因为该0-1背包问题比较特殊,恰好重量越轻的物品价值越高,所以优先取重量轻的物品放进背包。
最终可以把重量分别为2,3,4,5的三个物品放进背包,得到的价值和为15 + 8 + 6 + 4 = 33,为最大值。
四、算法设计题(30分,前三题每题8分,最后一题6分)1、【最优服务次序问题】(8分)——提示:此题可采用贪心算法实现问题描述:设有n个顾客同时等待一项服务,顾客i需要的服务时间为ti,1<=i<=n。
应该如何安排n个顾客的服务次序才能使平均等待时间达到最小?(平均等待时间是n个顾客等待服务时间的总和除以n)。
参考解答:贪心策略:最短服务时间优先。
将n个顾客的服务时间ti按照由小到大排序,n个顾客的服务调度方案即为排序后的顺序,即可使得平均等待时间最小。
5评分准则:1)答到使用贪心算法,并且说明贪心的策略是短服务优先,本题即可得满分;2)仅说明使用贪心算法,但未说明贪心策略,答题不完整,扣2分以上;3)其它情况酌情考虑。
2、【Gray码构造问题】(8分)——提示:此题可采用分治递归算法实现n问题描述:2的序列,满足:“格雷码”是一个长度为(a)每个元素都是长度为n比特的串(b)序列中无相同元素(c)连续的两个元素恰好只有1个比特不同例如:n=2时,格雷码为{00,01,11,10}。
Gray码是一种编码,这种编码可以避免在读取时,因各数据位时序上的差异造成的误读。
格雷码在工程上有广泛应用。
但格雷码不便于运算,请你设计一种构造方法,输入长度序列n,输出格雷码(你只要做出一种构造方案即可,格雷码并不唯一)。
参考解答:此题可用分治法解决。
当n=1时,输出格雷码{0, 1}nn22个码序列。
此时,将问题一分为二,,即共有n>1时,格雷码的长度为当位n-11。
剩下即上半部分和下半部分。
上半部分最高位设为0,下半部分最高位设为的格雷码的构造采用递归的思路。
评分准则:答到使用分治算法,并且推导出分治算法的过程,边界设定清晰(即当仅输1) 1位的格雷码如何处理),本题即可得满分;出说明使用分治算法,但漏边界条件,扣2分以上;2) 3)其它情况酌情考虑。
3、【最长上升子序列问题】(8分)——提示:此题可采用动态规划算法实现(a,a,,a)1?N?1000。
我们可以得到一些递增上,对于给定的一个序列N12(a,a,1?i?i?,a)?i?N。
比如,,对于序列这里升的子序列(1, 7, 3, 5, K22ii1iK19, 4, 8),有它的一些上升子序列,如(1, 7), (3, 4, 8)等等。
这些子序列中最长的长度是4,6比如子序列(1, 3, 5, 8)。
你的任务:就是对于给定的序列,求出最长上升子序列的长度。
要求写出你设计的算法思想及递推函数的公式表达。
f(i)a[i]元素结尾的序列,获得的表示:从左向右扫描过来直到以参考解答:设1?i?n]a[i)元素(。
最长上升子序列的长度,且子序列包含1i?1??f(i)?max{f(j)?1:当a[i]?a[j];1?j?i}i?1??1i?1;?j(1?j?i),都有a[i]??a[j]?f(i)f(1)f(2)f(i?1)中找最大的一个值,再加即,1……到,。
或者就是从是1。
主要是看a[i]这个元素能否加入到之前已经获得的最长上升子序列,如果能加入,是之前已获得的最长上升子序列长度加一;如果不能加入,就取这最后一个元素作为一个单独子序列,长度为1。