目前的计算机基本都属于冯·诺依曼计算机,虽然计算机还有其他一些特点,但学术界把存储程序和0、1编码看作冯·诺依曼计算机的本质特点所在。多年来,计算机科学领域的许多研究人员致力于研究和提出新的计算机体系结构和新的工作方式,许多研究成果也得到了高度评价,但突破冯·诺依曼计算机的新的计算机体系结构目前还没有研究成功。......
2025-09-30
每天都有一些程序设计人员编写一些陷入死循环的程序。当一个程序处于死循环状态时,我们无法确切地知道这个程序是一个运行得很慢的程序,还是一个陷入了死循环的程序。一般情况下,用户需要等待相当长一段时间以后,才估计现在运行的程序可能陷入了死循环,会强行终止该程序的运行。如果存在一个算法(或者说一个程序),能预先判断出某个程序会陷入死循环,将简化许多问题的处理方法,这称为停机问题。遗憾的是停机问题是一个没有确定答案的问题。
停机问题有许多不同的表述方法。下面给出停机问题的一个著名例子。
【例6-6】 停机问题。当输入任意一个整数时,判断运行下列程序代码段是否会停机。程序代码段为:
WHILE(n>1)
{
IF(n%2!=0)THEN n=3n+1;
ELSE n=n/2;(https://www.chuimin.cn)
}
其中,算术表达式n%2表示结果为n除以2后的余数,所以分支判断条件n%2!=0,是判断数值n是否为奇数。算术表达式n/2表示结果为n除以2的整数部分。
分析:这段程序代码对所有输入整数n都会停机吗?没有人知道答案。很多研究者做过的许多试验只能表明:已经试过的每一个输入数值该代码段都会停机。
算法要求具有确定性,但是,许多问题的求解步骤不具有确定性的答案。我们把不具有确定性答案的问题称为不可解问题。
我们希望计算机解决的许多问题是不可解的问题。例如,判断任意一个程序中是否存在计算机病毒的问题是一个有实用意义的问题。所谓计算机病毒,就是怀有恶意的一些人蓄意强加在计算机中的一段“捣乱”程序。但遗憾的是,我们不能肯定地确定任意一个程序是否包含计算机病毒。因此,所有反病毒程序测试出的某个程序包含病毒的诊断,都只能基于“可能”的基础上。这就像医生诊断某个患者的病因,只能基于“可能”的基础上,不可能百分之百的正确。
要说明的是,对于大多数不可解的问题,虽然我们不能百分之百的肯定求解方法正确,但我们能做到在大部分情况下求解方法正确。这就像一个医生在给病人开刀前,虽然没有百分之百的把握能肯定手术成功,但能做到大部分情况下手术成功。
相关文章
目前的计算机基本都属于冯·诺依曼计算机,虽然计算机还有其他一些特点,但学术界把存储程序和0、1编码看作冯·诺依曼计算机的本质特点所在。多年来,计算机科学领域的许多研究人员致力于研究和提出新的计算机体系结构和新的工作方式,许多研究成果也得到了高度评价,但突破冯·诺依曼计算机的新的计算机体系结构目前还没有研究成功。......
2025-09-30
我们把外存介质上的一个数据集合称为一个文件。文件的字母编号称为文件的设备号。文件通常用一个小数点符号分开成两部分,小数点前的符号串表示文件的名字,小数点后的符号串表示文件的类型。例如,MyFile1.dat和MyFile2.bmp就是两个类型不同的合法的文件名。图2-17 用户的文件结构图2-17所示的文件是用户视图的文件,这样的文件称为逻辑文件。具体设备上的具体物理存储位置中的0、1符号串称为物理文件。......
2025-09-30
当把算法用于人类和计算机之间传递智能时,文字形式算法的主要缺点是表示方法不规范,不同的人描述的相同的算法在用词和语句上有很大差异。又例如,计算机在执行每条语句前,需要首先“识别”出每条语句,C语言程序中每条语句结束后增加的语句结束标记符号“;”,表示当前的一条语句到此结束,这样的标识就方便了计算机对程序语句的“识别”。......
2025-09-30
磁带早在计算机出现以前就被发明,早先的磁带主要用于记录声音,20世纪50年代中期,磁带开始用做计算机的外存。磁带转动的原理是,主动轮转动带动收带盘转动,收带盘转动带动文件盘转动。由于磁带是顺序存储设备,所以存储在磁带上的文件称为顺序文件。图2-15所示的是磁带上数据的组织方式。但是,随着近年来磁带机性能的不断提高,磁带机又开始广泛使用。......
2025-09-30
目前已经普遍使用的输入设备还有如下3种。条形码阅读器的构造以及工作原理和扫描仪的非常类似。条形码阅读器把条形码编码转换为相应的字符编码存储。条形码阅读器对像素点参数和灰度层参数要求很低。条形码阅读器必须和条形码配合使用。......
2025-09-30
我们以3.1.2节的二进制数求和问题sum=x+y=5+7的机器指令程序为例来讨论CPU的工作原理。在程序执行状态下,CPU根据程序计数器中的数值,从内存单元0000000001中取出第一条机器指令,传送给指令寄存器。CPU的工作过程就是如图3-5所示的周而复始的取指令、分析指令和执行指令的过程。CPU处理转移指令的方法是把转移指令的操作数部分的数值赋予程序计数器,从而使CPU取到的下一条指令是非顺序的。......
2025-09-30
根据上面的讨论,内存应由图2-12所示的内存体、地址电路、数据电路和读/写控制电路四部分组成。图2-12 内存的组成内存体是内存的核心,用于存储二进制数据。作为内存核心部件的内存体,通常由随机存取存储器和只读存储器两部分组成。通用计算机内存中大部分内存体都由RAM组成,只有一小部分内存体由ROM组成。自举程序的详细执行过程可见4.3.2节。......
2025-09-30
相关推荐