按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!
汽车里程表的原理是一样的。)据说帕斯卡制作了
50多部这种加
法机,其中至少有
5部存留至今。
帕斯卡的装置只能做加法和减法。在
1674年,德国数学家莱
第十七章 头 脑
第十七章 头 脑
布尼兹再进一步,他改进了轮子和齿轮,使得乘法和除法也变得像
加减法一样自动和容易。1850年,美国发明家帕马利取得专利的
一项重大进展使计算机使用起来更加便利。以前的计算机是用手
直接拨动轮子,而他则引入了一套按键;按下标有某个数字的键,
轮子就会转到相应的数字。我们所熟悉的老式现金收入记录机
中,所采用的就是这样的机械装置。
但是,莱布尼兹并未就此罢手。可能是由于他在计算机械化
方面的努力,他发明了二进制系统,目的是想最大限度地简化计算
的机械化。
人类通常使用的是一种以
10为底的记数系统(十进制),这种
系统中共用到十个不同的数字(
0,1,2,3,4,5,6,7,8,9),并以这些
数字的不同数量与组合来表示所有的数。某些文化中用到了以别
的数为底的记数制(有以
5为底的系统、以
20为底的系统、以
12
为底的系统、以
60为底的系统等等),但是以
10为底的记数制使
用得最为广泛。毫无疑问,这一点是由于我们的双手刚好有
10个
手指的缘故。
莱布尼兹认识到,任何数字都可以用做底数,而对于机械运算
来说,最简单的应该是以
2为底的系统(二进制)。
二进制记数法中只用到两个数字:
0和
1。它把所有数字都表
示成
2的幂。这样,
1这个数就是
20,2这个数是
21,3是
21+20,4
是
22,等等。就像在十进制系统中一样,幂是由符号所处的位置
表示的。例如,
4这个数表示为
100,即:(1 × 22)+(0 × 21)+
(0×20),用十进制数表示,就是
4+0+0=4。
让我们以
6413这个数字为例来说明一下。在十进制系统中,
可以把它写成(
6×103)+(4×102)+(1×101)+(3×100),别忘了
任何数的
0次方都等于
1。而在二进制系统中,是通过把
2的幂
加在一起(而不是把
10的幂加在一起)来组成数字的。比
6413小
阿西莫夫最新科学指南
阿西莫夫最新科学指南
的最高次幂是
12次幂;
212是
4096。再加上
211,即
2048,我们得到
6114,这个数比
6413小
269。下一个要加上
28即
256,这样还剩
下
13;再加上
23即
8,剩下
5;然后是
22即
4,剩下
1;最后
20就是
1。这样我们就可以将
6413写成(
1 × 212)+(1 × 211)+(1 × 28)+
(1×23)+(1×22)+(1×20)。但是,像在十进制系统中一样,一个
数当中的每一位数,从左到右,必须表示比上一位数低一次方的方
次。在十进制系统中写出
6413这个数时,我们表达了
10的三次、
二次、一次和零次幂项的和,同样,在二进制系统中我们也必须表
达出
2的
12到
0各次幂项的和。以列表的形式表示为:
1 × 212=4096
1 × 211=2048
0 × 210= 0
0 × 29= 0
1 × 28=
256
0 × 27= 0
0 × 26= 0
0 × 25= 0
0 × 24= 0
1 × 23= 8
1 × 22= 4
0 × 21= 0
1 × 20= 1
6413
一个个地将左边一列中的乘子取出(就像我们在十进制中相
继取出
6、4、1和
3这些乘子一样),我们在二进制中把这个数写成
1100100001101。
这看起来好像很麻烦。6413这个数要写成
13位长,而在十
第十七章 头 脑
第十七章 头 脑
进制中则仅需
4位数。但是对于计算机来说,这种记数系统是最
简单的了。由于只有两个不同的数字,一切运算都能以简单的“是
或非”的方法来完成。
推测起来,像在提花织机上有针或无针这样一种简单的事情
应该可以以某种方式模仿“是”和“非”,或
0和
1。通过恰当而巧
妙的组合,人们可以调整出如下的结果:
0 + 0=0,0 + 1=1,
0 × 0=0,0 × 1=0和
1 × 1=1。如果以上组合都能做到,我们就可
以想象在提花织机之类的设备上应该能进行一切算术运算。
可以以这种方式完成的不仅仅是普通的计算。这个系统还以
扩展到包含一些逻辑语句,而人们在一般情况下并不认为这些逻
辑语句属于算术。
在
1936年,英国数学家图灵证明,不论什么问题,只要能分解
成有限个操作步骤,而且其中每个步骤又都能用某种机器来完成,
那么这个问题整体上也能通过机械方式加以解决。
1938年,美国数学家兼工程师香农在他的硕士论文中指出,
一种叫做布尔代数形式的推理逻辑可以用二进制的方法来处理。
布尔代数是指一种符号逻辑系统,这种系统是英国数学家布尔于
1854年在《关于思维规律的研究》一书中提出的。他注意到,推理
逻辑中用到的各种命题都能用数学符号来表示。接着他又展示了
如何根据一些固定的规则处理这些符号以得到恰当的结论。
举一个非常简单的例子,让我们考虑下面的命题:
“A和
B二
者均为真。
”假设我们知道
A与
B分别是真或是假,现在的任务是
通过某种严格的逻辑推理来断定上述命题的真假。让我们按照香
农提出的想法,以二进制的思想方法来解决这个问题,并用
0代表
“假”、用
1代表“真”。如果
A与
B二者均为假,则“A与
B二者均
为真”这一命题为假。换一种说法,
0乘
0得
0。如果
A与
B二者
中一为真而另一为假,则上述命题依然为假,也就是说,
1乘
0(或
阿西莫夫最新科学指南
阿西莫夫最新科学指南
0乘
1)得
0。如果
A为真且
B也为真,则“A与
B二者均为真”这
一命题为真。用符号表示,这种情况即为
1乘
1得
1。
这三种情况刚好同二进制系统中的三种可能的乘积相吻合,
即
0 × 0=0,1 × 0=0,以及
1 × 1=1。这样,由“A与
B二者均为
真”这一命题表示的逻辑可以用乘法来处理。因此,一个经过适当
编程的装置,能采用处理普通运算时采用的同样方法,同样方便地
处理这个逻辑问题。
在处理“A或
B有一个为真”这个命题时,我们用加法而不是
乘法来解决这个问题。如果
A和
B二者均不为真,则这个语句为
假。换句话说,0+0=0。如果
A与
B二者一为真而另一为假,则
这一命题为真;在这两种情况下
1 + 0=1或
0 + 1=1。如果
A与
B二者均为真,则这语句肯定为真,即
1+1=10。[10中重要的一
个数字是
1;它向左移动了一位,这一点并不重要。在二进制中,
10表示(1×21)+(0×20),它和十进制中的
2是一样的。]
布尔代数在通信工程中已变得很重要,并且构成了现在人们
所说的信息论的一个组成部分。
人工智能
第一个真正看到提花织机穿孔卡片的潜力的人是英国数学家
巴贝奇。在
1823年,他开始着手设计并建造一个他称之为差分机
的装置,并在
1836年试图建造一部更为复杂的分析机,但两者均
未能完成。
理论上,他的想法是完全正确的。他设想通过使用穿孔卡片
自动地完成算术运算,然后再将运算结果打印出来或采用在空白
第十七章 头 脑
第十七章 头 脑
卡片上穿孔的方式输出。他还计划使机器能够存贮卡片(这些卡
片是经过适当穿孔的),并能在将来需要的时候取用这些卡片,这
样机器就具有记忆功能了。
这部机器的机械运动是通过连杆、汽缸、齿条,以及按十进制
系统制造的齿轮完成的。机器用铃声通知操作人员送入一些卡
片,如果送错了卡片,就会有更加响亮的铃声告诉他们。
不幸的是,巴贝奇脾气暴躁,性情古怪。随着不断有新的灵
感,他每过一段时间就将他的机器拆了,重新建造更加复杂的机
器,结果不可避免地耗尽了资金。
更重要的是,他所依靠的机械的轮子、杠杆和齿轮根本就不能
完成他所要求完成的任务