标签:
杂谈 |
算术和计数工具其实出现得很早,甚至早于文字的出现。在非洲的斯威士兰发现的列彭波骨(Lebombo Bone)和在刚果发现的伊尚戈骨(Ishango Bone)是迄今为止知道的最早的计数工具,距今已有上万年的历史了。我们的祖先在这些兽骨上面用一道道刻痕记录着不同的数字,以帮助计算,因此历史学家一般把它们作为算术起源的证据。在人类的早期文明中,计算是一件很不容易的事情,所以大部分人都不会算。即使个别会算的人,算术水平可比今天的同龄人甚至是小学生还差很多。因此为了方便计算,各种早期文明都在寻求一些可以帮助计算的工具,许多文明都先后发明了算盘和数学用表(九九表就是一种简单的数学用表)。这两种工具一直用到我上小学和上中学的时候。
图 1.14.1 人类最早的辅助计数工具----伊尚戈骨(收藏于比利时皇家自然科学院)
虽然在大部分人的印象中,中国应该是发明算盘的国家。但是更准确地讲,中国人发明了真正实用的算盘,因为类似算盘的计算工具更早地出现于美索不达米亚地区,但是它们远不如中国的算盘使用方便。到了公元前五世纪,希腊出现了和中国算盘颇为相似的铜质(或者木质)计算工具(如图1.14.2所示),它实际上是用一些小石块(Marbles)帮助在计算过程中的计数,很多计算工作还是要靠心算。

图1.14.2古罗马人复制的古希腊算盘(从右到左的字母含义分别是,十分位、个位、十位、百位…)
中国人发明的算盘,则不同,在发明这种硬件的同时,中国人发明了珠算口诀,你可以把它和今天的计算机软件(程序)对应起来。算盘的操作者其实不是在计算(心算),而是更加口诀(程序)进行简单的机械操作。因此从某种角度讲,算盘确实是一种手动的计算机。我在《文明之光》中对比了算盘的操作和“图灵机”的相似处,当然算盘并不是图灵机的一种实现方式,这和后来的一些机械计算机不同。
中国人在很早就发明了这种实用的算盘,按照Ifrah所著的《计算机的历史》书中的说法,发明的时间应该在公元前两世纪,远远早于很多人认为的北宋时期(根据清明上河图所画的实物推测的结果)。算盘的发明应该不是某个人某一天忽然就完成了,而是经过了很多代人不断改进,才成为了今天我们看到的样子。遗憾的是,中国诸多史籍和文物都没有记载发明算盘的过程以及为改进算盘做出重大贡献的人,更不用说记载那些编写珠算口诀的人了。
算盘最大的问题是计算的准确性取决与操作者的熟练程度,如果拨错了算盘珠子,整个计算就错了。而机械的计算机(或者叫计算器)则弥补了这个不足。最早的计算器是由法国数学家帕斯卡(Blaise Pascal, 1623 – 1662)在1642年发明的。那一年,帕斯卡还不到20岁。帕斯卡计算器的原理很简单,它由上下两组齿轮组构成,每一组齿轮可以代表一个十进制的数字,在齿轮组的上方有对应的一排小窗口,每个窗口里有刻了0-9十个数字的转轮,用来显示(第一个操作数和)计算结果,如图19.5所示。该计算器的动力来自于一个手工的摇柄(图中没有显示)。
帕斯卡计算器的原理并不复杂,比如我们要做加法运算24 17,那么我们就在第一组中最后两个齿轮(分别代表十位数和个位数)上分别拨到2的位置和4的位置,在第二组齿轮上,类似地将最后两个齿轮分别设置到1和7的位置。然后转动手柄直到转不动为止,在这个过程中,齿轮带动有数字的小转轮运转,并且最后停到应该停的位置,这时计算结果就出现在计算器上方的小窗口里。类似地,帕斯卡计算器还可以做减法和乘法。
操作帕斯卡计算器简单,但是不是很快。虽然还有诸多的不足,但它毕竟是历史上第一个自动的计算机。帕斯卡本人因此被当作计算机工程的先驱,20世纪70年代,一门通用的程序语言还被命名成帕斯卡(Pascal)。但是帕斯卡计算器在商业上算不上成功,虽然帕斯卡本人取得了专利,并且还卖出来十几台,但是这种计算器的应用也就到此为止了。它造价昂贵(相对算盘)却不够快,而且不如算盘那么轻便灵巧,因此无法得到普及。
下集预告,讲讲莱布尼茨、巴贝奇和楚泽等人发明的机械计算机。然后下下次会讲到图灵和冯诺依曼。这些内容在《文明之光》第三册19章《计算的时代》中都有,这本书的豆瓣页是
http://book.douban.com/subject/26275177/

加载中…