计算机研究生《计算理论》复习题
【灰灰考研】算法必背100题

/*j 为计数器*/
LinkList p;
/*声明一节点 p*/
p=L->next;
/*p 指向链表 L 的第一个节点*/
while(p && j<i) {
/*当 p 不为空并且计数器不等于 i 时,循环继续*/
p=p->next;
/*p 指向下一个节点*/
++j;
}
if(!p || j > i)
首先整理算法思路:
1. 如果删除的元素位置不正确,结束程序,输出异常信息
2. 取出删除元素,放在元素 e 中
3. 从删除元素位置开始遍历到最后一个元素位置,分别将它们向前移动一个位置
4. 表长减去 1
图 2-8 删除前
图 2-9 删除后
//初始条件:顺序线性表 L 已存在,1 ≤ i ≤ List.Length(L)
int ListInsert(SeqList *L,int i,ElemType *e){
int k;
if(L->length==MAXSIZE)/*顺序线性表已经满*/
return ERROR;
if(i<1 || i>L->length+1)/*当 i 不在范围内时*/return ERROR;
if(i<=L->1ength){/*若插入数据位置不在表尾*/
【灰灰考研】算法必背 100 题
灰灰考研
2021 年计算机考研
算法必背 100 题
灰灰考研
顺序表、栈、队列 ................................................................................................................... 2
计算理论考研题目及答案

计算理论考研题目及答案### 计算理论考研题目及答案#### 题目一:确定性有限自动机(DFA)的定义和性质问题描述:给定一个确定性有限自动机(DFA)M,其状态集合为Q={q0, q1, q2},字母表为Σ={a, b},转换函数为δ,初始状态为q0,接受状态集合为F={q1, q2}。
请根据以下转换函数定义,判断字符串"aba"是否被M接受。
转换函数定义如下:- δ(q0, a) = q1- δ(q0, b) = q0- δ(q1, a) = q2- δ(q1, b) = q1- δ(q2, a) = q2- δ(q2, b) = q0答案:首先,根据转换函数,我们从初始状态q0开始,逐个读取字符串"aba"中的字符:1. 读取字符'a',应用转换函数δ(q0, a),状态变为q1。
2. 继续读取字符'b',应用转换函数δ(q1, b),状态变为q1。
3. 最后读取字符'a',应用转换函数δ(q1, a),状态变为q2。
由于状态q2是接受状态,因此字符串"aba"被DFA M接受。
#### 题目二:图灵机的停机问题问题描述:考虑一个图灵机T,其输入为一个二进制字符串。
请证明图灵机T是否能够解决以下问题:给定一个二进制字符串,判断该字符串是否能够被T在有限步内停机。
答案:这个问题是著名的停机问题,它是一个不可解问题。
根据图灵的停机问题的不可解性定理,不存在一个通用的算法来判断任意给定的图灵机和输入字符串是否停机。
因此,不能构造一个图灵机来判断所有图灵机的停机问题。
#### 题目三:P vs NP问题问题描述:简述P vs NP问题,并给出一个NP完全问题的例子。
答案:P vs NP问题是计算理论中的一个核心问题,它询问:所有那些可以快速验证解的问题(NP问题),是否也能快速找到解(即是否属于P类问题)。
计算机理论基础试题及答案

计算机理论基础试题及答案计算机理论基础是计算机科学的基础课程之一,它涵盖了计算机的结构、功能、算法、数据结构等方面。
以下是一些计算机理论基础的试题及答案,供大家学习参考。
试题1.二进制数101101转换成十进制数是多少?2.请简述计算机CPU的工作原理。
3.什么是递归算法?请写出一个简单的递归函数。
4.请解释堆和栈的概念以及它们的区别。
答案1.二进制数101101转换成十进制数的计算方法是:12^5 + 02^4 +12^3 + 12^2 + 02^1 + 12^0 = 45。
2.CPU是计算机的核心部件,它主要负责指令的执行和运算处理。
CPU按照指令的顺序依次读取并执行指令,其中指令包括算术运算、逻辑运算、数据传输等操作。
CPU通过总线与内存、输入/输出设备等其他部件进行数据交换和信息传输,从而完成计算机的计算和控制功能。
3.递归算法是指在函数定义中调用函数本身的算法。
递归算法的特点是问题规模逐步减小,直到达到基本情况。
一个简单的递归函数示例:def factorial(n):if n ==1:return1return n * factorial(n-1)该函数用于计算阶乘,当n等于1时,返回1,否则返回n与factorial(n-1)的乘积。
4.堆和栈都是用于存储数据的数据结构。
堆和栈的区别如下:•堆是动态数据结构,由于堆是动态增长的,所以在任何时候都可以从堆中申请或释放内存,堆中的数据可以随意存储、读取和修改。
•栈是静态数据结构,其大小和存储数据的位置已经预定好了,不能随意增加和删除数据。
栈一般被用于函数的调用过程中,每次调用函数时,函数的参数、返回值、局部变量等数据将被存储在栈中。
•堆和栈的存储方式也不同。
栈是一种数据结构,遵循先进先出(FILO)的原则,新元素通常被添加到栈的顶端,并从顶端删除;堆则是一棵树形结构,其中每个节点都有一个或多个子节点。
节点的添加和删除是基于堆排序规则的。
考研计算机学科专业基础(408)研究生考试试题及解答参考(2024年)

2024年研究生考试考研计算机学科专业基础(408)复习试题(答案在后面)一、单项选择题(本大题有40小题,每小题2分,共80分)1、下列关于冯·诺依曼体系结构的叙述中,正确的是:A. 计算机由运算器、控制器、存储器、输入设备和输出设备五大部件组成。
B. 指令和数据存放在不同的存储器中。
C. 冯·诺依曼体系结构的计算机硬件系统分为运算器、显示器和键盘三大部分。
D. 程序指令存储在内存中,但数据不能存储在内存中。
2、在计算机内部,数据通常采用哪种形式表示?A. 十进制B. 八进制C. 十六进制D. 二进制3、CPU可以直接访问的存储器是哪一个?A. 软盘B. 硬盘C. 内存D. 光盘4、在计算机网络中,以下哪项不是TCP/IP模型的层次结构之一?A. 网络接口层B. 网络层C. 应用层D. 物理层5、以下哪个算法是用于查找非平衡二叉搜索树中某个特定节点的最坏情况时间复杂度?A. 二分查找B. 中序遍历C. 平衡二叉搜索树查找D. 二叉树遍历6、以下哪个语言是用于实现编译原理的?A. JavaB. C++C. PythonD. Haskell7、在计算机系统中,地址总线的宽度决定了CPU可以直接寻址的内存空间大小。
如果某计算机系统的地址总线宽度为32位,则该CPU的最大直接寻址空间为:A. 4GBB. 8GBC. 16GBD. 32GB8、在数据结构中,队列是一种特殊的线性表,其特点是先进先出(FIFO)。
若在一个初始为空的队列中按照顺序插入元素A、B、C、D,然后执行两次删除操作,再插入元素E、F,接着再次执行两次删除操作,此时队列的队首元素是:A. AB. BC. CD. F9、在关系数据库中,两个表之间的连接是一种生成新表的操作,它将第一个表中的行与第二个表中的行匹配。
如果连接操作没有找到匹配项,则返回NULL。
假设我们有两个表:Table1(A, B),Table2(C, D),其中A与C是连接字段。
计算机导论考研题库

计算机导论考研题库计算机导论作为一门基础课程,对于考研的学生来说,掌握其核心概念和原理是非常重要的。
以下是一些计算机导论的考研题库内容,供参考:一、选择题1. 计算机科学的基础是______。
A. 硬件B. 软件C. 算法D. 数据结构2. 冯·诺依曼计算机体系结构中,CPU的主要功能是______。
A. 存储数据B. 处理数据C. 显示数据D. 传输数据3. 在计算机系统中,操作系统的主要作用是______。
A. 管理硬件资源B. 执行程序C. 存储数据D. 网络通信4. 数据库管理系统(DBMS)的基本功能不包括______。
A. 数据定义B. 数据存储C. 数据加密D. 数据恢复5. 计算机网络的拓扑结构中,不包括以下哪种类型?A. 星型B. 总线型C. 环形D. 树型二、简答题1. 请简述计算机硬件的基本组成,并说明各部分的功能。
2. 解释什么是程序,并描述程序的生命周期。
3. 什么是操作系统?请列出操作系统的五大基本功能。
4. 描述数据库管理系统的主要特点及其在现代信息系统中的作用。
5. 什么是网络协议?请举例说明网络协议在网络通信中的重要性。
三、论述题1. 论述计算机科学与信息技术的区别和联系。
2. 分析计算机病毒的特点及其对计算机系统可能造成的危害,并提出预防措施。
3. 论述云计算的概念、优势以及在现代企业中的应用。
4. 描述大数据时代下,数据挖掘技术的重要性和应用场景。
5. 论述人工智能的发展历程、当前挑战以及未来发展趋势。
请注意,以上题目仅为示例,实际考研题库内容可能会有所不同。
考生应根据具体考试大纲和教材内容进行复习准备。
希望这些题目能够帮助你更好地理解和掌握计算机导论的相关知识。
计算理论习题答案

计算理论习题答案计算理论,也称为理论计算机科学,是研究算法和计算过程的数学理论基础的学科。
以下是一些计算理论习题的答案示例:1. 确定性图灵机(Deterministic Turing Machine, DTM):- 习题:证明一个确定性图灵机可以模拟任何其他确定性图灵机。
- 答案:确定性图灵机可以读取输入,根据当前状态和读取到的符号,按照预定的转移规则移动磁带头并改变状态。
要模拟另一台确定性图灵机,只需要将被模拟机的状态转移表编码为模拟机的转移规则即可。
2. 非确定性图灵机(Nondeterministic Turing Machine, NTM):- 习题:证明非确定性图灵机比确定性图灵机更强大。
- 答案:非确定性图灵机可以在多个可能的转移中选择,这使得它能够解决一些确定性图灵机无法解决的问题,例如哈密顿回路问题。
此外,任何确定性图灵机都可以被一个非确定性图灵机模拟,但反之则不成立。
3. 可计算性(Computability):- 习题:证明某个特定的函数是可计算的。
- 答案:要证明一个函数是可计算的,需要展示一个算法或图灵机,它对于该函数的任何输入都能在有限步骤内给出输出。
例如,一个简单的加法函数f(x, y) = x + y是可计算的,因为它可以通过迭代或递归来实现。
4. 不可解问题(Undecidable Problems):- 习题:解释停机问题(Halting Problem)为什么是不可解的。
- 答案:停机问题是不可解的,因为它涉及到预测一个图灵机是否会在有限步骤内停止。
如果存在一个算法能够解决停机问题,那么我们可以构造一个悖论,即一个图灵机可以模拟自身并决定自己是否会停止,这会导致自指的悖论。
5. 复杂性类(Complexity Classes):- 习题:区分P类问题和NP类问题。
- 答案:P类问题是指可以在多项式时间内解决的问题,而NP类问题是指可以在多项式时间内验证一个解的问题。
东华大学-计算理论期末考试卷

东华大学2017~2018学年第一学期研究生期末考试试题考试学院:计算机考试专业:计算机科学与技术考试课程名称:计算理论导引与算法复杂性一、单项选择题(每空2分,本题共20分)1.关于集合S中的元素x,()的说法是正确的。
A、x⊆SB、x可能是一个集合C、x在S中的顺序不能改变D、(x,x)∉S⨯S2.关于函数f,()的说法是正确的。
A、f的值域一定是可数的B、f的定义域和值域的交集一定是空集C、f的值域不可能为{TRUE,FALSE}D、f的定义域可以是元组的集合3.关于正则语言R,()的说法是正确的。
A、R是上下文无关的B、R是不能用正则表达式来描述的C、R是可以违反泵引理的D、R是图灵可识别但不可判定的4.关于乔姆斯基范式,()的说法是错误的。
A、规则的右部可以是变量与终结符构成的串B、左部是起始变量的规则,其右部可以是εC、任意一个上下文无关文法都可以转化为乔姆斯基范式形式D、终结符一定单独出现在规则的右部5.关于下推自动机PDA,()的说法是正确的。
A、PDA可以识别上下文无关语言B、PDA是DFA的一种特例C、PDA识别的语言NFA也能识别D、PDA的存储容量与GNFA相同6.关于图灵机M,()的说法是正确的。
A、M一定是可停机的B、M识别的语言一定是可判定的C、M可以不识别任何语言D、M的存储容量比PDA大7.关于图灵不可识别语言L,()的说法是错误的。
A、没有图灵机可识别LB、没有PDA可识别LC、L不能用正则表达式来描述D、目前L是否存在还是个未解之谜8.关于图灵不可判定语言L,()的说法是错误的。
A、如果L是图灵可识别,那么,L一定是图灵不可识别的B、L一定是图灵可识别的C、如果L是图灵不可识别的,那么,L有可能是图灵可识别的D、如果L是图灵不可识别的,那么,L有可能是图灵不可识别的9.关于属于NP类的语言L,()的说法是正确的。
A、L有可能属于P类B、L不能多项式时间规约到某个NP-complete语言C、如果NP类中所有语言都能多项式时间规约到L,那么,L是NP-hardD、L不可能是NP-complete10.关于PSPACE-hard语言L,()的说法是正确的。
计算理论复习

计算理论复习题1、 什么是图灵机,图灵机的构造技术以及三种描述方式是什么?(1)图灵机:一个图灵机是一个7元组(Q ,∑,,Γ,δ,0q ,accept q ,reject q ),其中,,Q ∑Γ都是有穷集合,并且○1Q 是状态集;○2∑是输入字母表,不包括特殊空白符号︼;○3 Γ是字母表,其中:︼∈Γ∑⊆Γ,;○4:{,}Q Q L R δ⨯Γ→⨯Γ⨯;○50q Q ∈是起始状态;○6accept q Q ∈是接受状态;○7reject q Q ∈是拒绝状态,且reject accept q q ≠。
(2)构造技术:○1有限控制器的存储构造TM ,检查第一个输入是不是出现在输入的其他地方;○2多道;○3查询符号(打标记);○4移动:如把一个字符串整体后移; ○5调用子程序。
(3)描述方式:○1形式描述,即详尽地写出图灵机的状态、转移函数等,这是最低、最详细程度的描述;○2实现描述,这种方法使用日常语言来描述图灵机的运行,如怎么移动读写头,怎么在带上存储数据等,没有给出 状态和转移函数的细节;○3高水平描述,它也是使用日常语言来描述算法,但忽略了实现的模型,不再需要提及机器是怎么管理它的带子或读写头。
2、什么是图灵机的格局,图灵可识别,图灵可判定?(1)图灵机计算过程中,当前状态、当前带内容和读写头当前位置组合在一起,称为图灵机的格局,也即是瞬间状态。
(2)如果一个语言能被某一图灵机识别,则称该语言是图灵可识别的。
(3) 如果一个语言能被某一图灵机判定,则称它是图灵可判定的。
3、什么是多带图灵机,非确定型图灵机,枚举器,递归可枚举语言?(1)多带图灵机很像普通图灵机,只是有多个带子,每个带子都有自己的读写头,用于读和写。
开始时,输入出现在第一个带子上,其它的带子都是空白。
转移函数改为允许同时进行读、写和移动读写头,其形式为:δ:Q ⨯Γk →Q ⨯Γk ⨯},{R L k 此处k 是带子的个数。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、请你从形式定义、计算过程和对应的语言特点关系等诸方面综合比较DFA、PDA和图灵机
2、对于简单文法(正则语言、上下文无关语言),能够根据其产生式写出其语言
3、正则语言泵引理和上下文无关语言泵引理的理解、相互比较和应用
4、最简DFA、最简PDA的概念;DFA和PDA的简化过程;(带ε和不带ε的)NFA化简成最简DFA的过程
5、图灵机的Golder编码和通用图灵机的编码
6、上下文无关文法的乔姆斯基范式
7、DFA的计算过程
8、上下文无关文法的推导过程以及其歧义相关概念及分析
9、关于四类乔姆斯基语言及其对应的自动机类型特点分析
10、四类乔姆斯基语言的各种运算类型并形式化表示
11、关于CFG和DFA的若干判定问题
12、关于若干渐进符号:同阶渐进符号Θ、大O、小O和大Ω符号的含义和用法
13、请从NP类问题、P类问题、确定型单带TM、确定型多带TM、非确定型TM等角度综述
时间复杂性规律
相关例题:
1、请你综合比较DFA、PDA和图灵机
2、请写出下列表达式生成的正则语言
1)设有文法G=(V,T,P,S),其中V={S,A,B},T={a,b},P:S→aB;S→bA;A→bAA;A →a;A→aS;B→b;B→bS;B→aBB
请写出L(G)=
2)设一个有穷自动机M=(Q,∑,δ,q0,F),其中Q={q0,q1,q2,q3),∑={0,1}, F={q0},δ如下:
δ(q0,0)=q2, δ(q0,1)=q1, δ(q1,0)=q3, δ(q1,1)=q0
δ(q2,0)=q0, δ(q2,1)=q3, δ(q3,0)=q1, δ(q3,1)=q2
请写出L(M)=
3)设有文法G=({S,A},{a,b,c,d};R,S),其中R:S→aSd|aAd,
A→bAc|bc
请写出L(G)=
3、用泵引理证明下列论点
1)A1={a n b n c n|n≥0}不是正则语言
2)D={ww|w∈{0,1}*}不是上下文无关语言
4、把下面状态转换图代表的DFA变化成最简DFA
5、设有图灵机M=({q1,q2,q3},{0,1},{0,1,B},δ,q1,B,{q2}),其中转移函数δ为δ(q1,1)=
(q3,0,R);δ(q3,0)=(q1,1,R);δ(q3,1)= (q2,0,R);δ(q3,B)=(q3,1,L),试写出其标准编码
6、将文法G转换成乔姆斯基范式,其中G=({S,A},{a,b,c},R,S),R:S→aS|A, A→bA|c
7、试描述将一台带ε的NFA转换成等价的DFA的过程
8、请你从形式定义、计算过程和对应的语言特点关系等诸方面综合比较DFA、PDA和图灵机
9、对于上下文无关文法G=(V,T,P,S),其中V={S,A,B},T={a,b},P:S→aB|bA;A→a|aS|bAA;
B→b|bS|aBB,则
1)请写出L(G)=
2)给出终极符串x=aaabbabbba的最左推导、最右推导和推导树
3)这个文法是否有歧义,如果有歧义,能否给出等价的非歧义文法
10、设有图灵机M=({q1,q2,q3},{0,1},{0,1,B},δ,q1,B,{q2}),其中转移函数δ为
δ(q1,1)=(q3,0,R);δ(q3,0)=(q1,1,R);δ(q3,1)=(q2,0,R);δ(q3,B)=(q3,1,L),试写出其标准编码
11、将文法G=({S,A,B},{a,b},R,S),R:S→bA|aB,A→bAA|aS|a,B→aBB|bS|b转换成乔
姆斯基范式
12、用泵引理证明下列论点
1)A={n
a2|n≥0}不是正则语言
2)B={ab,aabb,…,a k b k,…}={a k b k|k≥1}不是正则语言
3)C={a i b j c i d j|i,j≥1}不是上下文无关语言
13、请列出你所知道的有关四类乔姆斯基语言的运算类型并形式化表示之
14、请写出下列表达式生成的正则语言
1)设一个有穷自动机M=(Q,∑,δ,q0,F),其中Q={q0,q1,q2,q3),∑={0,1}, F={q0},δ如下:δ(q0,0)=q2, δ(q0,1)=q1, δ(q1,0)=q3, δ(q1,1)=q0, δ(q2,0)=q0, δ(q2,1)=q3, δ(q3,0)=q1, δ(q3,1)=q2。
请写出L(M)=
2)设有文法G=({S,A},{a,b,c,d};R,S),其中R:S→aSd|aAd,
A→bAc|bc。
请写出L(G)=
15、关于泵引理
1)请从内容描述和实质蕴涵两个角度描述并比较有关正则语言和上下文无关语言的两个泵引理
2)证明语言L={a i b j c i d j|i,j>0}不是上下文无关语言
16、设有图灵机M=({q1,q2,q3},{0,1},{0,1,B},δ,q1,B,{q2}),其中转移函数δ为
δ(q1,1)=(q3,0,R);δ(q3,0)=(q1,1,R);δ(q3,1)=(q2,0,R);δ(q3,B)= (q3,1,L),试写出其标准编码
17、关于判定问题
1)下面是CFG派生问题A CFG={<G,ω>|G是CFG,ω是串,G派生ω}图灵机高层描述,请用类C语言写出其算法
2)设有一个上下文无关文法G,它的产生式集为S→AB|BC;A→BA|a;B→CC|b;C→AB|c,和一个终极符串x=baaba,用你给出的算法判定是否x∈L(G)
18、关于同阶渐进符号用法Θ
1)f(n)和g(n)是两通常数论函数,请给出其同阶渐进的定义。
2)请用精确的数学语言证明5n2+8n+1=Θ(n2)
对每一类语言可以提出的判定问题
空集问题:对任意给定的一个语言L的表示,判定L是否为空集
全集问题:对任意给定的字母表Σ上的一个语言L的表示,判定L=Σ*
有限和无限问题:对任意给定的一个语言L的表示,判定L是有限集或无限集
成员问题:对任意给定的字母表Σ上的一个语言L和任意一个串x∈Σ*,判定是否有x∈L 相等性问题:对任意给定的两个语言L1和L2,判定是否有L1=L2
子集问题:对任意给定的两个语言L1和L2,判定是否有L1⊆L2
CFG派生串问题的CYK算法
例题:设有一个上下文无关文法G,它的产生式集为S→AB|BC;A→BA|a;B→CC|b;C→AB|c,和一个终极符串x=baaba,要用CYK算法判定是否x∈L(G)
由算法的第一步,V11={E|E→b}={B},V21={E|E→a}={A,C},V21=V51={A,C}, V21=V51={B} 由算法的第二步,可以求Vi2,i=1,…,5-2+1,例如V12={E|E→FH,F∈V11,H∈V21}={E|E →BA,或E→BC}={S,A}
其他依次类推,V15={S,A,C},由于S∈V15,则X∈L(G)
乔姆斯基语言体系:
正规语言是确定上下文无关语言的真子类
确定上下文无关语言类是上下文无关语言的真子类
上下文无关语言类是上下文有关语言类的真子类
上下文有关语言类是递归语言的真子类
递归语言类是递归可枚举语言的真子类
对于语言,可以定义多种运算
语言集合所定义的各种运算:并,补,交,差等
语言字符串所定义的各种运算:求逆、求前缀、求后缀、连接等
语言字母表与语言字母表之间的映射:替换、同态、逆同态等。