北航六系大二算法设计与分析2007期末试题
一份《算法设计与分析》试卷+答案

2006-2007学年度第一学期计算机科学系《算法设计与分析》期末试卷(A)一对于下列各组函数,确定f(n)=O(g(n))是否成立。
(每题5分,共20分)1f(n)=3n,g(n)=nf(n)=O(g(n))成立,因为存在正的常数C和自然数n,使得N>=n时,有F(n)<=Cg(n)2f(n)=nlogn+n,g(n)=logn不成立!N>=n时,有f(n)>=og(n);属于f(n)=πg(n)这种情况3f(n)=log2n,g(n)=logn不成立!当logN>=1时,总有f(n)>=log n,属于f(n)=πg(n)这种情况!4f(n)=5,g(n)=log5成立!总存在一个正的常数C,使得f(n)<=Cg(n)1二分搜索法 int bin_seach ( int k[ ] , int n , int key ) { int low = 0 , high = n=1 , mid ; while ( low <= high ) { mid = ( low + high ) / 2 ; if ( key == k[ mid ] ) return mid ; if ( key > k[ mid ] ) low = mid + 1 ; else high = mid - 1 ; } return -1 ;} T(n)=n 2利用一维一级指针数组及二级指针输出二维数组元素。
#include "stdio.h" void main() { int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}}; int *arr[3]={a[0],a[1],a[2]}; int i,j,**p; p=arr; for(i=0;i<3;i++){for(j=0;j<4;j++)printf("%3d",a[i][j]));printf("%3d",*(&p[0][0]+i*4+j));printf("%3d",*(p[i]+j));printf("%3d",(*(p+i))[j]);printf("%3d",*(*(p+i)+j));printf("\n");}printf("\n");三 写出下列算法的时间复杂度函数.(每题5分,共10分)————————————装————————————————订}T(n)=12四根据给定的算法求出下列问题的解。
北航-工科数学分析2006-2007 期末试题

2006-2007学年第二学期期末考试试题数学分析一、 填空题 (每小题6分,共30分)1. 设向量场),,(222222y x x z z y F +++=,则_,____________________=F div ._______________________________=F rot 2.在曲面0:2=−Σ−z x e y 上点)2,1,1(处的法线方程是.________________________3.设}0,1|),{(22≥=+=y y x y x L ,则.___________2=∫L ds x4.锥面22y x z +=被圆柱面x y x 222=+截下的曲面的面积为._______________ 5.求极限._____________)1(lim 2200222=+∫∫→xx t x t x dt e x dt e二、 (本题满分10分)计算定积分∫−=10ln 1dx x x I .三、 (本题满分10分)计算∫∫∫V z dxdydz e ||,其中1:222≤++z y x V . 四、 (本题满分10分)设函数)(x f 在),(+∞−∞内具有一阶连续导数,L 是上半平面)0(>y 内的有向分段光滑曲线,其起点为),(b a ,终点为),(d c .记∫−++=L dy xy f y y x dx xy f y y I ]1)([)](1[1222,(1) 证明曲线积分I 与路径L 无关;(2) 当cd ab =时,求I 的值.(3)五、 (本题满分10分)求解微分方程0)sin ()(22=+−−dy y x dx y x .六、 (本题满分10分)计算∫∫Σ−+−xzdxdyxydzdx dydz x 48)1(22,其中Σ是由曲线)0(a y e x y ≤≤=绕x 轴旋转而成的旋转曲面,其法向量与x 轴正向的夹角恒大于2π.七、 (本题满分10分)计算∫−+−+−=L dzy x dy x z dx z y I )()()(222222,其中L 为平面1=++z y x 被三个坐标平面所截三角形Σ的边界,若从x 轴的正向看去,定向为顺时针方向.八、 (本题满分10分) 证明∫∞+−+18sin dx y x x e xy 在),0[+∞上一致收敛.九、 加选题(本题满分10分)设L 是不经过点)0,2(及点)0,2(−的分段光滑的简单闭曲线,试就L 的不同情形计算曲线积分∫ +++−+−−+ ++++−=L dy y x x y x x dx y x y y x y I .)2(2)2(2)2()2(22222222 其中L 取正向.1.解:0)()()(222222=+∂∂++∂∂++∂∂=y x zx z y z y x F div ,222222y x x z z y z y xk j i F rot +++∂∂∂∂∂∂= , ),,(2y x x z z y F rot −−−= , 或k y x j x z i z y F rot )(2)(2)(2−+−+−=.2.解:z x e y F −−=2, ),1,2(),,(22z x z x z y x e e F F F −−−=,)1,1,2(|),,()2,1,1(−==z y x F F F n , 于是所求法线方程为121121−=−=−−z y x 3.解:。
算法设计方案与分析课程期末试卷

回溯法:以深度优先方式系统搜索问题解的算法为回溯法,适合解组合数较大的问题。
分支限界法适合解决大量离散最优化的问题。
2、给定n件物品和一个背包,物品i的重量是wi,体积是vi<wi,vi均为整数),价值是pi;背包的容量为C,容积为D。一件物品只能整个放进背包中或不放进背包中,也不允许重复放入。0-1背包问题问应如何选择装入背包的物品,使得装入背包中的物品不超过背包容量容积限制,并且物品的总价值最大?设m(i,j,k>是背包容量为j,容积为k,可选择物品为1,2,…,i时0-1背包问题的最优值,请给出计算m(i,j,k>的递归关系式。
{
if(n > 0 && x >= a[0]>
{
int left = 0, right = n-1。
while(left < right>
{
int middle = (left + right + 1> / 2。
if(x < a[middle]>
right = middle - 1。
else left = middle。
8、设q<n,m)是将正整数n划分成最大加数不大于m的若干不同正整数之和的划分数,则q<n,m)为B。
<A)
1<n=1 || m=1)
q(n, n><n<m)
q<n,m)=1 + q(n, n-1><n = m)
q(n, m-2> +q(n-m,m><n > m > 1)
大学算法设计与分析课期末试题

一、填空题(选做5道,10分)1. 用矩阵幂的方法求斐波那契数,其运行时间为().2. 对于一个可以用动态规划法求解的问题,要求问题既要满足()的特性,又要具有大量的( ).3. 对于一个可以用贪心法求解的问题,不仅要求问题满足()的特性,还应证明其贪心策略的( ).4. 设有n 个栈操作(PUSH 、POP 、MULTIPOP )的序列,作用于初始为空的栈S .不区分三种操作,则每个操作的最坏运行时间为(),平摊运行时间为(). 5. 三种平摊分析的方法分别为()、()、().6. 四后问题的搜索空间为()树;0-1背包问题的搜索空间为()树;巡回售货员问题的搜索空间为()树.7. ()法的求解目标是找出解空间树中满足约束条件的所有解,而()法的求解目标则是找出满足约束条件的一个解,或是在满足约束条件的解中找出在某种意义下的最优解. 8. 回溯法一般以()优先的方式搜索解空间树,而分支限界法则一般以()优先或以最小耗费优先的方式搜索解空间树. 二、单项选择题 (10分)1. 下列关于排序算法的叙述,不正确的是?()A) 堆排序的最差情形运行时间为Θ(n lg n )B) 快速排序平均情形运行时间为Θ(n lg n ) C) 任何排序算法的最差情形运行时间都不可能比Ω(n lg n )更小D) 插入排序在最好情形下的运行时间为Θ(n )2. 对于课堂讲解的线性时间内找第i 小的元素的算法,()下列叙述中不正确的是?A) 算法第一步中可以按每五个元素一组找中位数;B) 算法第一步中可以按每七个元素一组找中位数;B) 算法第一步中不能按每三个元素一组找中位数;D) 如果要求的n 个元素的中位数,则中位数一定是第一步中找到的中位数中的某一个.3. 主方法可以求解满足形如下式的递推方程,()则下列关于方程中的约束中不准确的是?A) 对于系数a ,装订线内不要必须满足a≥ 1B) 对于系数b,必须满足b > 1C) 若对于常数ε>0,f(n)=O(n log b a-ε),则T(n)=Θ(n log b a)D) 若f(n)=O(n log b a),则T(n)=Θ(n log b a log n)4.下列哪些问题不能用贪心法求解?()A) 霍夫曼编码问题B) 单源最短路径问题C) 0-1背包问题D) 最小生成树问题可合并堆上可以不包含下列哪个操作?()A) DECREASE-KEY(H, x, k) B) UNION(H1, H2)C) INSERT(H, x) D) EXTRACT-MIN(H)5.不同堆上插入操作最差情形下的开销或平摊开销,()对二叉堆、二项堆和斐波那契堆,下列选项中描述错误的是?A) 二叉堆为Θ(lg n) B) 二项堆为O(lg n)C) 斐波那契堆为Θ(1)D) 三种堆的开销都是Θ(lg n)6.关于网络流的割,下列选项中错误的是?()割(S,T)是流网络G=(V,E)的一个划分,其中s∈S, t∈T.如果f 是G上的流,那么流经割的净流量为f(S,T),割(S,T)上的容量定义为c(S,T) .A) | f| ≤ c(S, T) B) f(S, T) = |f|C) f(s, V-s) = | f | D) f(S-s, V) = | f |7.下列随机算法一定有解但解不一定正确的是?()A) SherwoodB) LasVegas C) MonteCarloD) 三者都不是8.在快速排序算法中引入随机过程的主要目的是什么?()A) 改善确定性算法的平均运行时间B) 保证算法总能在O(n lg n)时间内结束C) 避免了算法最坏情况下的发生D) 改善了确定性算法最坏情形下的平均运行时间9.用Monte Carlo方法估计四后问题回溯算法的效率.()五次实验结果分别为<1,4,2>、<2,4,1,3>、<4,2>、<3,1,4,2>、<1,3>,则解空间中的结点数估计为?A) 16 B) 16.2 C) 17 D) 16.5三、社会名流(20分) Array在n个人中,一个被所有人知道但却不知道别人的人,被定义为社会名流.现在的问题是如果存在,试找出该社会名流.你可以使用的唯一方式是询问:“请问你知道那个人吗?”请给出提问次数为O(n)的算法,写出伪代码,分析算法的正确性,并给出算法运行时间的精确分析(即O(n)中隐藏的系数).(提示:当你问A是否认识B时,如果A认识B,则A不是社会名流;如果A不认识B,则B不是社会名流)四、地板覆盖(20分)用2*1的地板块覆盖3*n 的地面有多少种方案?如下图是一个覆盖的例子,函数fn 可用于求解这个问题,请说明fn 算法的正确性,并说明算法运行时间的上界和下界.int fn(int n) { if (n % 2 == 1) return 0。
算法设计与分析期末考试B卷

大学期末考试试卷B 卷(算法设计与分析)一、选择题(30分,每题2分)1、下面的算法段针对不同的自然数n 作不同的处理,其中函数odd (n) 当n 是奇数时返回true ,否则返回false ,while ( n > 1) if ( odd (n) ) n = 3 * n + 1;else n = n / 2;请问该算法所需计算时间的下界是 。
A .Ω(2n ) B .Ω(nlog n ) C .Ω(n !) D .Ω(logn )2、某体育馆有一羽毛球场出租,现在总共有10位客户申请租用此羽毛球场,每个客户所租用的时间单元如下同一时刻,该羽毛球场只能租借给一位客户,请问在这10位客户里面,体育馆最多能满足 位客户的需求。
P104 A .3 B .4 C .5 D .63、当一个确定性算法在最坏情况下的计算复杂性与其在平均情况下的计算复杂性有较大差别时,可以使用 来消除或减少问题的好坏实例间的这种差别。
A .数值概率算法 B .舍伍德算法 C .拉斯维加斯算法 D .蒙特卡罗算法4、将一个正整数n 表示成一系列正整数之和, n = n 1 + n 2 + … +n k (其中,n 1≥n 2≥ … ≥n k ≥1,k ≥1)正整数n 的一个这种表示称为正整数n 的一个划分。
正整数n 的不同的划分个数总和称为正整数n 的划分数,记作p (n );另外,在正整数n 的所有不同划分中,将最大加数n1不大于m 的划分个数记作q (n ,m )。
则当n=10时,p (n )= 。
A .q (8,8) B .1 + q (9,9) P12 C .2 + q (10,8) D .A ,B ,C 都正确5、对于含有n 个元素的子集树问题,最坏情况下其解空间的叶结点数目为 。
A .n!B .2nC .2n+1-1D .∑=ni i n 1!/! P1406、在棋盘覆盖问题中,对于2k ×2k 的特殊棋盘(有一个特殊方块),所需的L 型骨牌的个数是 A 。
《算法分析与设计》期末试题及参考答案

《算法分析与设计》期末试题及参考答案一、简要回答下列问题:1.算法重要特性是什么?1.确定性、可行性、输入、输出、有穷性2.2.算法分析的目的是什么?2.分析算法占用计算机资源的情况,对算法做出比较和评价,设计出额更好的算法。
3.3.算法的时间复杂性与问题的什么因素相关?3. 算法的时间复杂性与问题的规模相关,是问题大小n的函数。
4.算法的渐进时间复杂性的含义?4.当问题的规模n趋向无穷大时,影响算法效率的重要因素是T(n)的数量级,而其他因素仅是使时间复杂度相差常数倍,因此可以用T(n)的数量级(阶)评价算法。
时间复杂度T(n)的数量级(阶)称为渐进时间复杂性。
5.最坏情况下的时间复杂性和平均时间复杂性有什么不同?5. 最坏情况下的时间复杂性和平均时间复杂性考察的是n固定时,不同输入实例下的算法所耗时间。
最坏情况下的时间复杂性取的输入实例中最大的时间复杂度:W(n) = max{ T(n,I) } , I∈Dn平均时间复杂性是所有输入实例的处理时间与各自概率的乘积和:A(n) =∑P(I)T(n,I) I∈Dn6.简述二分检索(折半查找)算法的基本过程。
6. 设输入是一个按非降次序排列的元素表A[i:j] 和x,选取A[(i+j)/2]与x比较,如果A[(i+j)/2]=x,则返回(i+j)/2,如果A[(i+j)/2]<x,则A[i:(i+j)/2-1]找x,否则在A[ (i+j)/2+1:j] 找x。
上述过程被反复递归调用。
7.背包问题的目标函数和贪心算法最优化量度相同吗?7. 不相同。
目标函数:获得最大利润。
最优量度:最大利润/重量比。
8.采用回溯法求解的问题,其解如何表示?有什么规定?8. 问题的解可以表示为n元组:(x1,x2,……x n),x i∈S i, S i为有穷集合,x i∈S i, (x1,x2,……x n)具备完备性,即(x1,x2,……x n)是合理的,则(x1,x2,……x i)(i<n)一定合理。
算法设计与分析复习题目及答案_2

一。
选择题1、二分搜索算法是利用( A )实现的算法。
A、分治策略B、动态规划法C、贪心法D、回溯法2、下列不是动态规划算法基本步骤的是( A )。
A、找出最优解的性质B、构造最优解C、算出最优解D、定义最优解3、最大效益优先是( A )的一搜索方式。
A、分支界限法B、动态规划法C、贪心法D、回溯法4、在下列算法中有时找不到问题解的是( B )。
A、蒙特卡罗算法B、拉斯维加斯算法C、舍伍德算法D、数值概率算法5. 回溯法解旅行售货员问题时的解空间树是( B )。
A、子集树B、排列树C、深度优先生成树D、广度优先生成树6.下列算法中通常以自底向上的方式求解最优解的是( B )。
A、备忘录法B、动态规划法C、贪心法D、回溯法7、衡量一个算法好坏的标准是(C )。
A 运行速度快B 占用空间少C 时间复杂度低D 代码短8、以下不可以使用分治法求解的是(D )。
A 棋盘覆盖问题B 选择问题C 归并排序D 0/1背包问题9. 实现循环赛日程表利用的算法是( A )。
A、分治策略B、动态规划法C、贪心法D、回溯法10、下列随机算法中运行时有时候成功有时候失败的是(C )A 数值概率算法B 舍伍德算法C 拉斯维加斯算法D 蒙特卡罗算法11.下面不是分支界限法搜索方式的是( D )。
A、广度优先B、最小耗费优先C、最大效益优先D、深度优先12.下列算法中通常以深度优先方式系统搜索问题解的是( D )。
A、备忘录法B、动态规划法C、贪心法D、回溯法13.备忘录方法是那种算法的变形。
( B )A、分治法B、动态规划法C、贪心法D、回溯法14.哈弗曼编码的贪心算法所需的计算时间为( B )。
A、O(n2n)B、O(nlogn)C、O(2n)D、O(n)15.分支限界法解最大团问题时,活结点表的组织形式是( B )。
A、最小堆B、最大堆C、栈D、数组16.最长公共子序列算法利用的算法是( B )。
A、分支界限法B、动态规划法C、贪心法D、回溯法17.实现棋盘覆盖算法利用的算法是( A )。
《算法设计与分析》期末必考复习及答案题整理

《算法设计与分析》期末必考复习及答案题整理1、分治法的基本思想:是将一个规模为N的问题分解为K个规模较小的子问题,这些子问题互相独立且与原问题相同。
递归地解这些子问题,然后将各子问题的解合并得到原问题的解。
2、贪心选择性质:指所求问题的整体最优解可以通过一系列局部最优的选择,3、 Prim算法:设G=(V,E)是连通带权图,V={1,2,…,n}。
构造G的最小生成树的Prim算法的基本思想是:首先置S={1},然后,只要S是V的真子集,就作如下的贪心选择:选取满足条件i?S,j?V-S,且c[j]最小的边,将顶点j添加到S 中。
这个过程一直进行到S=V时为止。
4、什么是剪枝函数:回溯法搜索解空间树时,通常采用两种策略避免无效搜索,提高回溯法的搜索效率。
其一是用约束函数在扩展结点处剪去不满足约束的子树;其二是用限界函数剪去得不到最优解的子树。
这两类函数统称为剪枝函数。
6、分支限界法的基本思想:(1)分支限界法常以广度优先或以最小耗费(最大效益)优先的方式搜索问题的解空间树。
(2)在分支限界法中,每一个活结点只有一次机会成为扩展结点。
活结点一旦成为扩展结点,就一次性产生其所有儿子结点。
在这些儿子结点中,导致不可行解或导致非最优解的儿子结点被舍弃,其余儿子结点被加入活结点表中。
(3)此后,从活结点表中取下一结点成为当前扩展结点,并重复上述结点扩展过程,这个过程一直持续到找到所需的解或活结点表这空时为止。
5、什么是算法的复杂性:是该算法所需要的计算机资源的多少,它包括时间和空间资源。
6、最优子结构性质:该问题的最优解包含着其子问题的最优解。
7、回溯法:是一个既带有系统性又带有跳跃性的搜索算法。
这在问题的解空间树中,按深度优先策略,从根结点出发搜索解空间树。
算法搜索至解空间树的任一结点时,先判断该结点是否包含问题的解。
如果肯定不包含,则跳过对以该结点为根的子树的搜索,逐层向其祖先结点回溯;否则,进入该子树,继续按深度优先策略搜索。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、 (20分)判断题
请在正确的陈述前面括号中打√,在错误的陈述前面括号中打×。
(
)回溯法用深度优先或广度优先法搜索状态空间树。
(
)动态规划算法通过增加空间复杂性来降低时间复杂性。
( )f (n )= O (f (n ))
( )O (f (n ))+O (g (n )) = O (min{f (n),g (n )})
( )若求解问题p 的一个算法A 的复杂性为f(n) ,则p 的复杂性C(p ) f (n )。
( )拉斯维加斯算法有时不能给出问题的解,但只要给出解就是正确的。
( )快速排序的worst case 出现于输入数组恰好为已按非降序排列的情况(假设输出的排序结果也要求是非降序)。
(
)基于比较的排序问题的下界是(log )n 。
( )所有问题当中最难的一组问题被称为NP 完备 (NP-Complete) 问题。
( )P 类和NP 类问题的关系用NP P 来表示是错误的。
二、 (30分)简答题:
1.推导以下递推式的解:
T(n )=2 当n =2时
T(n )=2T(n -1)+n 当n>2时
2.是否存在具有最小绝对差界的求解地图着色问题的近似算法?若有,请写出
伪代码,并说明为什么其绝对差界已达最小。
3.请给出寻找数组A[1…n ]中是否有大于0的元素问题的最紧的下界,并说明这个下界是用了课上介绍的哪种或哪几种寻找问题下界的策略得来的。
4.按照增长率上升的顺序排列以下函数,即,若在你的排序结果中,函数A(n) 跟在 B(n)的后面,则说明应该满足B(n)是O (A(n)):
1()2n h n 1/32()3h n n 3()n h n n 4()2ln n h n n 1/55()ln h n n
F T F F T T F F T F T(n)=3*2^(n-1)-2-n , n>=2
1,2,3,4h5 h2 h1 h4 h3
trivial lower bounds information theoretic arguments adversary argument problem reduction
5.用回溯法求解以下SAT 问题,请画出搜索树,标明搜索树的分支策略和树中各节点代表的状态(化简的CNF 形式)。
P q r
(p q ) ( q r ) ( p r )
三、 (15分)设计一求解以下问题的分治算法,写出伪代码,分析其时间复杂性并与该问题的蛮力算法相比较:
问题描述:设有n=2k 个运动员要进行网球循环赛。
现要设计一个满足以下要求的比赛日程表:
(1)每个选手必须与其他n-1个选手各赛一次;
(2)每个选手一天只能参赛一次;
(3)循环赛在n-1天内结束。
请按此要求将比赛日程表设计成有n 行和n-1列的一个表。
在表中的第i 行,第j 列处填入第i 个选手在第j 天所遇到的选手。
其中1≤i≤n,1≤j≤n -1。
四、 (15分)写出用动态规划方法求两个序列的最长公共子序列算法的递推
公式、伪代码和时间复杂性,并用该算法手工计算以下X 和Y 的最长公共子序列:
X=abcbcc ,Y=cacbac
五、 (15分)设计一求解以下问题的贪心算法,写出伪代码,并分析其时间复杂性:
在一个N ×M 的方格阵中,每一格子赋予一个数(即为权)。
规定每次移动时只能向上或向右。
现试找出一条路径,使其从左下角至右上角所经过的权之和最大。
六、 (5分)设计一种策略,使在下面的游戏中,期望提问的平均次数最少
(请给出你得到这一策略的过程):
一个黑盒内共有1个红球,2个蓝球,3个绿球,4个黄球,5个黑球,6个白球,7个紫球。
有一个人从黑盒内随机拿出一个球,另一个人被蒙上眼睛,只能通过一连串用是或否来回答的问题来确定球的颜色,问该蒙眼人的提问策略。
Key is right
acbc
Huffman。