可计算性与计算复杂性
- 格式:doc
- 大小:890.00 KB
- 文档页数:41
《大学计算机基础与计算思维》课后习题参考答案目录第1章计算、计算机与计算思维 (1)第2章数据的计算基础 (3)第3章计算机硬件系统 (5)第4章操作系统基础 (9)第5章算法与数据结构 (11)第6章程序设计及软件工程基础 (14)第7章数据库技术 (16)第8章计算机网络 (19)第9章信息安全与职业道德 (21)第10章计算软件 (24)第11章办公软件Office 2010 (25)算机科学与技术学院计算机基础教学部2015年9月第1章计算、计算机与计算思维1.1 举例说明可计算性和计算复杂性的概念。
答:对于给定的一个输入,如果计算机器能在有限的步骤内给出答案,这个问题就是可计算的。
数值计算、能够转化为数值计算的非数值问题(如语音、图形、图像等)都是可计算的。
计算复杂性从数学上提出计算问题难度大小的模型,判断哪些问题的计算是简单的,哪些是困难的,研究计算过程中时间和空间等资源的耗费情况,从而寻求更为优越的求解复杂问题的有效规则,例如著名的汉诺塔问题。
1.2 列举3种电子计算机出现之前的计算工具,并简述其主要特点。
答:(1)算盘通过算法口诀化,加快了计算速度。
(2)帕斯卡加法器通过齿轮旋转解决了自动进位的问题。
(3)机电式计算机Z-1,全部采用继电器,第一次实现了浮点记数法、二进制运算、带存储地址的指令等设计思想。
1.3 简述电子计算机的发展历程及各时代的主要特征。
答:第一代——电子管计算机(1946—1954年)。
这个时期的计算机主要采用电子管作为运算和逻辑元件。
主存储器采用汞延迟线、磁鼓、磁芯,外存储器采用磁带。
在软件方面,用机器语言和汇编语言编写程序。
程序的编写与修改都非常繁琐。
计算机主要用于科学和工程计算。
第二代——晶体管计算机(1954—1964年)。
计算机逻辑元件逐步由电子管改为晶体管,体积与功耗都有所降低。
主存储器采用铁淦氧磁芯器,外存储器采用先进的磁盘,计算机的速度和可靠性有所提高。
理解计算机中的计算理论与复杂性计算机中的计算理论与复杂性计算理论是计算机科学的重要分支之一,它研究计算过程的本质和性质,为计算机科学提供了理论基础。
而复杂性理论则研究计算问题的复杂性,即问题的难解程度。
在计算机发展的不断推动下,计算理论与复杂性的研究越发重要。
本文将从计算理论和复杂性两个方面对相关概念和研究进行介绍和探讨。
一、计算理论计算理论是计算机科学中关于计算概念和过程的研究。
它主要分为可计算性理论和形式语言与自动机理论两大部分。
1. 可计算性理论可计算性理论研究的是什么问题可以用计算机算出,以及如何判断一个问题是否可计算。
它的核心思想是“图灵机”,即由英国数学家图灵提出的一种理论模型,用于描述计算过程。
可计算性理论的研究对象包括了函数的计算性、计算问题是否可判定、可计算函数的分类等。
2. 形式语言与自动机理论形式语言与自动机理论研究的是描述和处理信息的形式化语言和自动机模型。
形式语言的研究对象包括了正则语言、上下文无关语言和上下文敏感语言等。
而自动机模型则包括了有限状态自动机、下推自动机和图灵机,用于描述和处理形式语言。
二、复杂性理论复杂性理论是研究计算问题的复杂性的学科。
它关注的是问题的求解难易程度,即问题的复杂性。
复杂性理论主要分为计算复杂性理论和各类计算问题的复杂性。
1. 计算复杂性理论计算复杂性理论研究的是计算问题的复杂性度量和分类。
其中最具代表性的是时间复杂性和空间复杂性。
时间复杂性研究的是计算问题在计算时间上的耗费,空间复杂性研究的是计算问题在计算空间上的耗费。
常用的时间复杂性度量是“大O记号”,用于表示问题在最坏情况下的耗时增长趋势。
2. 计算问题的复杂性计算问题的复杂性研究的是不同类型问题的复杂性分类以及它们之间的关系。
其中最经典的研究是关于P类问题和NP类问题的划分。
P 类问题指的是可以在多项式时间内求解的问题,而NP类问题指的是可以在多项式时间内验证的问题。
复杂性理论的研究则主要集中在P与NP问题之间的关系。
可计算性与计算复杂性导引第二版教学设计课程概述本课程主要介绍可计算性和计算复杂性理论的基本概念和方法,旨在帮助学生理解计算机科学的核心思想和方法,培养学生的计算思维和解决问题的能力。
课程目标1.了解可计算性和计算复杂性理论的基本概念和方法。
2.了解主要的计算模型和算法设计技术。
3.学会分析算法的时间和空间复杂度。
4.学会证明计算问题的不可解性和不可近似性。
5.培养学生的抽象思维和解决问题的能力。
教学内容1.可计算性理论介绍可计算性理论的基本概念,包括图灵机、递归函数、停机问题、可计算函数和不可计算函数等。
2.计算复杂性理论介绍计算复杂性理论的基本概念,包括时间复杂度、空间复杂度、P、NP、NP 完全问题、NP难问题等。
3.算法设计介绍常见的算法设计技术,包括贪心、动态规划、分治、回溯、随机化等。
4.算法分析介绍算法分析的基本方法和技巧,包括渐进符号、递归方程、对数级数等。
5.不可解性与不可近似性介绍一些经典的不可解性和不可近似性结果,包括halting problem、cook定理、PCP定理等。
教学方法本课程采用理论讲授和实践演练相结合的方式进行教学。
1.理论讲授通过讲授理论知识和解释实例,介绍可计算性和计算复杂性理论的基本概念和方法。
2.实践演练通过设计算法,分析算法复杂度,并完成一些经典问题的求解,锻炼学生的算法分析和实现能力。
教学评估1.平时成绩:作业和实验占比30%,课堂表现占比20%,出勤占比10%。
2.考试成绩:闭卷笔试,占比40%。
3.课程设计和报告:占比10%。
学生需要设计一个算法或证明一个不可解性或不可近似性定理,并完成一篇报告。
参考书目1.Sipser, M. (2012), Introduction to the Theory of Computation, 3rd edition, Cengage Learning.2.Papadimitriou, C. (1994), Computational Complexity, Addison-Wesley.3.Cormen, T. H., Leiserson, C. E., Rivest, R. L., & Stein, C. (2009). Introduction to Algorithms, 3rd edition, MIT Press.结语通过本课程的学习,学生可以深入了解计算机科学的核心理论,掌握算法设计和分析技术,以及认识到一些计算问题的不可解性和不可近似性。
可计算性与计算复杂性1.可计算性:可计算性研究的是什么样的问题可以通过其中一种计算模型解决。
早期的计算模型是图灵机(Turing machine),后来发展出其他等效的计算模型,例如递归函数、Lambda演算等。
根据这些计算模型,可以定义一类问题为可计算问题,也就是可以通过计算模型求解的问题。
1.1停机问题:停机问题是可计算性的典型例子,它是指根据给定的程序和输入,判断这个程序是否会在有限的时间内停止运行。
根据图灵在20世纪30年代证明的停机问题的不可判定性,他证明了不存在一个通用的算法能够判断任意程序是否停机,这个结论被称为图灵不可判定性定理。
1.2基本计算问题:除了停机问题,可计算性还研究了一些其他的基本计算问题。
例如,可计算性研究了自动机是否可以接受一些字符串,或者函数是否可以被一个特定的计算模型计算等。
1.3计算模型的等效性:在可计算性理论中,研究了不同计算模型之间的等效性。
图灵机、递归函数和Lambda演算等计算模型之间可以相互转化,这意味着它们的计算能力是等价的。
这个等价性的概念对理解可计算性是至关重要的。
2.计算复杂性:计算复杂性研究的是什么样的问题可以在多项式时间内解决,以及在不同条件下求解问题所需要的计算资源(例如时间、空间等)。
计算复杂性理论的核心是研究问题的复杂度类别和难度。
2.1多项式时间可解问题:计算复杂性理论将问题分为多项式时间可解问题和非多项式时间可解问题。
多项式时间可解问题是指那些可以在多项式时间内求解的问题。
这些问题的解决方法被认为是高效的,因为随着输入规模的增加,所需计算资源的增长是可接受的。
2.2难解问题:非多项式时间可解问题是那些不可以在多项式时间内求解的问题。
例如,图的旅行商问题(TSP)和布尔可满足性问题(SAT)等问题被认为是难解问题。
难解问题的求解需要指数级的时间或空间复杂度,因此在实际中很难找到有效的算法。
2.3复杂度类别:计算复杂性理论还研究了不同问题的复杂度类别。
关于计算
第八讲
计算复杂性的度量方法
计算复杂性理论
计算复杂性理论研究各种可计算问题在计算过程中资源(如时间、空间等)的耗费情况。
算法的时间度量
从算法中取一种对于研究
问题来说是基本操作的原操作
,以该基本操作重复执行的次
数作为算法执行的时间度量
计算复杂性的度量方法
算法的时间度量
算法的所需时间与问题规模的函数T(n)
(a) X=X+1
(b) for(i=1; i<=n; i++)
X=X+1
(c) for(i=1; i<=n; i++)
for(j=1; j<=n; j++)
X=X+1
以上操作执行的次数分别是
1, n, n^2
如何降低计算复杂度
常见的算法时间复杂度
指数时间
多项式时间
好的算法
多项式时间算法。
计算复杂性的度量方法
确定性问题:只有肯定和否定答案。
P类问题:具有多项式时间
算法的确定性问题形成的计
算复杂性类。
P类问题包含了大量的
已知自然问题,如计算最大
公约数、计算π值、排序问
题、二维匹配问题等。
计算复杂性的度量方法
非确定算法
猜测一个变量的真值赋值
检查该赋值是否满足NP类问题:由非确定性算法在多项式时
间内可计算的判定问题所组成的集合。
NP类问题数量巨大,如完全子图问题、
图的着色问题、汉密尔顿回路问题、以
及旅行销售员问题等。
《计算理论》复习题总结《计算理论》复习题总结1、⾃动机、可计算性、复杂性内涵及关系;计算理论的三个传统的核⼼领域:⾃动机、可计算性和复杂性。
通过“计算机的基本能⼒和局限性是什么?“这⼀问题将这三个领域联系在⼀起。
可计算理论与复杂性理论是密切相关的,在复杂性理论中,⽬标是把问题分成容易计算的和难计算的;⽽在可计算理论中,是把问题分成可解的和不可解。
⾃动机阐述了计算的数学模型的定义和性质,主要包含两种模型:有穷⾃动机模型;上下⽂⽆关⽂法模型。
可计算性理论和复杂性理论需要对计算机给了⼀个准确的定义。
⾃动机理论允许在介绍与计算机科学的其他⾮理论领域有关的概念时使⽤计算的形式化定义。
2、有穷⾃动机、正则语⾔、正则表达式、⾮确定有穷⾃动机、⾮正则语⾔;有穷⾃动机:描述能⼒和资源极其有限的计算机模型。
是⼀个5元组(Q,∑,δ,q0,F),其中1)Q是⼀个有穷集合,称为状态集。
2)∑是⼀个有穷集合,称为字母表。
3)δ:Q×∑→Q是转移函数。
4)q0∈Q是起始状态。
5)F?Q是接受状态集。
正则语⾔:如果⼀个语⾔能被有穷⾃动机识别。
正则表达式:⽤正则运算符构造描述语⾔的表达式。
称R是正则表达式,如果R是:1)a,a是字母表中的⼀个元素;2)ε;3)?;4)(R1?R2);5)(R1 R2);6)(R1*)⾮确定有穷⾃动机:是⼀个5元组(Q,∑,δ,q0,F),其中1)Q是有穷状态集。
2)∑是有穷字母表。
3)δ:Q×∑ε→P(Q)是转移函数。
4)q0∈Q是起始状态。
5)F?Q是接受状态集。
3、上下⽂⽆关语⾔及上下⽂⽆关⽂法、歧义性、乔姆斯基范式、下推⾃动机、等价性、⾮上下⽂⽆关语⾔;上下⽂⽆关语⾔:⽤上下⽂⽆关⽂法⽣成的语⾔。
上下⽂⽆关⽂法:是⼀个4元组(V,∑,R,S)且1)V是⼀个有穷集合,称为变元集2)∑是⼀个与V不相交的有穷集合,称为终结符集3)R是⼀个有穷规则集,每条规则由⼀个变元和⼀个由变元及终结符组成的字符串构成,4)S∈V是起始变元歧义性:如果字符串W在上下⽂⽆关⽂法G中有两个或者两上以上不同的最左派⽣,则称G歧义地产⽣的字符串W。
可计算性与计算复杂性可计算性是研究计算问题是否具有解决方法的理论。
可计算性理论起源于上世纪30年代,由图灵(Alan Turing)等人提出。
可计算性的核心观点是,一个计算问题是否可以用一个确定的算法来解决。
如果存在一个算法解决了一些问题,那么这个问题就是可计算的。
例如,对于给定的两个整数,判断它们是否互质是一个可计算问题,因为存在一种算法可以解决这个问题。
另一方面,对于一个不可计算的问题,不存在一个算法可以解决它,如停机问题(Halting Problem)。
计算复杂性是研究计算问题所需的资源的理论。
计算复杂性理论的主要目标是研究在给定资源限制下,一个问题是否可以在合理的时间或空间内解决。
计算复杂性关注的是问题的难解程度,即需要多少资源才能解决问题。
计算复杂性理论通过引入时间和空间复杂度来描述问题的难度。
常见的时间复杂度表示方法有大O记号,如O(n)、O(nlogn)等,表示问题的解决时间与问题规模n之间的关系。
类似地,空间复杂度表示问题所需的存储空间。
计算复杂性理论中的一个重要问题是P与NP问题。
P问题(Polynomial Time)是指可以在多项式时间内解决的问题。
换句话说,对于一个P问题,存在一个多项式时间的算法可以解决它。
例如,对于给定的两个整数,判断它们是否互质就是一个P问题,因为存在一种多项式时间的算法可以解决。
P问题是计算复杂性理论中最为理想的一类问题。
NP问题(Nondeterministic Polynomial Time)是指可以在多项式时间内验证一个解的问题。
对于一个NP问题,如果一个解被提供,可以在多项式时间内验证它的正确性。
例如,对于给定的一组整数和一个目标值,判断是否存在一组整数使得它们的和等于目标值就是一个NP问题。
虽然验证解的正确性可以在多项式时间内完成,但寻找解的过程可能需要指数时间等非多项式时间,因此NP问题被认为是一类困难问题。
P问题与NP问题之间的关系是计算复杂性理论中一个重要的开放问题,即P=NP问题。
1 引言可计算理论建立于二十世纪三十年代。
可计算理论的研究对象有三个 : (1) 判定问题 ;(2 ) 可计算函数 ; (3 ) 计算复杂性。
判定问题主要是判定方程是否有解 ;可计算函数主要讨论一个函数是否可计算 , 建立了原始递归函数、图灵机等许多数学模型判定一个函数是否属于可计算函数 ;计算复杂性主要讨论的问题是P =?NP。
可计算理论的计算模型主要包括 : (1) Turing机 ; (2 ) 递归函数; (3 ) λ演算 ; (4) POST系统 ; (5) 正则算法。
可计算理论是理论计算机科学 , 属于计算机科学的基础研究领域 , 可计算理论是计算机软件工程、系统结构、并行运算、图像处理、人工智能、网络的数学理论基础和工具.可计算性理论是从三十年代初期开始哥德尔、丘吉、图林和波斯特等人为了解决数学基础方面的问题,(具体说.来是为了通过薮学方法来研究公理系统的性质),而发展起来的。
(其中波斯特的工作则是在二十年代前期已经作出的,但到了四十年代才公开发表。
)电子计算机产生后,可计算性理论的有些成果被应用于计算技术。
(近十年来发展起来的可行计算理论则是与计算技术直接有关并作为这一技术的数学理论而发展的。
)2 历史变迁可计算理论是关于计算机械本身的数学理论. 二十世纪前, 计算机械总是“算计”别的对象, 很少“算计”自己。
二十世纪 30年代, 为了要解决一个基础问题, 即是否存在不可判定问题, 数理逻辑学家提出了几种不同的 (后来证明是彼此等价的) 关于算法的定义, 从而建立了可计算性理论。
德国数学家希尔伯特 (Hilbert 1862-1943) 认为科学在每个时代都有它自己的问题, 而这些问题的解决对于科学发展具有深远意义。
他指出:“只要一门科学分支能提出大量的问题, 它就充满着生命力, 而问题缺乏则预示着独立发展的衰亡和终结。
” 在1900年国际数学家代表大会上, 希尔伯特发表了题为《数学问题》的著名讲演, 他根据十九世纪数学研究的成果和发展趋势, 提出了23个最重要的数学问题。
可计算性与计算复杂性Calculability & Complexity第二章可计算函数 (1)1、原语言 (1)2、可计算函数 (1)第三章递归函数 (3)1、算子 (3)2、原始递归函数 (3)3、原始递归谓词 (3)4、受囿取极小 (4)5、递归与可计算性 (5)习题 (5)第四章POST-TURING程序和TURING机 (8)1、P-T程序 (8)2、Turing机 (9)3、P-T程序编码 (10)4、一些定理 (10)习题 (11)第五章半可计算性 (16)习题 (17)第六章半图厄系统 (18)1、半图厄系统 (18)2、半图厄系统与图灵机、半可计算集 (18)3、不可判定问题 (18)习题 (19)第七章图灵机 (26)习题 (26)第八章计算复杂性理论 (27)习题 (28)历年真题 (29)第二章可计算函数1、原语言本书所有变元为非负整数五条基本指令:①X=X+1②X=X-1 (X=0,结果仍为0)③TO A IF X≠0④TO A⑤Y=X宏指令:·X2、可计算函数部分可计算函数:若有一程序P,使得P(X1,X2,...,X n)=f(X1,X2,...,X n),则称f(X1,X2,...,X n)为部分可计算函数。
这里“=”表示:或者两边都无定义,或者两边都有定义并且值相同。
可计算函数:若f(X1,X2,...,X n)是部分可计算的而且是全函数,则称f(X1,X2,...,X n)为可计算函数。
两个常用函数X1-X2,X1≥X2X1-X2,X1≥X2X1X2 = X12 =无定义,X1<X20 ,X1<X2约定:①输入变元:X0,X1,……②临时变元:Z0,Z1,……③输出变元:Y④初始时,一切变元为0(输入变元除外)⑤转向无定义标号或执行了最后一条指令时,停机习 题用原语言证明下列函数是可计算函数(显然均为全函数,故只需证明存在n 元程序P ,使得P ϕ(X 1,X 2,...,X n )=f(X 1,X 2,...,X n )即可) (1)2121(,)X f X X X =(6)2()[log (1)]f X X =+第三章 递归函数1、算子复合算子:设一个函数y=f(z 1,z 2,...,z m ),和一组函数z 1=g 1(x 1,x 2,...,x n ) z 2=g 2(x 1,x 2,...,x n ) ... z m =g m (x 1,x 2,...,x n ) 称y=f(z 1,z 2,...,z m )=f(g 1(x 1,x 2,...,x n ), g 2(x 1,x 2,...,x n ),..., g m (x 1,x 2,...,x n )) 是复合算子作用于函数f 和g 1,g 2,...,g m 的结果。
(h 是全函数)取极小算子:设f(x 1,x 2,...,x n ,z)是全函数,定义h(x 1,x 2,...,x n )= min{z|f(x 1,x 2,...,x n ,z)=0}称h 是取极小算子z 作用于函数f 的结果。
(h 不一定是全函数,若f 为正则函数,则h 为全函数)2、原始递归函数原始递归函数:由初始函数S(x)=x+1、n(x)=0、12(,,...,)n in i x x x x = (1≤i ≤n)出发,只用复合和递归算子得到的函数称为原始递归函数。
(它们都是全函数)原始递归函数3、原始递归谓词0 ,当P (x 1,x 2,...,x n ) 特征函数:设谓词P (x 1,x 2,...,x n ),定义函数δ(x 1,x 2,...,x n )=1 ,当~P (x 1,x 2,...,x n )称δ为谓词P 的特征函数。
0 ,当(x 1,x 2,...,x n )∈Sδ(x 1,x 2,...,x n )= , 称δ为集合S 的特征函数。
1 ,当(x 1,x 2,...,x n )∉S原始递归谓词(集合):谓词P (集合S )的特征函数是原始递归函数。
可计算谓词(集合):谓词P (集合S )的特征函数是可计算的。
谓词的受囿全称量词:12120()(,,,...,)(,,,...,)1yy n nt t P t x x x P t x x x ≤=∀⇔=∏谓词的受囿存在量词:1212()(,,,...,)(,,,...,)0yy n nt t P t x x x P t x x x ≤=∃⇔≠∑f(x 1,x 2,...,x n ,y)是原始递归函数,则120/1(,,...,)yt f x x t =∑和120/1(,,...,)yt f x x t =∏是原始递归函数。
P 、Q 是原始递归谓词,则~P 、P Q ∨、P Q ∧是原始递归谓词。
R 、S 是原始递归集合,则R 、R S ⋃、R S ⋂是原始递归集合。
P 是原始递归谓词,g 和h 是原始递归函数,则 g (x 1,x 2,...,x n ) ,当P(x 1,x 2,...,x n )f (x 1,x 2,...,x n )= 是原始递归函数。
h (x 1,x 2,...,x n ) ,当~P(x 1,x 2,...,x n )P (x 1,x 2,...,x n )是原始递归谓词,h 1,h 2,…,h n 是原始递归函数,则P (h 1,h 2,...,h n )是原始递归谓词。
f 和g 是原始递归函数,则f=g 是原始递归谓词。
P (t,x 1,x 2,...,x n )是原始递归谓词,则12n ()P(t,x ,x ,...,x )y t ≤∀和12n ()P(t,x ,x ,...,x )y t ≤∃是原始递归谓词。
4、受囿取极小受囿取极小:设P(t,x 1,x 2,...,x n )是一个谓词,定义函数min{t | P(t,x 1,x 2,...,x n ) =1} ,若12n ()P(t,x ,x ,...,x )y t ≤∃12min (,,,...,)n t yP t x x x ≤=0 ,否则称min t y≤为受囿取极小。
若P(t,x 1,x 2,...,x n )是原始递归谓词,则函数f (y,x 1,x 2,...,x n )=12min (,,,...,)n t yP t x x x ≤是原始递归函数。
原始递归函数 2n P ...P 歌德尔数] y=[b 1,b 2,…,b m ] ,b1,b ,b ,…,b ]5、递归与可计算性部分递归函数:由初始函数S(x)=x+1,n(x)=0,12(,,...,)n in i x x x x = (1≤i ≤n) 出发,用复合、递归和取极小算子得到的函数称为部分递归函数。
递归函数:由初始函数S(x)=x+1,n(x)=0,12(,,...,)n in i x x x x = (1≤i ≤n) 出发,用复合、递归和对正则函数取极小算子得到的函数称为递归函数。
原始递归(全函数)⊂递归(全函数)⊂部分递归(部分函数)可计算⇔递归部分可计算⇔部分递归 习 题1、证明下列函数是原始递归函数(1)}xf(x,y)=xxy 个xf(x,y)可递归定义如下: f(x,0)=1f(x,y+1)=exp(x,f(x,y))∵exp(x,y)为原始递归函数,∴f(x,y)为原始递归函数。
(2设=t ,则t y ≤x <(t+1)y∴=min t x≤(t+1)y >x∵x y 是原始递归函数,x >y 是原始递归谓词,∴(t+1)y >x 是原始递归谓词,∴f(x,y)是原始递归函数。
(3)2()[log ]f x x =设2[log ]x =t ,则2t ≤x <2t+1 ∴ 2[log ]x =min t x≤2t+1>x∴f(x)是原始递归函数。
(4)f(x)表示x 各位数字之和 设x 为n 位数,n=2[log ]x +1110()[(,10)(,10)]10n i i i i f x R x R x -+-==-⋅∑∴f(x)是原始递归函数。
(5)设a n =f(n), b n =g(n)都是递增的原始递归函数,将a n ,b n (n =0,1,2,……)混合在一起,再从小到大排列得到函数c n =φ(n),证明φ(n)是原始递归函数。
φ(n)递归定义如下: φ(0)=min{a0,b 0} φ(n+1)=max{,}min {(()()()())(())}n n n i n j t a b i t a j t b t n φ≤≤≤∃=∨∃=∧>∵0000000000min{a ,b }= a (sub(a ,b )) + b (sub(b ,a ))d(a ,b )αα⋅⋅⋅n n n n n n n n n n max{a ,b }= b (sub(a ,b )) + a (sub(b ,a ))d(a ,b )αα⋅⋅⋅∴min{a 0,b 0},max{a n ,b n }是原始递归函数,∴φ(n)是原始递归函数。
(6)将任意两个素数乘积按从小到大排成一个序列,令这个序列通项即第n 项为f(n),证明f(n)是原始递归函数。
f(n)可递归定义如下:f(1)=4 ;2*2f(n+1)= 2min{()()()()}nn n i j t P i j t P P t f n ≤≤≤∃∃=⋅∧> ∴f(n)是原始递归函数。
(7)称三边均为整数的直角三角形的斜边为勾股数,将它们从小到大排列,第n 个勾股数记作R(n),证明R(n)是原始递归函数。
R(n)可递归定义如下: R(1)=5R(n+1)=222222()()()min {()()()(())}R n R n t R n i j i j t t R n ≤≤≤∃∃+=∧> ∴R(n)是原始递归函数。
2、计算3*2=?3=20×31=[0,1],2=21=[1],3*2=[0,1,1]=20×31×51=153、用原语言程序(限用五条基本指令)计算谓词“x 1=x 2”的特征函数。
0 ,x 1=x 2 δ(x 1,x 2)=1 ,x 1≠x 24、用原语言程序证明每个原始递归函数都是可计算函数。
A 、证明初始函数是可计算的 S (X )=X+1n(X)=0…………第四章 Post-Turing 程序和Turing 机1、P-T 程序(不改变指针位置) 数x 在带上的表示:x (01=,111=,31111=)f(x 1,x 2,...,x n )的初值在带上的表示:12...n x Bx B Bx (2,0,3)=111B1B1111 结果:带上1的个数减1f(x)=P-T 部分可计算:若有一个P-T 程序计算函数f ,则称f 是P-T 部分可计算的。