《文明之光》之《发明365》1月15日
为什么是莱布尼茨而不是某一位中国人发明二进制,莱布尼茨将二进制用于了计算机吗?二进制又是如何通过布尔的工作和香农的工作成为了计算机的基础的?
昨天聊到帕斯卡之前的计算机。
为了改进帕斯卡计算器,著名数学家莱布尼兹花了足足40年的时间(科学是没有捷径可走的),先后制作了两个机械计算机。其中的一个后来被发现,经过修复后居然还可以工作,但是工程师们发现这个计算器也并不好用。不过,在制作这个机械的过程中,莱布尼兹发明了一种转轮——莱布尼兹转轮,利用这种转轮,工程师们在接下来的两百年中设计了各种各样的机械计算器。直到20世纪70年代(电子计算器尚未普及),这些打字机大小的机械计算器依然被欧美科学和工程界广泛使用。我小的时候,见到父亲的实验室里就有这样的一个机械计算机,大约有一个针式打印机的大小。
图1.15.1 莱布尼茨轮是机械计算机中重要的部件。
莱布尼茨对后来计算技术的一大贡献是发明了二进制,这个大家都知道,但是他自己并没有把二进制和计算机联系起来。
莱布尼兹是在研究哲学而不是数学的时候接触到中国的哲学著作易经的,并且见到了八卦图。莱布尼茨对中国人的八卦以及八卦衍生出的六十四卦中受到启发,他把中断的短线变成0,长线变成1,这样就用000000-111111,表示出64个整数0-63。莱布尼兹进一步将任何一个十进制数字通过0和1的组合表示出来,这就是二进制。然后,莱布尼兹给出了使用二进制进行加减乘除的方法。这使得二进制可以像十进制一样完成所有的数学运算,以至于今天的计算机可以基于二进制来建造。图1.15.2是他发明二进制运算方法的手稿。
图1.15.2 莱布尼兹的二进制计算手稿
中国的八卦还不能算是二进制,这点就不多说了,但是,为什么是莱布尼茨而不是某位中国人发明了二进制呢?这是一个科技史专家们喜欢讨论的话题。在莱布尼茨接触到易经之前,八卦在中国已经被广泛传播了上千年,但是中国人对八卦的认识一直停留在占卜、炼丹或者推演阵法上,而没有上升到完整算术体系。这里面的原因很多,坦率地讲我也很难给出完美的答案,不过至少我们可以看到这样两个现象,首先古希腊人思辨的特长在文艺复兴后(尤其是科学时代开始以后)对欧洲人的思维产生了重大影响,并且得到发扬光大。中国人虽然在先秦同样具备的思辨特长,却在后世失去了,并且再也没有得到恢复;其次,二进制这种发明要在两百多年后才看到成果,中国人对这样不能马上应用的发明没有多大兴趣。
在莱布尼茨的时代,机械计算机可以完成四则运算,但是对微积分运算还是一点办法没有,直到一百年后英国的数学家和发明家巴贝奇(Charles Babbage,1791– 1871)设计出差分机(Difference engine)才解决了这个问题。不过巴贝奇只完成了这个重达四吨机器的1/7,因为它过于复杂。直到1855年,英国发明家舒茨(Georg Scheutz,1785-1873)才建造出世界上第一台可以工作的差分机。
图1.15.3 差分机的内部构造,有上千个齿轮(收藏于美国硅谷的计算机博物馆)
对计算机理论做出重大贡献的第二个人是英国的布尔,他发明了二值的布尔代数,关于他的工作,我在《数学之美》中介绍过,就不多说了。计算机的第三位理论家是图灵,这个明天专门说。第四位重要的理论家是信息论的老祖宗香农。1938年,香农在他的硕士论文中(注意,还只是硕士论文)指出了开关逻辑和布尔代数的等价性,并且将这个想法进行扩张,是的任何模拟的技术都有可能通过开关电路实现,从此布尔代数成为了数字电路设计的基础。这篇很薄的论文,但是被誉为了20世纪最重要的硕士论文。
好了,有了开关电路,就可以实现基于二进制的数字计算机了。看来图灵和楚泽的工作得到明天再聊了。
补充:
1.作为一个信仰上帝的哲学家,莱布尼兹对二进制用途首先想到的是神学。他认为上帝创世纪的天数7在二进制中正好表示成111,只有1没有0,证明了上帝是全能而没有缺陷的。莱布尼茨于是还写了封信通过传教士转给喜欢数学的康熙皇帝,试图用二进制证明上帝的全能,希望康熙皇帝畈依基督教
2.再聊两句计算机之父(之一)的巴贝奇他是英国数学家兼机械工程师,1828年-1839年,剑桥大学担任卢卡斯教授(牛顿留下的位子啊)。在管理学上有一个巴贝奇原则,就是强调近代工厂里按照技能的分工。这被马克思认为加剧的对工人的剥削
本文摘自《文明之光》第三册-第19章 计算时代。