Q17-1 在简单语言中,有三种基本语句是其他语句的基础,说出他们的名字,并描述它们的功能。
A:递增语句:对变量加1
递减语句:从变量中减1
循环语句:在变量的值不为0时,重复进行一个动作(或一系列动作)
Q17-2 说明如何用三种基本语句把一个变量的值赋给另一个变量。
A:
Q17-3 图灵机和简单语言间有何关系?
A:一个可以被简单语言解决的问题也可以被图灵机解决。
Q17-4 说明图灵机的组成和每一部件的功能。
A:图灵机的组成:磁带:存储数据,类似与现代计算机中使用的随机存储设备内存。
控制器:理论上功能作用类似于现代计算机中央处理单元(CPU)的一个部件,它是一个 有限状态自动机,即该机器有预定的有限个状态并能根据输入从一个状态转移到另一个状 态,但任何时候它只能处于这些状态中的一种。
读/写头:任何时候总是指向磁带上的一个符号,我们称这个符号为当前符号,读写头每 次在磁带上读写一个符号。他向左移、向右移。
Q17-5 图灵机磁带是如何划定数据界限的?
A:图灵机磁带上定界数据的一种方法是使用两个空格,一个在数据的开头,一个位于数据 的末尾。
Q17-6 当读 / 写头完成读或写一个符号后,下一步是什么?
A:根据控制器指令,选择向左移或向右移动读取下一个符号。
Q17-7 状态转移图和图灵机控制器有何联系?
A:状态转移图是图灵机程序的图像表示。
Q17-8 转移图与转移表有何联系?它们有相同的信息吗?谁包含的信息要多些?
A:转移表是转移图的表格表示法,它们拥有相同的信息。
Q17-9 什么是哥德尔数?怎样用哥德尔数证明停机问题是不可解决的?
A:哥德尔数是一个无符号数,他可以被分配给任何用特定语言编写的程序。在停机程序中, 当一个程序是另一个程序的输入时,我们将该程序表示为其哥德尔数。
Q17-10 比较并区分多项式可解问题和非多项式可解问题的复杂度。
A:多项式可解问题的复杂度较非多项式可解问题要小,在输入数量较小时,两者均很容易解决,但当输入数量相对较大时,多项式可解问题要更容易解决。
P17-1 如下:
Y ← 0
Temp ← 0
while(X)
{
decr(X)
incr(Y)
incr(Temp)
}
while(Temp)
{
decr(Temp)
incr(X)
}
C语言实现,如下:
P17-2 如下:
Temp ← X // See solution to Exercise P17-1
Z ← Y // See solution to Exercise P17-1
while(Temp)
{
decr(Temp)
incr(Z)
}
P17-3 如下:
Temp1 ← X // See solution to exercise P17-1
Temp2 ← Y // See solution to exercise P17-1
Z ← 0
while(Temp1)
{
decr(Temp1)
Z = Z + Temp2 // See solution to exercise P17-2
}
P17-4
Temp1 ← X //See solution to exercise P17-1
Temp2 ← Y //See solution to exercise P17-1
Z ← 1
while(Temp1)
{
decr(Temp1)
Z = Z * Temp2 //See solution to exercise P17-3
}
P17-5
while(X)
{
decr(X)
decr(Y)
}
P17-6
Temp ← X + 1
while(X)
{
decr(X)
A1
Temp ← 0
}
while(Temp)
{
decr(Temp)
A2
}
P17-7 参考书上内容
P17-8 参考书上内容
P17-9 参考书上内容
P17-10 参考书上内容
P17-11 参考书上内容
P17-12 参考书上内容
P17-13 参考书上内容
P17-14 参考书上内容
P17-15 参考书上内容
P17-16 用1个1表示0,使用两个1表示1,三个1表示2,……,n+1个1表示n
P17-17
X3 ← 0 // Godel Number: CF3DBF3E
while(X2) // Godel Number: CF2
{ // Godel Number: D
decr(X2) // Godel Number: BF2
incr(X3) // Godel Number: AF3
} // Godel Number: E
while(X1) // Godel Number: CF1
{ // Godel Number: D
decr(X1) // Godel Number: BF1
incr(X3) // Godel Number: AF3
} // Godel Number: E
P17-18
P17-19
while(X1) // Godel Number: CF1
{ // Godel Number: D
decr(X1) // Godel Number: BF1
} // Godel Number: E