分享

计算机前世篇(二,机械计算器) | 火光摇曳

 联合参谋学院 2017-08-31

码农们情人节都送谁啥礼物呢?找不到计算机女神,就搬个计算器回家送心中的女神吧。

书归正传:为了减轻人们的计算负担,从用来计数的石头贝壳绳结到后来的算盘,各种计算辅助设备逐渐在人类历史上出现。

起初,发明了对数(log)运算的苏格兰人 John Napier(约翰·纳皮尔)在1617年发明了一个后来被称为纳皮尔骨头的工具。

纳皮尔骨头

他把乘法口诀刻在象牙棍上,从而把乘法运算转化为简单的对位加法。这些象牙棒也可以用来把除法运算转为减法。更为上进一些的用法还也可以用来开平方。

 

纳皮尔骨头的算法

纳皮尔发明的对数运算直接启发了后来计算尺的发明。据说计算尺最初在1622年由英国数学家 William Oughterd发明的,它的使用一直延续到近代。美国航空航天局的工程师在1960年实施阿波罗登月计划时有时还在用它。

 

计算尺

人类在发明各种计算辅助小工具的同时也不断地创新各种计算相关的想法。其中我们要提到一位大家无比熟悉的轻松跨多重界的天才,Leonardo da Vinci(莱昂纳多·达芬奇)。在他去世后人们发现他画的一系列关于建筑,几何,音乐,机械,定向和地图的图纸,并且把这些收集在一起叫做 Madird Manuscripts 或 Codex Madrid I and Codex Madrid II。在这些图画中有一页机械图纸,图中的设计非常有可能是用机械来做计算的。这也太跨界了吧。

达芬奇的 Codex Madrid I 的第36页

第一台研发成功的机械计算器很可能是德国教授 Wilhelm Schickard 在1623年设计“并建造”的齿轮传动计算时钟了。但因为他患鼠疫去世较早,所以他的发明当时就不太为人知。倒是他与大师 Johannes Kepler(约翰内斯·开普勒)的几封通信记录中有计算时钟的设计图纸和他自称已经建成的模型。哎,名人怎么都互相认识。

Schickard 计算时钟的仿制品

话说到了1642年,未满19岁的法国数学神童 Blaise Pascal(布莱兹·帕斯卡)为了帮助他的税务官父亲计算税收中的繁重重复计算,他发明了一个50个齿轮驱动的加法工具,Pascaline(帕斯卡利娜)。因为它昂贵的价格和当时齿轮制造工艺无法达到需要的精确度,pascaline 只售出了几十台,但拥有一台这个机器也就成了有钱人的象征。换句话说,这可是那个年代的奢侈品啊![1]

帕斯卡设计的帕斯卡利娜

直到现在,人们对是 Schickard 的计算时钟还是 Pascal 的帕斯卡利娜是人类发明的第一个机械计算设备有很大争论。争论的主要焦点是 Schickard 是否真的造出了计算时钟和计算时钟设计中的两个瑕疵是否影响人们对它是个发明的定义。这两个设备的另一个区别是帕斯卡利娜几乎只能做加法,做起减法来非常费劲,而计算时钟在逆向旋转时还就可以做减法,神奇吧![2]

莱布尼茨发明的 Stepped Reckoner

第三个需要提到的机械计算器是德国数学家 Gottfried Wilhelm Leibniz(戈特弗里德·莱布尼茨)发明的 Stepped Reckoner。对,就是那个传说中第一个用积分号的数学家。

比前面提到的两个计算器更先进,莱布尼茨的 Stepped Reckoner 是第一个可以进行加减乘除四则运算的计算器。Stepped Reckoner 的核心部件是一个被后人称为 Leibniz Wheel的齿轮系统。它与两个简单的齿齿相扣的齿轮的区别是当一个齿轮转动时,相连的齿轮只在特定条件下转动,这使得第一个齿轮的转动到第二的之间的信息传递离散化。[3]

Leibniz Wheel

不同于前两个模拟(analog)计算器,这个特殊的齿轮系统带给我们的是人类历史上第一个数字(digital)计算器。莱布尼茨还是最早用二进制来进行数字计算的数学家之一。比特(bit)这个现代计算机中信息存储和表示的最小单位就指二进制的一个字节,其取值非零即一。而bit这个词的正是又binary的第一个字母和digit的最后两个字母拼在一起湊出来的。[4]

在这之后的十八和十九世纪里,发明家们不断地设计和制造了各种各样的以齿轮为基础构件的机械计算器,几乎所有的新设计都是以 Leibniz wheel 为核心部件的。这些计算器也被广泛地应用在科学计算和日常生活中。[5]

直到了二十世纪时,按键计算器的出现和大规模推广才让齿轮为基础构件的机械计算器推出历史舞台。


[1] 帕斯卡真是一个神童。在12岁时,别人发现他在厨房地板上做欧几里德的第三十二命题。他后来还帕斯卡sanjiao 发明液压机和注射器。

http://zh./wiki/布莱兹·帕斯卡

[2] 关于计算时钟和帕斯卡利娜谁是第一个的争论的细节

http:///pmwiki/pmwiki.php?n=Site.SchicardvsPascal

[3] 关于模拟和数字的区别:数字和模拟之间的界限是一般是明显的。当操作是用于测量什么东西,用的仪器一般是模拟设备,比如汽车上的速度计; 当要求是对什么东西计数时,用的仪器一般是数字设备。比如汽车上的里程表。

[4]  关于莱布尼茨与二进制,下面这个八卦就不知真伪了,大家且听且分析。抄自 http://www./index.php?doc-view-135728.html

因独立发明微积分而与牛顿齐名的莱布尼茨,又为计算机提出了“二进制”数的设计思路。有人说,他的想法来自于东方中国。中国的八卦是二进制运算法则的起源
大约在公元1700年左右某天,友人送给他一幅从中国带来图画,名称叫做“八卦”,是宋朝人邵雍所摹绘的一张“易图”。莱布尼茨用放大镜仔细观察八卦的每一卦象,发现它们都由阳(—)和阴(–)两种符号组合而成。他挠有兴趣地把8种卦象颠来倒去排列组合,脑海中突然火花一闪──这不就是很有规律的二进制数字吗?若认为阳(—)是“1”,阴(–)是“0”,八卦恰好组成了二进制000到111共8个基本序数。正是在中国人睿智的启迪下,莱布尼茨最终悟出了二进制数之真谛。虽然莱布尼茨设计的计算机用的还是十进制,但他率先系统提出了二进制数的运算法则,直到今天,二进制数仍然左右着现代电脑的高速运算。

[5] 更多的关于机械计算器的信息请看

http:///MechanicalCalculators/mechanical.html

[*] 原文同时发布在: 《白云书园》之数字时代(三十) https://whitecloudbookroom./2015/02/10/digital-time-30/



    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多