12 计算机

很喜欢吴军博士的书,从《浪潮之巅》到《数学之美》,再读了《文明之光》这四册。书中将技术史与文化史巧妙融合,精炼、易懂地描绘了人类文明发展的过程。这里摘录部分内容作为笔记,如果大家觉得也有趣,建议看更有趣、更详实的原著。

中国人发明算盘的时间应该在公元前两世纪,远远早于根据清明上河图所画的实物推测的北宋时期。遗憾的是,中国诸多史籍和文物都没有记载发明、改进算盘的过程,也就没有记录做出重大贡献的人、编写珠算口诀的人。

学过珠算的人都知道下面的口诀:
一上一(加一)
二上二(加二)
三下五除二(加三)
四去六进一(加四)

记得这些口诀的人,哪怕不会算术,也能操作算盘计算出结果。珠算口诀的重要性完全不亚于算盘(硬件)本身,因此它完全有资格申请人类非物质文化遗产,因为它其实是最早的计算机软件。

最早的机械计算机是由法国数学家帕斯卡(Blaise Pascal1623-1662)在1642年发明的。帕斯卡计算器并不比算盘更快。但因为它只需要输入数字,不必牢记珠算口诀,而且齿轮的进位是自动的,这就避免了人工记忆和手动进位可能引起的错误。帕斯卡本人因此被当作计算机工程的先驱,20世纪70年代,一门通用的程序语言还被命名成 Pascal。

后来,英国的数学家和发明家巴贝奇(Charles

Babbage,1791-1871)设计出差分机,机械计算器不仅可以作四则运算,还可以计算徽积分了。1855年,英国发明家舒茨(Georg Scheutz,1785-1873)建造出世界上第一台可以工作的差分机。

但是所有这些机械计算机都只能进行一步运算,而不能通过编程自动完成一系列的计算。这要等待二进制、布尔代数、数字电路等理论的出现。

1679年,莱布尼兹(Gottfried Wilhelm Leibniz,1646-1716)是在研究哲学而非数学时接触到中国的哲学著作《易经》。他在八卦以及从八卦衍生出的六十四卦中受到启发,他把中断的短线变成0,长线变成1,将任意一个十进制数字通过0和1的组合表示出来,这就是二进制。然后,莱布尼兹给出了使用二进制进行加减乘除的方法,使得二进制可以像十进制一样完成所有的数学运算。

莱布尼兹的二进制手稿

有意思的是,作为一个信仰上帝的哲学家,对于二进制的用途,莱布尼兹首先想到的是神学。他认为上帝创世纪的天数7在二进制中正好表示成111,只有1没有0,证明了上帝是全能而没有缺陷的。莱布尼兹还写了封信通过传教士转给喜欢数学的康熙皇帝,信中除了介绍二进制外,还试图用二进制证明上帝的全能,希望康熙皇帝皈依基督教。

1854年,乔治・布尔(George Boole,1815-1864)完成了在近代数学史上颇有影响力的著作《思维规律》。在书中,他第一次向人们展示了如何用数学的方法解决逻辑问题。在此之前,人们普遍的认识是数学和逻辑分属两个不同的学科。

布尔代数简单得不能再简单了。运算的元素只有两个:真(TRUE)和假(FALSE),可以跟二进制的1和0对应。基本的运算只有“与”(AND)、“或”(OR)和“非”(NOT)三种。

布尔代数与门电路

在二进制提出后的200多年里、以及布尔代数提出后的80多年里,它们也并没有什么像样的应用。直到1938年香农(Claude Shannon,1916-2001)在他的硕士论文中指出用布尔代数来实现开关电路,才使得二进制、布尔代数成为数字电路的基础。

世界上有很多重大的科技进步,都始于工程上的改进,依靠的是经验,这种经验积累到了一定程度后,相关的理论才得以建立起来。这些理论早期一般不会引人注意,直到某一天,一些既懂理论又善于改进产品的工程师(比如改进蒸汽机的瓦特)利用这些理论发明了新一代产品时,人们常常才会回过头来“追忆”这些提出理论的先行者,给他们在文了明史上补上浓墨重彩的一笔。

二战期间,美国军方因为火炮设计需要解决大量计算问题,故而投资制造了“电子数值积分计算器(Electronic Numerical Integrator and Calculator,简称 ENIAC)。这个设备用电子管实现数字开关电路,从而将计算机“电子化”。ENIAC的研制过程和以往的计算机不同,它的设计不是根据经验来的,而是有明确的计算机理论做指导的。

ENIAC是一台专用计算机,只能计算火炮弹道。在 ENIAC造到一半时,另外一位科学家加入了进来,就是后来被称为“现代计算机之父”的冯・诺伊曼。按照冯・诺伊曼的设计思想,一台自动的计算机应该包括(算术和逻辑)计算器、控制器、存储器和输入输出设备,它是由程序来控制的。我们今天的计算机无论大小快慢,都是用冯・诺伊曼的系统结构来实现的。冯・诺伊曼的贡献在于为计算机的系统结构奠定了理论基础,从而可以制造计算任何问题的通用计算机。

冯・诺伊曼系统结构

ENIAC是个庞然大物,占地160平方米,重达30吨,每秒可以运算5000次加法。当时,一条炮弹的轨道ENIAC用20秒就能算出来。因此,当时英国的蒙巴顿元帅将它誉为“一个电子的大脑”,“电脑一词由此而来。

值得一提的是冯.诺伊曼被认为是20世纪和爱因斯坦齐名的天才。他对世界的贡献远远不止在计算机上,至少在七八个(计算机以外)学科领域都有杰出的贡献,包括:
·发明博弈论
·发明线性规划
·建立数理统计的理论基础
·完善测度理论、格理论和集合论
·提出量子逻辑和量子机
·提出冯・诺伊曼代数
·发明连续几何学

点击这里可以查看《文明之光》的其它学习笔记。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容