在6.1节定义算法时指出,算法必须具备可终止性,算法的可终止性是指算法应能在有限的操作步骤后结束。图6-8 汉诺塔问题的求解示意图这样的问题求解算法可以设计成一个递归结构的算法。在算法分析中,把存在时间效率为多项式函数算法的问题称作可解的问题,把只存在时间效率等于或大于指数函数算法的问题称作难解的问题。寻求所有目前认为是难解的问题的多项式函数的算法,一直是计算机科学领域非常重要的研究课题。......
2023-11-18
每天都有一些程序设计人员编写一些陷入死循环的程序。当一个程序处于死循环状态时,我们无法确切地知道这个程序是一个运行得很慢的程序,还是一个陷入了死循环的程序。一般情况下,用户需要等待相当长一段时间以后,才估计现在运行的程序可能陷入了死循环,会强行终止该程序的运行。如果存在一个算法(或者说一个程序),能预先判断出某个程序会陷入死循环,将简化许多问题的处理方法,这称为停机问题。遗憾的是停机问题是一个没有确定答案的问题。
停机问题有许多不同的表述方法。下面给出停机问题的一个著名例子。
【例6-6】 停机问题。当输入任意一个整数时,判断运行下列程序代码段是否会停机。程序代码段为:
WHILE(n>1)
{
IF(n%2!=0)THEN n=3*n+1;
ELSE n=n/2;(www.chuimin.cn)
}
其中,算术表达式n%2表示结果为n除以2后的余数,所以分支判断条件n%2!=0,是判断数值n是否为奇数。算术表达式n/2表示结果为n除以2的整数部分。
分析:这段程序代码对所有输入整数n都会停机吗?没有人知道答案。很多研究者做过的许多试验只能表明:已经试过的每一个输入数值该代码段都会停机。
算法要求具有确定性,但是,许多问题的求解步骤不具有确定性的答案。我们把不具有确定性答案的问题称为不可解问题。
我们希望计算机解决的许多问题是不可解的问题。例如,判断任意一个程序中是否存在计算机病毒的问题是一个有实用意义的问题。所谓计算机病毒,就是怀有恶意的一些人蓄意强加在计算机中的一段“捣乱”程序。但遗憾的是,我们不能肯定地确定任意一个程序是否包含计算机病毒。因此,所有反病毒程序测试出的某个程序包含病毒的诊断,都只能基于“可能”的基础上。这就像医生诊断某个患者的病因,只能基于“可能”的基础上,不可能百分之百的正确。
要说明的是,对于大多数不可解的问题,虽然我们不能百分之百的肯定求解方法正确,但我们能做到在大部分情况下求解方法正确。这就像一个医生在给病人开刀前,虽然没有百分之百的把握能肯定手术成功,但能做到大部分情况下手术成功。
有关计算机导论的文章
在6.1节定义算法时指出,算法必须具备可终止性,算法的可终止性是指算法应能在有限的操作步骤后结束。图6-8 汉诺塔问题的求解示意图这样的问题求解算法可以设计成一个递归结构的算法。在算法分析中,把存在时间效率为多项式函数算法的问题称作可解的问题,把只存在时间效率等于或大于指数函数算法的问题称作难解的问题。寻求所有目前认为是难解的问题的多项式函数的算法,一直是计算机科学领域非常重要的研究课题。......
2023-11-18
“黑客”最初是用来称呼那些试图测试计算机程序能力极限的计算机用户。但后来当某些人尝试非法访问计算机系统时,新闻媒体就用“黑客”来称呼那些试图未经授权对计算机系统进行访问的人。“黑客”的行为是错误的,一些对计算机知识有着深入了解的人,为了展示自己的才能,实现自我价值,或被利益诱惑而成为“黑客”,并对一些政府部门或企业的内网进行攻击,这些都是违法的行为。......
2023-11-25
我们在7.2节中曾指出,过程是算法的基本元素,过程可以使一个求解大问题的算法分解为若干个求解子问题算法的有机合成。过程的参数是局部变量。如图7-6所示,过程调用时,实参拷贝数值6给虚参,若过程运行时虚参的数值改变为8,则过程结束后主程序中实参的数值还是原来的6,而不是8。......
2023-11-18
通过第2章和第3章的讨论,我们对计算机硬件的基本结构有了更深一步的了解,图3-6给出了计算机硬件基本结构的概念框图。控制总线的控制信号一般都来自于CPU中的控制器。图3-4给出的CPU的基本构成中也有数据的传送通道,因为CPU是由拇指大小的一个芯片构成的,所以图3-4中的CPU内的数据传送通道称为片内总线。......
2023-11-18
查找某一类软件时,可以通过网站上的“软件下载”或者在搜索主题中输入需要查找的软件名称查找该软件。如图10-7是在http://it.sohu.com上查找软件的网页,在“搜索”中输入需要搜索的软件名称,就可以进行搜索了。图10-7 软件查找网页图10-8是查找到的“瑞星杀毒软件2003”软件,网页上有该软件的软件名称、更新时间、软件授权、软件平台、软件大小、软件作者、作者主页、下载时间、评价等级、下载次数等内容的说明。......
2023-11-18
目前的计算机基本都属于冯·诺依曼计算机,虽然计算机还有其他一些特点,但学术界把存储程序和0、1编码看作冯·诺依曼计算机的本质特点所在。多年来,计算机科学领域的许多研究人员致力于研究和提出新的计算机体系结构和新的工作方式,许多研究成果也得到了高度评价,但突破冯·诺依曼计算机的新的计算机体系结构目前还没有研究成功。......
2023-11-18
目前已经普遍使用的输入设备还有如下3种。条形码阅读器的构造以及工作原理和扫描仪的非常类似。条形码阅读器把条形码编码转换为相应的字符编码存储。条形码阅读器对像素点参数和灰度层参数要求很低。条形码阅读器必须和条形码配合使用。......
2023-11-18
相关推荐