第一推动丛书·综合系列(套装共8册)
上QQ阅读APP看书,第一时间看更新

操作信息是什么意思?

在计算的过程中,计算机产生一系列内部状态,每个状态都由之前的机器状态和新的输入决定。状态链条从输入数据、算法(规则)和机器的初始状态开始。所有这些,输入、规则、内部状态和输出,都编码信息。由于信息最终都位于状态中,计算机就可以视为一个状态(输入)与另一个状态(当前机器状态)互动产生最终状态(输出)的设备。所有状态都依约定表示什么。最简单的计算只涉及两个状态,初始状态和最终状态。

计算机通过历经由算法和输入数据决定的机器状态序列执行计算过程。字处理软件体现了这个思想。我逐次键入字母和空格(输入),然后看见它们成行成页出现在屏幕上(输出)。每一次键盘敲击与机器当前状态的互动导致形成新的内存和处理器状态,继而又导致屏幕上的特定状态。改变输入就会导致不同的内部状态产生不同的输出,但过程始终完全由输入、程序和机器的设计决定。

计算的广义概念涵盖了范围广泛的活动,可以分为3个宽泛的类别:可逆的、确定性的和随机的。每个类别都各有特点。你的计算机是确定性的并且是不可逆的。因为是确定性的,每次你运行同样的程序都会得到同样的输出。可逆计算指的是既能往前也能往后运行的计算。这意味着可以根据输出得到输入。前面我们考虑了除法问题58432÷83。解决这个问题得到答案704的过程是不可逆的。如果只知道数字704,无论是计算机还是你都无法重构出具体的问题。要让计算可逆,答案就必须包含重构所需的足够信息。比如“704是某数除以83的答案”就能通过适当的算法重构出原来的问题。

随机计算每次运行都会产生不同的输出。至少要有一条规则具有随机行为。随机计算既不可逆也无法重复。但它们能产生你想要的一切,只要你愿意运行计算足够长时间。现代数字计算机是确定性的,设计者花费大量心力就是为了确保这一点。如果一台计算机对相同的输入每次都得出不同的输出,则对大部分应用都不会很有用。

数字计算机之所以可以实现,是因为可以制造出能基于是/否、通/断或电平高/低的顺序组合执行逻辑运算的物理设备。在计算机中,从输入和初始的设备状态开始,顺序产生出设备状态(电平高低或开关通断的组合)的链条。将高电平作为1,低电平作为0(反之也行),就能用状态表示数字,计算机就能通过序列的高低电平逻辑操作实现数学运算。每一步操作都是图灵定义的作为所有计算的基础的简单步骤,引用名为逻辑门的电路实现。

图2.2展示了两种逻辑门以及由它们组成的一个简单逻辑电路。电路用高低电平分别表示1和0,可以执行简单的逻辑运算。上面的符号代表XOR(异或)门,中间的是AND(与)门。两者都通过输入线(图中标为A和B)接收高低电平。AND门的两个输入如果都是1(高电平),输出就为1,否则就输出0(低电平)。XOR门的两个输入如果有且只有一个为1,输出就为1,如果两个输入都为1或都为0,输出就为0。如果将这两种逻辑门像下图那样连接起来,电路就能正确执行两个1和0的各种组合(0+0、0+1、1+0和1+1)的加法。如果输入A是1,B是0,上面的输出就是1,下面的是0。十进制数1的二进制表示是01(参见表2.2)。如果两个输入都为1,输出就为10(十进制数2)。这个简单的加法器不能输出11(十进制数3);它只能加到2。这个支配加法器功能的“规则”隐含在电路的物理结构中。更复杂的逻辑电路可以执行多位数的加减乘除关于逻辑门及其电路设计在网上可以找到很多内容。搜索“逻辑门”就能找到很多信息,远比我在这里给出的多。

表2.2 二进制数和十进制数的对应关系

计算机也可以建造成不需要通过硬连线而是以可编程的方式实现逻辑运算。也就是说图2.2中的XOR门和AND门不用像图中那样固定,而是可以与其他门用各种方式组合起来完成不同的逻辑运算。在这样的机器中,逻辑由程序决定。

图2.2 上图:XOR门;中图:AND门。表中列出了所有可能输入对应的输出。下图:2比特加法器。输入A和B可以为1或0。两个输出组成了由输入决定的二进制数(00、10或01)

可以将逻辑和要操作的信息都作为输入,此时一般将输入分为两部分:程序和数据。程序可以视为由机器内建的(基础性的)规则集组成的规则。计算过程中根据程序规则操作数据。现代数字计算机通过编程基本可以实现任何逻辑运算。具有这种特性的机器称为通用机。其他计算机能够执行的计算,通用计算机都能通过编程实现。通用性定义了很宽泛的一类操作,称为可计算数学函数,其中涵盖了几乎所有已知的数学。这就是为什么电子计算机的用途如此广泛。