北航研究生算法(208精心整理)
一:判断题
1、一个正确的算法,对于每个合法输入,都会在有限的时间内输出一个满足要求的结果。(对)
2、NP完全问题比其他所有NP问题都要难。(错)
3、回溯法用深度优先法或广度优先法搜索状态空间树。(错,仅深度优先)
4、在动态规划中,各个阶段所确定的策略就构成一个策略序列,通常称为一个决策。(错)
5、P类和NP类问题的关系用P?NP来表示是错误的。(错)
6、若近似算法A求解某极小化问题一实例的解为Sa,且已知该问题的最优解为Sa/3,则该近似算法的性能比为3。(错)
7、通常来说,算法的最坏情况的时间复杂行比平均情况的时间复杂性容易计算。(对)
8、若P2多项式时间转化为(polynomial transforms to)P1,则P2至少与P1一样难。(错)
9、快速排序算法的平均时间复杂度是O(nlogn),使用随机化快速排序算法可以将平均时间复杂度降得更低。(错)
10、基于比较的寻找数组A[1,…,n]中最大元素的问题下届是Ω(n/3)。(错)
11、O(f(n))+O(g(n))=O(min{f(n),g(n)})(错)
12、若f(n)=Ω(g(n)),g(n)=Ω(h(n)),则f(n)=Ω(h(n))(对)
13、若f(n)=O(g(n)),则g(n)=Ω(f(n))(对)
14、贪婪技术所做的每一步选择所产生的部分解,不一定是可行性的。(错)
15、LasVegas算法只要给出解就是正确的。(对)
16、一个完全多项式近似方案是一个近似方案{Aε},其中每一个算法Aε在输入实例I的规模的多项式时间内运行。(错)
二:简答
1、二叉查找树属于减治策略的三个变种中的哪一个的应用?什么情况下二叉查找树表现出最差的效率?此时的查找和插入算法的复杂性如何?
答:减治策略有3个主要的变种,包括减常量、减常数因子和减可变规模。(1) 二叉查找树属于减可变规模变种的应用。(2) 当先后插入的关键字有序时,构成的二叉查找树蜕变为单支树,树的深度等于n,此时二叉查找树表现出最差的效率,(3) 查找和插入算法的时间效率都属于Θ(n)。
2、何谓伪多项式算法?如何将一Monte Carlo算法转化为Las Vegas算法?
答:若一个数值算法的时间复杂度可以表示为输入数值N的多项式,但其运行时间与输入数值N的二进制位数呈指数增长关系,则称其时间复杂度为伪多项式时间。
Las Vegas算法不会得到不正确的解。一旦用拉斯维加斯算法找到一个解,这个解就一定是正确解。但有时用拉斯维加斯算法找不到解。
Monte Carlo算法每次都能得到问题的解,但不保证所得解的准确性
转化:可以在Monte Carlo算法给出的解上加一个验证算法,如果正确就得到解,如果错误就不能生成问题的解,这样Monte Carlo算法便转化为了Las Vegas算法。
3、构造AVL树和2-3树的主要目的是什么?它们各自有什么样的查找和插入的效率?
答:(1)当先后插入的关键字有序时,构成的二叉查找树蜕变为单支树,树的深度等于n,此时二叉查找树表现出最差的效率,为了解决这一问题,可以构造AVL树或2-3树,使树的深度减小。一棵AVL树要求它的每个节点的左右子树的高度差不能超过1。2-3树和2-3-4树允许一棵查找树的单个节点不止包含一个元素。(2) AVL树在最差情况下,查找和插入操作的效率属于Θ(lgn)。2-3树无论在最差还是平均情况下,查找和插入的效率都属于Θ(log n)。
4、写出0/1背包问题的一个多项式等价(Polynomial Equivalent)的判定问题,并说明为什么它们是多项式等价的。
答:0/1背包问题:从M件物品中,取出若干件放在空间为W的背包里,给出一个能获得最大价值的方案。每件物品的体积为W1,W2……Wn,与之相对应的价值为P1,P2……Pn。+
判定问题I:从M件物品中,取出若干件放在空间为W的背包里,是否存在一个方案,所获价值≥P*?。每件物品的体积为W1,W2……Wn,与之相对应的价值为P1,P2……Pn。
若判定问题I存在多项式时间的解法,则反复调用该算法就可以在多项式时间内解决0/1背包的优化问题。因而这个判定问题与原问题多项式等价。
5、下面问题是否属于NP问题?为什么?
问题表述:给定图中的两个点、,整数和,图中每条边的长度及便利这条边的时间,问图中是否存在一条由到的路径,使得其长度大于,且遍历时间小于?
答:这个问题属于NP问题。因为若给出该问题的一个解,可以在多项式时间内检验这个解的正确性。如给出一条由p到q的路径,可以在多项式时间内计算出它的长度及遍历时间,然后分别与C和t进行比较,从而可以判断这个解的对错。
分治题
1.写出一个求解下列问题的分治算法,推导其时间复杂性并与蛮力法相比较。
给定互不相等的n个数的一个序列,若其中某两个数和的关系为:且,则称和是逆序的。要求计算该序列中的逆序个数,即具有逆序关系的元素对的总数目。
解:/** *求解n个数的一个序列,具有逆序关系的元素对的总数目*/
count = 0; //逆序元素对的全局计数变量
mergeInvertedPairs(A,low,mid,high) {
i = low;
j = mid+1;
k = low;
tmp[n]; //用于归并排序的辅助数组
while i <= mid && j <= high {
if (A[i] > A[j]) {
tmp[k] = A[j++];
count += (mid-i+1); //相比归并排序,就多了这一条语句
} else {
tmp[k] = A[i++];
}
k++;
}
while i <= mid {
tmp[k++] = A[i++];
}
while j <= high {
tmp[k++] = A[j++];
}
for (j = low; j <= high; j++) {
A[j] = tmp[j];
}
}
findInvertedPairs(A[], low, high) {
if (low < high) {
mid = (low+high) / 2;
findInvertedPairs(A,low,mid);
findInvertedPairs(A,mid+1,high);
mergeInvertedPairs(A,low,mid,high);
}
算法思路:以归并排序为基础,在两两集合合并的时候如果前一个集合的元素a[i]>a[j],那么说明需要调整次序,逆序数num=num+mid-i。
时间复杂度的迭代公式为
11;
(n)
2(n/2)(n)n1;
n
T
T O
=
?
=?
+>
?
因此算法的时间复杂度为T(n)=O(nlogn);
蛮力法的时间复杂度为O(n2),当n数目较大时,分治法计算规模远小于蛮力法。
2.为一个整数序列,中的整数如果在中出现次数多余,那么称为多数元素。例如,
在序列中3是多数元素,因为出现了4次,大于。求A的多数元素问题的蛮力算法复杂性如何?设计一个具有变治思想的算法,提高蛮力算法的效率,写出伪代码并分析其事件复杂性。
2. num <- src[0];
count <-0;
for i <-0 to n-1do
{
if(num == src[i])
{
count++;
}
else
{
count--;
if(count <0)
{
num <- src[i];
count = 0;
}
}
}
采用减治的思想每一个减去一个元素,时间复杂度为O(n),蛮力法的时间复杂度为O(n2)。
动态规划题
1.
已知:对每个月来讲,生产一批产品的固定成本费为3(千元),若不生成,则为零。每生产单位产品的成本费为1(千元)。同时,在任何一个月内,生产能力所允许的最大生产批量为不超过6个单位。
又知:每单位产品的库存费用为每月0.5(千元),同时要求在第一个月开始之初,及在第四个月
末,均无产品库存。
问:在满足上述条件下,该厂应如何安排各个时期的生产与库存,使所花的总成本费用最低?写出你所设的状态变量、决策变量、状态转移方程与递推关系式,和手工求解的详细步骤及结果。
解:设阶段序数k表示月份,状态变量x k为第k个月初拥有的单位产品数量,亦为第k-1月末时的单位产品数量,决策变量u k为第k个月生产的单位产品数量,c k为第k月份需要的产品数量,这里x k和u k均取离散变量。
状态转移方程为: , k =1,2,3,4; 且x1=0。
k段允许决策集合为: k = 1,2,3;
当k=4时,。
设为第k月的成本费,单位为(千元),则,
故指标函数为
令表示为由出发采用最优生产方案到第4个月结束这段期间的产品成本。
根据最优化原理,则有递推公式:
其中:
逆序计算的详细步骤如下:
(1)当k=4时,
(2)当k=3时,因为,且所以有:当此时在处取得最小值。当,此时在处取得最小值。当,此时在处取得最小值。
当,此时,在处取得最小值。
当,此时,在处取得最小值。
当,此时,在处取得最小值。
当,此时,在处取得最小值。
(3)当k=2时,因为,且所以有:
当时,,在处取得最小值。
当时,,且在处取得最小值。
当时,,在处取得最小值。
当时,,且在处取得最小值。
当时,,且在处取得最小值。
当时,,且在处取得最小值。
当时,,且在处取得最小值。
(4)当k=1时,因为,所以有:
当,,且在处取得最小值。
综上所述,最优的库存方案为:第一月生产5单位产品,第二月和第四月不生产,第三月生产6单位产品。
2.用动态规划方法手工求解以下问题
有8万元的投资可以投给3个过目,每个项目在不同筒子数额下(以万元为单位)的利润如下表
请安排投资计划,使总的利润最大。
写出你所设的状态变量、决策变量、状态转移方程与递推关系式和手工求解的详细步骤及结构。
解:状态变量:x k 表示留给项目k..n的投资额,其中n为项目总个数,k=1..n.
决策变量:u k 表示投给项目k的投资额.
允许决策集合:
状态转移方程:
递推关系式:
其中,表示项目k的投资额为u k时的盈利.
针对本题,n = 3,x k最大取8
手工详解过程:
1. 初始化k = 3
2. k = 2
3. k = 1
最终结果:给项目1投资4万元,项目2投资4万元,项目3不投资,将获得最大利润140万元.
线路题的某种深搜解法:
1)可以根据线路(l1,l2,...,lm)的取舍构建一棵m层二叉搜索树。第i层的所有左分支表示铺设线路li,右分支则表示不铺设。如果存在可行解,遍历此二叉搜索树即可找到最优解。
2)
前进:当前节点未被剪枝并且仍有子节点即可继续前进。
分支:先遍历左分支,后遍历右分支。
回溯:左右分支都被遍历时返回父节点。
剪枝:
剪枝条件如下:
1。有环路
2。当前地井数 + 地井数下界 > UMAX
3。当前跨区铺设线路数 + 跨区铺设线路数下界 > DMAX
4。当前费用 + 费用下界 >= 已知最优方案的费用
3)
子问题的下界为费用下界、地井数下界、跨区线路数下界。费用下界是根据剩余站点数量定义的,累计最小的路线花费即可得到。由于限制被极度弱化,所以非常粗糙,但是正确有效。另外两个下界也类似。父问题的上界是已知最优方案的费用,显然正确有效。
4)
按费用从小到大排序所有路线l1,l2,...,lm
计算子问题下界:
1。费用下界:剩余站点数量->最小花费#累计最小的线路花费即可得到,下同
2。地井数下界:剩余站点数量->最小地井数
3。跨区线路数下界:剩余站点数量->最小跨区线路数
search(空集, l1)
返回最优结果
def search(线路集合S,当前线路l):
判断线路集合S是否合格,条件如下:
1。无环路
2。当前地井数 + 地井数下界 <= UMAX
3。当前跨区铺设线路数 + 跨区铺设线路数下界 <= DMAX
4。当前费用 + 费用下界 < 已知最优方案的费用
如果合格:
当前网络已经覆盖所有站点:
记S为已知最优
否则若剩下的线路数有可能使所有站点构成网络:
search(S ∪ {l}, l的下一条路线)
search(S, l的下一条路线)
税费题的某种深搜解法:
1)
可以根据除A外的51个国家定义一棵若干层二叉搜索树。每个节点的左分支表示选择其代表的国家为下一个贸易顺序上的国家,右分支则表示不选择。构造搜索树需要两个辅助变量,之前的贸易顺序S(s为S的最后一个国家)和这一轮否决的国家V。任取可以和s国贸易的国家c(不属于S和V)置于树的当前生成位置,然后用(S' = 和V' = 空集)生成左子树,用(S' = S和V' = V ∪ {c})生成右子树。如果c不存在或者s = B则终止当前子树的生成。如此反复可以建立一棵二叉搜索树。
2)
前进:当前节点未被剪枝并且仍有子节点即可继续前进。
分支:先遍历左分支,后遍历右分支。
回溯:左右分支都被遍历时返回父节点。
剪枝:
剪枝条件如下:
1。当前税费 + s国与B国贸易的最小税费 >= 已知最优方案的税费
2。当前时间 + s国与B国贸易的最短时间 > t
3)
子问题的下界为税费下界和时间下界,均由dijkstra算法算法得到,表示某国与B国贸易的最小税费和最短时间。两个结果均由弱化限制的方法得到,所以是正确的,计算复杂度也不高,当然有效。
父问题的上界是已知最优方案的税费,显然正确有效。
4)
使用dijkstra算法得到子问题下界:
1。税费下界:某国与B国贸易的最小税费,顺便记录对应的时间和贸易顺序
2。时间下界:某国与B国贸易的最短时间
search()
返回最优结果
def search(贸易顺序S):
令s为S的最后一个国家
判断S是否合格,条件如下:
1。当前税费 + s国与B国贸易的最小税费 < 已知最优方案的税费
2。当前时间 + s国与B国贸易的最短时间 <= t
如果合格:
当前时间 + s国与B国贸易的最小税费对应的时间 <= t:
记为已知最优否则对所有可以与s国贸易的国家c:
search()
北航2010-2011年研究生数值分析期末模拟试卷1-3
数值分析模拟试卷1 一、填空(共30分,每空3分) 1 设??? ? ??-=1511A ,则A 的谱半径=)(a ρ______,A 的条件数)(1A cond =________. 2 设 ,2,1,0,,53)(2==+=k kh x x x f k ,则],,[21++n n n x x x f =________, ],,[321+++n n n n x x x x f ,=________. 3 设?????≤≤-++≤≤+=2 1,121 0,)(2 323x cx bx x x x x x S ,是以0,1,2为节点的三次样条函数,则b=________,c=________. 4 设∞=0)]([k k x q 是区间[0,1]上权函数为x x =)(ρ的最高项系数为1的正交多项式族,其中1)(0=x q ,则 ?=1 )(dx x xq k ________,=)(2 x q ________. 5 设???? ??????=11001a a a a A ,当∈a ________时,必有分解式,其中L 为下三角阵,当 其对角线元素)3,2,1(=i L ii 满足条件________时,这种分解是唯一的. 二、(14分)设4 9,1,41,)(2102 3 === =x x x x x f , (1)试求)(x f 在]4 9,41[上的三次Hermite 插值多项式)(x H 使满足 2,1,0),()(==i x f x H i i ,)()(11x f x H '='. (2)写出余项)()()(x H x f x R -=的表达式. 三、(14分)设有解方程0cos 2312=+-x x 的迭代公式为n n x x cos 3 2 41+ =+, (1) 证明R x ∈?0均有? ∞ →=x x n x lim (? x 为方程的根); (2) 取40=x ,用此迭代法求方程根的近似值,误差不超过,列出各次迭代值; (3)此迭代的收敛阶是多少?证明你的结论. 四、(16分) 试确定常数A ,B ,C 和,使得数值积分公式 有尽可能高的代数精度. 试问所得的数值积分公式代数精度是多少?它是否为Gauss 型的?
全日制工程硕士研究生培养方案-北航研究生院-北京航空航天大学
大型飞机高级人才培养班 航空工程全日制工程硕士研究生培养方案 一、适用类别或领域 航空工程(085232) 二、培养目标 材料工程、电子与通信工程、控制工程、航空工程领域全日制工程硕士 (以下简称航空工程等领域全日制工程硕士)是与以上各工程领域任职资格相联系的专业学位,主要为国民经济和国防建设等领域培养应用型、复合型高层次工程技术和工程管理人才。大飞机班旨在探索一条“以国家大型项目人才需求为索引,培养具有献身精神、团结协作精神、开拓创新精神的设计型和复合型人才”的研究生培养新模式,是北航研究生培养体系的一部分。 航空工程等领域全日制工程硕士培养的基本要求是: 1、坚持党的基本路线,热爱祖国、遵纪守法、品行端正、诚实守信、身心健康,具有良好的科研道德和敬业精神。 2、在本领域掌握坚实的基础理论和系统的专门知识,有较宽的知识面和较强的自立能力,具有大飞机设计、制造、运营、管理等领域需求的创造能力和工程实践能力。 3、掌握一门外国语。 三、培养模式及学习年限 1.航空工程等领域全日制工程硕士研究生培养实行导师负责制,或以导师为主的指导小组制,负责制订硕士研究生个人培养计划,选课、组织开题报告、论文中期检查、指导科学研究和学位论文,并与中国商飞、第一飞机设计研究院、西飞公司等航空企业联合培养,实行导师组指导。 2.硕士研究生一般用1学年完成课程学习,课程学习实行学分制,具体学习、考核及管理工作执行《北京航空航天大学研究生院关于研究生课程学习管理规定》。 3.专业实习是全日制工程硕士研究生培养中的重要环节,全日制工程硕士研究生在学期间,应保证不少于0.5年的工程实践。 4.学位论文选题应来源于航空工程等领域工程技术背景。鼓励实行双导师制,其中第一导师为校内导师,校外导师应是与本工程领域相关的专家,也可以根据学生的论文
北航考研991考试大纲
991数据结构与C语言程序设计考试大纲(2013版)2013年《数据结构与C语言程序设计》考试内容包括“数据结构”与“C语言程序设计”两 门课程的内容,各占比例50%,试卷满分为150分。 《数据结构》部分 指定参考书:《数据结构教程(第二版)》唐发根编著北京航空航天大学出版社 一、概述 1.数据的逻辑结构与存储结构的基本概念; 2.算法的定义、基本性质以及算法分析的基本概念,包括采用大 形式表示时间复杂度和空间复杂度。 二、线性表 1.线性关系、线性表的定义,线性表的基本操作; 2.线性表的顺序存储结构与链式存储结构(包括单(向)链表、循环链表和双向链表)的构造原理; 3.在以上两种存储结构的基础上对线性表实施的基本操作,包括顺序表的插入与删除、链表的建立、插入与删除、查找等操作对应的算法设计(含递归算法的设计)。 三、堆栈与队列 1.堆栈与队列的基本概念与基本操作; 2.堆栈与队列的顺序存储结构与链式存储结构的构造原理; 3.在不同存储结构的基础上对堆栈与队列实施插入与删除等基本操作的算法设计; 4.堆栈和队列在解决实际问题中应用。 四、树与二叉树 1.树与二叉树的基本概念,基本特征、名词术语; 2.完全二叉树与满二叉树的基本概念,二叉树的基本性质; 3.二叉树与树、树林之间的转换; 4.二叉树的顺序存储结构与二叉链表存储结构; 5.二叉树的前序遍历、中序遍历、后序遍历和按层次遍历,以及在二叉链表基础上各种遍历算法(重点为非递归算法)的设计与应用; 6.二叉排序树的基本概念、建立(插入)、查找与平均查找长度ASL的计算; 7.哈夫曼(Huffman)树的基本概念,哈夫曼树的构造与带权路径长度(WPL)的计算。 五、图 1.图的基本概念、名词术语; 2.图的邻接矩阵存储方法和邻接表(含逆邻接表)存储方法的构造原理及特点; 3.图的深度优先搜索与广度优先搜索; 4.最小(代价)生成树、最短路径、AOV网与拓扑排序以及AOE网与关键路径的基本概念与求解过程。 六、文件及查找 1.顺序查找法以及平均查找长度(ASL)的计算; 2.折半查找法以及平均查找长度(ASL)的计算,包括查找过程对应的“判定树”的构造; 3.B-树和B+树的基本概念,B-树的插入与查找; 4.散列(Hash)表的构造、散列函数的构造,散列冲突的基本概念、处理散列冲突的基本方法以
北航计算机考研大纲 2005-2008
北航2008年961计算机专业综合考试大纲 一、考试组成 961计算机专业综合共包括四门课程的内容:计算机组成原理、数据结构、操作系统、数理逻辑,分别占40分、40分、40分、30分。 二、计算机组成原理 参考书:《计算机组成原理》,高等教育出版社,唐朔飞编著 1.存储系统 ① 主存储器:存储单元电路及其工作原理、存储芯片结构及其工作原理、DRAM的刷新原理和刷新 方式、存储器的扩展方法。 ② 高速缓冲存储器:Cache的基本结构和工作原理、Cache的地址映射方式、Cache的替换策略。 ③ 辅助存储器:磁盘存储器的结构、访问特征和性能参数计算。 2.指令系统 ① 指令格式:机器指令的一般格式以及指令字中各字段的作用和特点。 ② 寻址方式:常见寻址方式的有效地址计算方法、寻址范围、作用和特点。 ③ 指令系统的设计:指令格式设计的相关因素及基本方法、扩展操作码技术。 3.CPU ① CPU的功能和结构:CPU的基本功能、内部结构、数据通路、控制信号。 ② 控制单元的功能:指令周期、多级时序系统、控制方式、指令执行过程的微操作流程分析。 ③ 控制单元的设计:微程序控制器的结构和工作原理、微指令的格式和编码方式、微程序设计。 4.输入输出技术 ① 总线:总线的分类、总线的判优(仲裁)控制方式、总线的通信控制方式。 ② I/O控制方式:中断响应与中断处理、DMA方式的工作原理。 三、数据结构 参考书:《数据结构教程》(第二版),唐发根编著,北京航空航天大学出版社(第3次印刷) 1.线性表 ① 线性关系,线性表的定义,线性表的基本操作; ② 线性表的顺序存储结构与链式存储结构(单链表、循环链表和双向链表)的构造原理; ③ 在以上两种存储结构的基础上对线性表实施的基本操作对应的算法设计。 2.堆栈与队列 ① 堆栈与队列的基本概念,基本操作; ② 堆栈与队列的顺序存储结构与链式存储结构的构造原理; ③ 在以上两种存储结构的基础上对堆栈与队列实施插入与删除等基本操作的算法设计。
北航2010-2015年研究生数值分析报告期末模拟试卷与真题
数值分析模拟卷A 一、填空(共30分,每空3分) 1 设???? ??-=1511A ,则A 的谱半径=)(a ρ______,A 的条件数)(1A cond =________. 2 设 ,2,1,0,,53)(2==+=k kh x x x f k ,则],,[21++n n n x x x f =________, ],,[321+++n n n n x x x x f ,=________. 3 设?????≤≤-++≤≤+=2 1,1210,)(2323x cx bx x x x x x S ,是以0,1,2为节点的三次样条函数,则b=________,c=________. 4 设∞=0)]([k k x q 是区间[0,1]上权函数为x x =)(ρ的最高项系数为1的正交多项式族,其中1)(0=x q ,则?=10)(dx x xq k ________,=)(2x q ________. 5 设??????????=11001a a a a A ,当∈a ________时,必有分解式,其中L 为下三角阵,当 其对角线元素)3,2,1(=i L ii 满足条件________时,这种分解是唯一的. 二、(14分)设4 9,1,41,)(21023 ====x x x x x f , (1)试求)(x f 在]4 9 ,41[上的三次Hermite 插值多项式)(x H 使满足2,1,0),()(==i x f x H i i ,)()(11x f x H '='. (2)写出余项)()()(x H x f x R -=的表达式.
三、(14分)设有解方程0cos 2312=+-x x 的迭代公式为n n x x cos 3 241+ =+, (1) 证明R x ∈?0均有?∞→=x x n x lim (?x 为方程的根); (2) 取40=x ,用此迭代法求方程根的近似值,误差不超过 ,列出各次迭代值; (3)此迭代的收敛阶是多少?证明你的结论. 四、(16分) 试确定常数A ,B ,C 和,使得数值积分公式 有尽可能高的代数精度. 试问所得的数值积分公式代数精度是多少?它是否为Gauss 型的? 五、(15分) 设有常微分方程的初值问题???=='00 )(),(y x y y x f y ,试用Taylor 展开原理构造形如)()(11011--++++=n n n n n f f h y y y ββα的方法,使其具有二阶精度,并推导其局部截断误差主项.
北航计算机研究生课程-算法设计与分析-HomeWork-1
一、已知下列递推式: C(n) = 1若n =1 = 2C (n/2) + n – 1 若n ≥ 2 请由定理1 导出C(n)的非递归表达式并指出其渐进复杂性。 定理1:设a,c 为非负整数,b,d,x 为非负常数,并对于某个非负整数k, 令n=c k , 则以下递推式 f(n) =d 若 n=1 =af(n/c)+bn x 若 n>=2 的解是 f(n)= bn x log c n + dn x 若 a=c x f(n)= x x x a x x n c a bc n c a bc d c ??? ? ??--???? ??-+log 若 a ≠c x 解:令F(n) = C(n) – 1 则 F(n) = 0 n=1 F(n) = 2C(n/2) + n – 2 n>=2 = 2[F(n/2) + 1] + n – 2 = 2F(n/2) + n 利用定理1,其中: d=0,a=2,c=2,b=1,x=1,并且a=c x 所以 F(n) = nlog 2n 所以 C(n) = F(n) + 1 = nlog 2n + 1 C(n)的渐进复杂性是O(nlog 2n) 二、由于Prim 算法和Kruskal 算法设计思路的不同,导致了其对不同问题实例的效率对比关系的不同。请简要论述: 1、如何将两种算法集成,以适应问题的不同实例输入; 2、你如何评价这一集成的意义? 答: 1、Prim 算法基于顶点进行搜索,所以适合顶点少边多的情况。 Kruskal 从边集合中进行搜索,所以适合边少的情况。 根据输入的图中的顶点和边的情况,边少的选用kruskal 算法,顶点少的选用prim 算法 2、没有一个算法是万能的,没有一个算法是对所有情况都适合的。这一集成体现了针对具体问题选用最适合的方法,即具体问题具体分析的哲学思想。 三、分析以下生成排列算法的正确性和时间效率: HeapPermute (n ) //实现生成排列的Heap 算法 //输入:一个正正整数n 和一个全局数组A [1..n ] //输出:A 中元素的全排列 if n = 1 write A else for i ←1 to n do HeapPermute (n -1)
北航2011年硕士研究生入学考试数据结构与C语言试题与答案
2011 年硕士研究生入学考试 “数据结构与C语言程序设计”(科目代码:991)试题与答案 一、单项选择题(本题共20分,每小题各2分) 1.下列关于线性表的存储结构的叙述中,错误的是。 A.线性表的顺序存储结构中隐式地存储了数据元素之间的逻辑关系 B.线性表的顺序存储结构一定需要占用一片地址连续的存储空间 C.线性表的链式存储结构通过指针来反映数据元素之间的逻辑关系 D.线性表的链式存储结构占用的存储空间一定不连续 2.若front 和rear 分别表示链接队列的队头指针与队尾指针,则向队列中插入一个由p 指的新元素的过程是依次执行。 A.rear=p; front=p; B.front=p; rear=p; C.rear->link=p; rear=p; D.front->link=p; rear=p; 3.下列关于二叉树的叙述中,正确的是。 A.二叉树的度可以小于2 B.二叉树的度等于2 C.二叉树中至少有一个结点的度为2 D.二叉树中每一个结点的度都为2 4.若某二叉树有40个叶结点,则该二叉树的结点总数最少是。 A.78 B.79 C.80 D.81 5.若采用邻接矩阵存储一个有向图,且邻接矩阵主对角线以下元素均为0,则该有向图的拓扑序列。 A.存在且惟一B.存在但可能不惟一 C.不存在D.无法确定 6.下面关于AOE 网的叙述中,正确的是。 A.AOE 网是一个带权的连通图 B.AOE 网是一个带权的强连通图 C.AOE 网是一个带权的无回路的连通图 D.AOE 网是一个带权且无回路的有向图 7.下列关于线性表查找方法的叙述中,错误的是。 A.顺序查找法适合于采用顺序存储结构和链式存储结构的线性表的查找 B.对于相同元素,顺序查找法一定能够查找到表中首次出现的元素 C.对于相同元素,折半查找法一定能够查找到表中首次出现的元素 D.对于相同元素,折半查找法不一定能够查找到表中首次出现的元素 8.在二叉排序树中进行查找的平均时间效率主要与下列因素之一有关,该因素是。A.二叉排序树的深度B.二叉排序树中结点的个数的多少 C.被查找结点的度D.二叉排序树的存储结构 9.下列4 种排序方法中,每一趟排序结束时不一定能够确定一个元素排序最终位置的是。 A.插入排序B.快速排序 C.堆积(Heap)排序D.二路归并排序 2 10.下列4 种排序方法中,当待排序的序列中元素初始时已经按值有序,排序所花费的
北航研究生算法(2018精心整理)
一:判断题 1、一个正确的算法,对于每个合法输入,都会在有限的时间内输出一个满足要求的结果。(对) 2、NP完全问题比其他所有NP问题都要难。(错) 3、回溯法用深度优先法或广度优先法搜索状态空间树。(错,仅深度优先) 4、在动态规划中,各个阶段所确定的策略就构成一个策略序列,通常称为一个决策。(错) 5、P类和NP类问题的关系用P?NP来表示是错误的。(错) 6、若近似算法A求解某极小化问题一实例的解为Sa,且已知该问题的最优解为Sa/3,则该近似算法的性能比为3。(错) 7、通常来说,算法的最坏情况的时间复杂行比平均情况的时间复杂性容易计算。(对) 8、若P2多项式时间转化为(polynomial transforms to)P1,则P2至少与P1一样难。(错) 9、快速排序算法的平均时间复杂度是O(nlogn),使用随机化快速排序算法可以将平均时间复杂度降得更低。(错) 10、基于比较的寻找数组A[1,…,n]中最大元素的问题下届是Ω(n/3)。(错) 11、O(f(n))+O(g(n))=O(min{f(n),g(n)})(错) 12、若f(n)=Ω(g(n)),g(n)=Ω(h(n)),则f(n)=Ω(h(n))(对) 13、若f(n)=O(g(n)),则g(n)=Ω(f(n))(对) 14、贪婪技术所做的每一步选择所产生的部分解,不一定是可行性的。(错) 15、LasVegas算法只要给出解就是正确的。(对) 16、一个完全多项式近似方案是一个近似方案{Aε},其中每一个算法Aε在输入实例I的规模的多项式时间内运行。(错) 二:简答 1、二叉查找树属于减治策略的三个变种中的哪一个的应用?什么情况下二叉查找树表现出最差的效率?此时的查找和插入算法的复杂性如何? 答:减治策略有3个主要的变种,包括减常量、减常数因子和减可变规模。(1) 二叉查找树属于减可变规模变种的应用。(2) 当先后插入的关键字有序时,构成的二叉查找树蜕变为单支树,树的深度等于n,此时二叉查找树表现出最差的效率,(3) 查找和插入算法的时间效率都属于Θ(n)。 2、何谓伪多项式算法?如何将一Monte Carlo算法转化为Las Vegas算法? 答:若一个数值算法的时间复杂度可以表示为输入数值N的多项式,但其运行时间与输入数值N的二进制位数呈指数增长关系,则称其时间复杂度为伪多项式时间。 Las Vegas算法不会得到不正确的解。一旦用拉斯维加斯算法找到一个解,这个解就一定是正确解。但有时用拉斯维加斯算法找不到解。 Monte Carlo算法每次都能得到问题的解,但不保证所得解的准确性 转化:可以在Monte Carlo算法给出的解上加一个验证算法,如果正确就得到解,如果错误就不能生成问题的解,这样Monte Carlo算法便转化为了Las Vegas算法。 3、构造AVL树和2-3树的主要目的是什么?它们各自有什么样的查找和插入的效率? 答:(1)当先后插入的关键字有序时,构成的二叉查找树蜕变为单支树,树的深度等于n,此时二叉查找树表现出最差的效率,为了解决这一问题,可以构造AVL树或2-3树,使树的深度减小。一棵AVL树要求它的每个节点的左右子树的高度差不能超过1。2-3树和2-3-4树允许一棵查找树的单个节点不止包含一个元素。(2) AVL树在最差情况下,查找和插入操作的效率属于Θ(lgn)。2-3树无论在最差还是平均情况下,查找和插入的效率都属于Θ(log n)。 4、写出0/1背包问题的一个多项式等价(Polynomial Equivalent)的判定问题,并说明为什么它们是多项式等价的。 答:0/1背包问题:从M件物品中,取出若干件放在空间为W的背包里,给出一个能获得最大价值的方案。每件物品的体积为W1,W2……Wn,与之相对应的价值为P1,P2……Pn。+
北航研究生数值分析A作业三
《数值分析(A)》计算实习题目三
一、题目 关于x,y,t,u,v,w的下列方程组 0.5cost+u+v+w-x=2.67 t+0.5sinu+v+w-y=1.07 0.5t+u+cosv+w-x=3.74 t+0.5u+v+sinw-y=0.79 以及关于z,t,u的下列二维数表 确定了一个二元函数z=f(x,y)。 1.试用数值方法求出f(x,y)在区域D={(x,y)︱0≤x≤0.8,0.5≤y≤1.5}上的一个
近似表达式 ,0 (,)k r s rs r s p x y c x y == ∑ 要求p(x,y)一最小的k 值达到以下的精度 10 20 27 ((,)(,))10i j i j i j f x y p x y σ-=== -≤∑∑ 其中x i =0.08i ,y j =0.5+0.05j 。 2.计算f(x i *,y j *),p(x i *,y j *)(i=1,2,…,8;j=1,2,…,5)的值,以观察p(x,y)逼近f(x,y) 的效果,其中x i *=0.1i,y j * =0.5+0.2j 。
二、算法设计方案 1.将0.08(0,1,,10) i x i i * == 和0.50.05(0,1,,20)j y j j *=+= 代入非线性方程 组中,用牛顿法解出i t 和j u ; 2.以采取分片二次插值,选择(m ,n )满足 ,232 2 m i m h h t t t m -<≤+ ≤≤ ,23 2 2 n j n u u u n τ τ - <≤+ ≤≤ 如果12 i h t t ≤+ 或42 i h t t >- ,则m=1或4;如果12 j u u τ ≤+ 或42 j u u τ >- ,则n=1 或n=4。选择(,)(1,,1;1,,1) k r t u k m m m r n n n =-+=-+为插值节点,相应的Lagrange 形式的插值多项式为 ),()(~ )(),(1 11 1 22r k r m m k n n r k u t f u l t l u t p ∑∑ +-=+-== 其中 1 1()m w k w m k w w k t t l t t t +=-≠-= -∏ (k=m-1, m, m+1) ∏ +≠-=--= 1 1)(~ n r w n w w r w r y y y y u l (r=n-1, n, n+1) 并将i t 和j u 代入22(,)p t u ,便得到了数表,, (,) i j i j x y f x y 。 3.进行曲面拟和系数矩阵[]rs c * =C ,1 1 () () T T T --=C B B B U G G G 其中 001110 1011[()]1k k r i k x x x x x x x ??? ?? ??==?? ????? ?B ,001110 1011[()]1 k k s j k y y y y G y y y ψ?? ????== ?????? ?? [(,)]i j f x y =U k 从0逐渐增大,直到7 10 σ -≤,便得到了要求精度的系数rs c 。 4.由前面得到的函数关系,根据重新取值的x ,y 可以分别得到新的数表,比 较两组数据观察逼近效果
北航数值分析计算实习报告一
航空航天大学 《数值分析》计算实习报告 第一大题 学院:自动化科学与电气工程学院 专业:控制科学与工程 学生姓名: 学号: 教师: 电话: 完成日期: 2015年11月6日 航空航天大学 Beijing University of Aeronautics and Astronautics
实习题目: 第一题 设有501501?的实对称矩阵A , ??? ???? ?????????=5011A a b c b c c b c b a 其中,064.0,16.0),501,,2,1(64.0)2.0sin()024.064.1(1 .0-==???=--=c b i e i i a i i 。矩阵A 的特征值为)501,,2,1(???=i i λ,并且有 ||min ||,501 150121i i s λλλλλ≤≤=≤???≤≤ 1.求1λ,501λ和s λ的值。 2.求A 的与数40 1 5011λλλμ-+=k k 最接近的特征值)39,,2,1(???=k k i λ。 3.求A 的(谱数)条件数2)A (cond 和行列式detA 。 说明: 1.在所用的算法中,凡是要给出精度水平ε的,都取12-10=ε。 2.选择算法时,应使矩阵A 的所有零元素都不储存。 3.打印以下容: (1)全部源程序; (2)特征值),,39,...,2,1(,s 5011=k k i λλλλ以及A det ,)A (cond 2的值。 4.采用e 型输出实型数,并且至少显示12位有效数字。
一、算法设计方案 1、求1λ,501λ和s λ的值。 由于||min ||,501 150121i i s λλλλλ≤≤=≤???≤≤,可知绝对值最大特征值必为1λ和501 λ其中之一,故可用幂法求出绝对值最大的特征值λ,如果λ=0,则1λ=λ,否则 501λ=λ。将矩阵A 进行一下平移: I -A A'λ= (1) 对'A 用幂法求出其绝对值最大的特征值'λ,则A 的另一端点特征值1λ或501λ为'λ+λ。 s λ为按模最小特征值,||min ||501 1i i s λλ≤≤=,可对A 使用反幂法求得。 2、求A 的与数40 1 5011λλλμ-+=k k 最接近的特征值)39,...,2,1(=k k i λ。 计算1)1,2,...,50=(i i λ-k μ,其模值最小的值对应的特征值k λ与k μ最接近。因此对A 进行平移变换: )39,,2,1k -A A k k ==(I μ (2) 对k A 用反幂法求得其模最小的特征值'k λ,则k λ='k λ+k μ。 3、求A 的(谱数)条件数2)(A cond 和行列式detA 。 由矩阵A 为非奇异对称矩阵可得: | | )(min max 2λλ=A cond (3) 其中max λ为按模最大特征值,min λ为按模最小特征值,通过第一问我们求得的λ和s λ可以很容易求得A 的条件数。 在进行反幂法求解时,要对A 进行LU 分解得到。因L 为单位下三角阵,行 列式为1,U 为上三角阵,行列式为主对角线乘积,所以A 的行列式等于U 的行列式,为U 的主对角线的乘积。
北航GPA算法
1、GPA算法 网上流传着各种各样的算法,但是需要强调的是,美国人知道中国的大部分学校不用GPA,因此相当多的学校在网申系统里明确指出,不允许将自己的成绩换算成美国的GPA,比如Caltech,Princeton,Stanford等,这一栏留着不填即可。有的学校则要求按照我们的评定成绩规则填写,北航是用百分制的平均分,那么我们可以填写在保研是用的大学前三年的必修课平均成绩,到时候教务会算好。还有很多的学校没做要求,就按照北航的GPA算法计算。 其实自己填写的GPA只是一个参考,可以写在简历里辅助申请,对方学校会按照他们的标准重新计算。可能具体的教授还会拿出你的某些重要的课程评估你的GPA,因此其实研究哪种算法算的更高没有意义,之所以这么说还有一点原因就是北航的学生在算GPA时必须严格按照自己学校的GPA算法计算。 2、北航的GPA算法 在开成绩单时,学校不给算GPA,但是在成绩单上有GPA的算法,那么在计算GPA是就应该按照这个算法来计算,不可以采用其他的算法。当然也没规定一定严格按照这个算法,但是既然写在了官方的成绩单上,就应该这么算,要不然会有作弊之嫌。 2.1、具体算法如下:85~100/A:4; 70~84/B:3; 60~69/C:2; 不及格/F:0; 按照通过与不通过评分的,算法如下: 通过/P: 3.3; 不通过/F:0; 例如,有三门课,学分分别为1、2、3,得分分别为86、76和通过,那么这三门课的GPA 就是(4×1+3×2+3.3×3)/(1+2+3)=3.32 总体来讲,北航的GPA算法还是很有优势的。 2.2、计算GPA的课程范围: 全部课程,包括所有的必修,任何形式的选修,只要是出现在成绩单上的都要算,大学前三年学过的所有课程都会出现在成绩单上。不要试图去修改成绩,北航也不允许去掉更不允许修改成绩。
北航数值分析计算实习报告一
北航数值分析计算实习报告一
————————————————————————————————作者:————————————————————————————————日期:
北京航空航天大学 《数值分析》计算实习报告 第一大题 学院:自动化科学与电气工程学院 专业: 控制科学与工程 学生姓名: 学号: 教师: 电话: 完成日期: 2015年11月6日 北京航空航天大学 Beijing University of Aeronautics and Astronautics
实习题目: 第一题 设有501501?的实对称矩阵A , ??? ???? ?????????=5011A a b c b c c b c b a 其中,064.0,16.0),501,,2,1(64.0)2.0sin()024.064.1(1 .0-==???=--=c b i e i i a i i 。矩阵A 的特征值为)501,,2,1(???=i i λ,并且有 ||min ||,501 150121i i s λλλλλ≤≤=≤???≤≤ 1.求1λ,501λ和s λ的值。 2.求A的与数40 1 5011λλλμ-+=k k 最接近的特征值)39,,2,1(???=k k i λ。 3.求A的(谱范数)条件数2)A (cond 和行列式d etA 。 说明: 1.在所用的算法中,凡是要给出精度水平ε的,都取12-10=ε。 2.选择算法时,应使矩阵A 的所有零元素都不储存。 3.打印以下内容: (1)全部源程序; (2)特征值),,39,...,2,1(,s 5011=k k i λλλλ以及A det ,)A (cond 2的值。 4.采用e 型输出实型数,并且至少显示12位有效数字。
北航数值分析计算实习报告一
北航数值分析计算实习 报告一 Company number:【0089WT-8898YT-W8CCB-BUUT-202108】
北京航空航天大学 《数值分析》计算实习报告 第一大题 学 院:自动化科学与电气工程学院 专 业: 控制科学与工程 学 生 姓 名: 学 号: 教 师: 电 话: 完 成 日 期: 2015年11月6日 北京航空航天大学 Beijing University of Aeronautics and Astronautics 实习题目: 第一题 设有501501?的实对称矩阵A , 其中,064.0,16.0),501,,2,1(64.0)2.0sin()024.064.1(1.0-==???=--=c b i e i i a i i 。矩阵A 的特征值为)501,,2,1(???=i i λ,并且有 1.求1λ,501λ和s λ的值。 2.求A 的与数40 1 5011λλλμ-+=k k 最接近的特征值)39,,2,1(???=k k i λ。 3.求A 的(谱范数)条件数2)A (cond 和行列式detA 。
说明: 1.在所用的算法中,凡是要给出精度水平ε的,都取12-10=ε。 2.选择算法时,应使矩阵A 的所有零元素都不储存。 3.打印以下内容: (1)全部源程序; (2)特征值),,39,...,2,1(,s 5011=k k i λλλλ以及A det ,)A (cond 2的值。 4.采用e 型输出实型数,并且至少显示12位有效数字。 一、算法设计方案 1、求1λ,501λ和s λ的值。 由于||min ||,501 150121i i s λλλλλ≤≤=≤???≤≤,可知绝对值最大特征值必为1λ和501λ其中之 一,故可用幂法求出绝对值最大的特征值λ,如果λ=0,则1λ=λ,否则501λ=λ。将矩阵A 进行一下平移: I -A A'λ= (1) 对'A 用幂法求出其绝对值最大的特征值'λ,则A 的另一端点特征值1λ或501λ为 'λ+λ。 s λ为按模最小特征值,||min ||501 1i i s λλ≤≤=,可对A 使用反幂法求得。 2、求A 的与数40 1 5011λλλμ-+=k k 最接近的特征值)39,...,2,1(=k k i λ。 计算1)1,2,...,50=(i i λ-k μ,其模值最小的值对应的特征值k λ与k μ最接近。因此对A 进行平移变换: )39,,2,1k -A A k k ==(I μ (2) 对k A 用反幂法求得其模最小的特征值'k λ,则k λ='k λ+k μ。
2017-2018年北航软件学院软件工程991数据结构与C语言程序设计考研大纲重难点
991“数据结构与C语言程序设计”考试大纲(2017版) 2017年“数据结构与C语言程序设计”考试内容包括“数据结构”与“C语言程序设计”两门课程的内容,各占比例50%。试卷满分为150分。 “数据结构”部分 一、概述 1.数据的逻辑结构与存储结构的基本概念; 2.算法的定义、基本性质以及算法分析的基本概念,包括采用大O形式表示时间复杂度和空间复杂度。 二、线性表 1.线性关系、线性表的定义,线性表的基本操作; 2.线性表的顺序存储结构与链式存储结构(包括单(向)链表、循环链表和双向链表)的构造原理; 3.在以上两种存储结构的基础上对线性表实施的基本操作,包括顺序表的插入与删除、链表的建立、插入与删除、查找等操作对应的算法设计(含递归算法的设计)。 三、数组 1.一维数组和二维数组的存储; 2.矩阵的压缩存储的基本概念; 3.对称矩阵、对角矩阵以及三角矩阵的压缩存储。 四、堆栈与队列 1.堆栈与队列的基本概念与基本操作; 2.堆栈与队列的顺序存储结构与链式存储结构的构造原理; 3.在不同存储结构的基础上对堆栈与队列实施插入与删除等基本操作的算法设计; 4. 循环队列的基本概念; 5.堆栈和队列在解决实际问题中应用。 五、树与二叉树 1.树与二叉树的基本概念,基本特征、名词术语; 2.完全二叉树与满二叉树的基本概念,二叉树的基本性质及其应用;
3.二叉树的顺序存储结构与二叉链表存储结的基本原理; 4.二叉树的前序遍历、中序遍历、后序遍历和按层次遍历,重点是二叉树在以二叉链表作为存储结构基础上各种遍历算法(包括非递归算法)的设计与应用; 5.二叉排序树的基本概念、建立(插入)、查找以及平均查找长度ASL的计算。 六、图 1.图的基本概念、名词术语; 2.图的邻接矩阵存储方法和邻接表(含逆邻接表)存储方法的构造原理及特点; 3.图的深度优先搜索与广度优先搜索; 4.最小(代价)生成树、最短路径、AOV网与拓扑排序以及AOE网与关键路径的基本概念与求 解过程。 七、文件及查找 1.顺序查找法以及平均查找长度(ASL)的计算; 2.折半查找法以及平均查找长度(ASL)的计算,包括查找过程对应的“判定树”的构造; 3.B-树和B+树的基本概念,B-树的插入与查找; 4.散列(Hash)表的构造、散列函数的构造,散列冲突的基本概念、处理散列冲突的基本方法以及散列表的查找和平均查找长度的计算。 八、内排序 1.排序的基本概念,各种内排序方法的基本原理和特点,包括排序过程中进行的元素之间的比较次数,排序总趟数、排序稳定性以及时间复杂度与空间复杂度计算; 2.插入排序法(含折半插入排序法); 3.选择排序法; 4.(起)泡排序法; 5.谢尔(Shell)排序法; 6.快速排序法; 7.堆积(Heap)排序法,包括堆积的定义与构造; 8.二路归并排序法。 “C语言程序设计”部分
北航研究生数值分析上机作业 四(报告+所有程序大全)
数值分析上机作业4——数值方法求解常微 分方程及数值积分 1. 算法设计 i. 由,i i t y ,(,)t y ?插值求解q ii. 将q ,y 带入Newton 迭代法求解非线性方程组 iii. 由,,,,x y p q z 得到(,)i i f t y iv. 计算1k 同理以上过程再进行3次得到234,,k k k ,由经典R-K 方法公式: 112341213243(22) 6 (,) (0.5,0.5)(0.5,0.5)(,) n n n n n n n n n n h y y k k k k k f t y k f t h y hk k f t h y hk k f t h y hk +=++++==++=++=++ 可得,0,1,...50i y i =。 再由复化Simpson 积分公式:1 21211 ()[()()4()2()]3m m b i i a i i h f x dx f a f b f x f x --==≈+++∑∑?可得积分值I 。 2. 打印输出结果 5位有效数字格式: t(i) y(i) x(i) z(i) p(i) q(i) 0.0 2.0000e+000 9.1445e-001 1.6333e+000 2.8181e+000 8.6000e+000 0.2 1.9533e+000 8.9816e-001 1.6605e+000 2.8477e+000 8.5396e+000 0.4 1.9108e+000 8.8411e-001 1.6844e+000 2.8765e+000 8.4951e+000 0.6 1.8722e+000 8.7209e-001 1.7048e+000 2.9043e+000 8.4660e+000 0.8 1.8373e+000 8.6194e-001 1.7216e+000 2.9307e+000 8.4516e+000 1.0 1.8056e+000 8.5353e-001 1.7347e+000 2.9558e+000 8.4516e+000 1.2 1.7770e+000 8.4675e-001 1.7440e+000 2.9792e+000 8.4656e+000
北航考研保研机考题
2015. 机试两道题矩阵+字符串(60+40),后来我在论坛中看到往年机试也是这样的形式,连题型都相同。 1.矩阵 输入 开始数字和矩阵大小如1 3 输出 1 2 5 4 3 6 9 8 7 2.字符串替换,这是个比较常见的题了 将原始字符串中所有应替换字符串替换为目标字符串 2014. 第一题,阶乘数。 输入一个正整数,输出时,先输出这个数本身,跟着一个逗号,再输出这个数的各位数字的阶乘和,等号, 阶乘和的计算结果,并判断阶乘和是否等于原数,如果相等输出Yes,否则输出N o。题目说明输入的正整数 以及其各位阶乘和都不会超出int型的表示范围。 输入样例1: 145 输出样例1: 145,1!+4!+5!=145
Yes 输入样例2: 1400 输出样例2: 1400,1!+4!+0!+0!=27 No 第二题,五子棋。 输入一个19*19的矩阵,只包含数字0、1、2,表示两人下五子棋的棋牌状态,1、2分别表示两人的棋子,0表示空格。 要求判断当前状态下是否有人获胜(横向、竖向或者斜线方向连成5个同色棋子)。题目说明输入样例保证每条线上至多 只有连续5个同色棋子,并且保证至多只有1人获胜。如果有人获胜,输出获胜者(1或2)加一个冒号,接着输出获胜的 五连珠的第一个棋子的坐标,从上到下从左到右序号最小的为第一个,序号从1开始编号。如果无人获胜,输出no。 2011.
2013. 1. 给定两个元素个数不超过20的整数数组a和b,要求将a和b合并成一个新数组。合并规则:如果一个元素在两个数组中同时出现,则需在合并后的数组中去掉该元素;对于只在一个数组中重复出现的元素,合并后只保留一个。合并后按照从小到大的顺序将新数组输出(测试数据保证不会出现合并后无数据的情况)。
北航计算机研究生课程 算法设计与分析 HomeWork_1
一、已知下列递推式: C(n) = 1 若n =1 = 2C (n/2) + n – 1 若n ≥ 2 请由定理1 导出C(n)的非递归表达式并指出其渐进复杂性。 定理1:设a,c 为非负整数,b,d,x 为非负常数,并对于某个非负整数k, 令n=c k , 则以下递推式 f(n) =d 若 n=1 =af(n/c)+bn x 若 n>=2 的解是 f(n)= bn x log c n + dn x 若 a=c x f(n)= x x x a x x n c a bc n c a bc d c ???? ??--???? ??-+log 若 a ≠c x 解:令F(n) = C(n) – 1 则 F(n) = 0 n=1 F(n) = 2C(n/2) + n – 2 n>=2 = 2[F(n/2) + 1] + n – 2 = 2F(n/2) + n 利用定理1,其中: d=0,a=2,c=2,b=1,x=1,并且a=c x 所以 F(n) = nlog 2n 所以 C(n) = F(n) + 1 = nlog 2n + 1 C(n)的渐进复杂性是O(nlog 2n) 二、由于Prim 算法和Kruskal 算法设计思路的不同,导致了其对不同问题实例的效率对比关系的不同。请简要论述: 1、如何将两种算法集成,以适应问题的不同实例输入; 2、你如何评价这一集成的意义? 答: 1、Prim 算法基于顶点进行搜索,所以适合顶点少边多的情况。 Kruskal 从边集合中进行搜索,所以适合边少的情况。 根据输入的图中的顶点和边的情况,边少的选用kruskal 算法,顶点少的选用prim 算法 2、没有一个算法是万能的,没有一个算法是对所有情况都适合的。这一集成体现了针对具体问题选用最适合的方法,即具体问题具体分析的哲学思想。 三、分析以下生成排列算法的正确性和时间效率: HeapPermute (n ) //实现生成排列的Heap 算法
2017北航考研计算机专业课大纲961
二、计算机组成原理部分的考试大纲(60分) <一>、整体要求 (一)理解单处理器计算机系统中各部件的内部工作原理、组成结构以及相互连接方式, 具有完整的计算机系统的整机概念; (二)理解计算机系统层次化结构概念,掌握以MIPS为代表的RISC指令集体系结构的 基本知识,能对MIPS汇编程序设计语言的相关问题进行分析; (三)理解计算机存储系统的层次化结构,掌握层次化存储系统的设计、分析和性能计算; (四)能根据指令语义进行单周期、多周期或流水线MIPS处理器的数据通路及其控制器 的分析和简单设计; (五)理解并掌握输入输出系统的基本知识。 <二>、知识要点 (一)、计算机系统概述 (1)计算机系统的基本组成与层次结构 (2)计算机系统的性能指标:吞吐量、响应时间、带宽、延迟;CPU时钟周期、主频、CPI、CPU执行时间;MIPS、MFLOPS、GFLOPS、TFLOPS、PFLOPS。 (二)、数据的表示和运算 (1)数制与编码 (2)定点数和浮点数的表示和运算 (3)算术逻辑单元ALU 串行加法器和并行加法器 算术逻辑单元ALU的功能和结构 (三)、存储器层次结构 (1)存储器的层次化结构 (2)主存储器与CPU的连接 (3)高速缓冲存储器(Cache) Cache的基本工作原理 Cache和主存之间的映射方式 Cache中主存块的替换算法与写策略 多层次Cache性能计算 (4)虚拟存储器 虚拟存储器的基本概念 页式虚拟存储器 TLB(快表) (四)、MIPS指令系统及汇编语言 (1)指令系统的基本知识(指令格式、寻址方式) (2)MIPS汇编语言 (五)、MIPS处理器 (1)CPU的功能和基本结构 (2)单周期、多周期MIPS处理器数据通路的功能和基本结构 (3)硬布线控制器的功能和工作原理 单周期处理器控制器 多周期处理器控制器 (4)指令流水线 指令流水线的基本概念