帕斯卡算术机——数学天才的十余年匠心

☞ 欢迎来到神奇的01世界 ☜

第一之争

契克卡德确实早于帕斯卡涉足机械计算,且史料表明,至少曾有一台计算钟是制作成功的。然而,就在这样确凿的证据面前,「机械计算第一人」的说法仍然存在争论,主要有以下几点原因:

  • 契克卡德没有留下看得见摸得着的实物;
  • 他的设计描述相对笼统、不可靠,即使是改进后的复制品,超过3位的连续进位就需要人为干预才能完成;
  • 计算钟从来没有真正投入过使用,用现在的话讲就是始终处于概念阶段;
  • 帕斯卡独立设计,并不知晓契克卡德的工作;
  • 计算钟也没有对后续的计算机发展起到启发作用。

如果将契克卡德视作机械计算第一人,那么准确地说,帕斯卡就是机械计算「成功的」第一人。

30022-32d3120e5c622cd1.JPG
布莱士·帕斯卡(Blaise Pascal 1623-1662),法国数学家、物理学家、发明家、作家、哲学家。(图片来自维基「Blaise Pascal」词条)

早年

1623年6月19日,帕斯卡出生于法国一个叫克莱蒙费朗(Clermont-Ferrand)的城市,在三岁时就失去了母亲,好在父亲艾蒂安·帕斯卡(Étienne Pascal)在当地任职法官,算个小贵族,即使独自拉扯着三个孩子,日子也还算富余。1631年,帕父干脆卖掉了法官之职(那时的法国职位是可以买卖的),把卖到的一大笔钱都投资了利息可观的国债,衣食无忧的一家人随即搬去巴黎,过上了大城市的生活。

艾蒂安没有再婚,他把精力都用在了亲自培养三个天赋异禀的孩子身上。他对科学和数学颇有研究,可谓虎父无犬子,教育出来的孩子也聪慧过人,其中自然是我们的主人公小帕斯卡最为出众。他自小就精通数学,独立发现了许多欧几里得的几何定理(比如三角形的内角之和为180°),有段时间艾蒂安甚至担心这样的偏科会影响到他希腊文和拉丁文的学习,居然禁止他学习数学。(屏幕那头咬牙切齿辅导着数学作业的家长们朋友们请默默体会,这种天才之父的奢华烦恼。)结果禁止也没用,小帕斯卡直接拿着煤炭在墙上打草稿……

原本一家人就这样平平淡淡地过着子从父教的日子就好,然而世事难料,好景不长。1638年,为了应对三十年战争,当时执政的红衣教主黎塞留(Cardinal Richelieu)不惜一切代价动用国债,导致艾蒂安的资产瞬间缩水九成——真是比卖房炒股还痛的领悟。不仅如此,他还因反对黎塞留的这种野蛮做法而被迫逃离巴黎,把三个孩子寄留在邻居家里。后来还是黎塞留在观看了一次有其小女儿参与的少儿演出之后觉得这小姑娘表现不错,才赦免了艾蒂安。

真可谓人生如梦起起落落,1639年,51岁的艾蒂安还被任命为鲁昂市(Rouen)的税务总管。

30022-d6235b723f8b8511.png
克莱蒙费朗→巴黎→鲁昂(截图来自百度地图)

战时的鲁昂税务一片紊乱,艾蒂安的工作涉及大量枯燥而繁重的加减计算,明明现在Excel里一个公式就能搞定的事在当时却是件大耗精力的苦力活。

为了减轻父亲的负担,1642年,年仅19岁的帕斯卡发挥自己的聪明才智,着手制作起机械式计算机。刚开始的制作过程并不顺利,请来的工人只做过家用的一些粗糙器械,做不来精密的机器,帕斯卡只好自己上手,亲自学习机械制作。到1545年公开成果的时候,帕斯卡研制的原型机已有50台之多。

算术机

帕斯卡的机器被称为Pascaline,俗称算术机(arithmetic machine),只能做加减运算。

30022-b3c476e932b5251c.jpg
典型的算术机长这样(图片来自维基「Pascal's calculator」词条)

从外表看,机器的上半部分是开着6个小窗口的读数区,下半部分则是6个肩并肩紧挨着的置数旋钮。显然,盒子内部的示数轮与置数轮是联动的。乍看之下,似乎只实现了契克卡德计算钟的加法器部分,结构十分简单。

置数旋钮的造型很别致,十根辐条从中心发散,像个车轱辘,却没有下手的地方,需要用一支小笔戳在辐条之间的空档,顺时针拨动,直至撞上底部那根类似留声机唱针的固定小棍。这种置数方式像极了老式的转盘电话机。

30022-a29a71f6c14778fa.gif
算术机置数演示(截图来自《How the Pascaline Works》)

读数区有根长长的横条,可以上下移动,总是挡着示数轮的一半。这样的设计用意何在呢?这得从它核心技术——进位机构说起。

进位机构

帕斯卡起初的设计与契克卡德的单齿进位机构类似(尽管他并不知道计算钟的存在),是一种长齿进位机构——齿轮的10个齿中有一个齿比另外9齿稍长一些,正好可以与旁边代表更高数位的齿轮啮合,正转实现加法的进位,反转实现减法的借位。

30022-4d33cd91a9fa47c0.gif
长齿进位机构(S7技术支持)

这类进位机构有着一个很大的缺陷——齿轮传动的动力来自人手。同时进行一两个进位还好,若遇上更多位的连续进位——你可以想象,如果是999999+1,从最低位一直进到最高位,长齿全部与下一位齿轮啮合,齿轮旋转起来相当吃力。你说你力气大,照样能转得动旋钮没问题,可齿轮本身却不一定能承受住这么大的力,搞不好容易断裂。

为了解决这一缺陷,帕斯卡尝试了各种改进方法,却发现再精妙的齿轮设计都无法绕开连续进位的魔咒。这个问题不解决,制造机械式计算机就是扯淡。这位天才思前想后,最后破天荒地想到了借助重力——他设计了一种叫sautoir的装置,sautoir来自法语sauter,意为「跳」。

低位齿轮在旋转过程中将sautoir抬起,每当转过9回到0时,sautoir便掉落,其上的爪子推动高位齿轮转动36°,整个过程sautoir就像荡秋千一样从一个齿轮「跳」到另一个齿轮。上一个进位与下一个进位分离,连续进位时产生多米诺骨效应。

30022-da149ccea3acadb5.gif
sautoir进位机构(S7技术支持)

往后的一百多年里,许多机械师都对这种前无古人后无来者的绝妙设计赞不绝口。帕斯卡本人对自己的发明更是相当满意,他夸张道:有了sautoir,机器做到一万位数,用起来也和两位数没差。然而,连续进位是没问题了,sautoir却有着一个致命缺陷——不能反转,这就给使用前的置零制造了麻烦,需要从个位开始依次将每一位数转到9,而后在个位上加1以产生连续进位,完成所有位的置零。一万位的机器做出来恐怕也没人敢用吧!

30022-afe062612166974c.gif
使用前的置零(截图来自《How the Pascaline Works》,下同。)

进位搞定了,减法怎么办?

「一万位」毕竟只是个牛皮,实不实现问题不大,可齿轮不能反转的话,怎么实现减法呢?这仍然难不倒我们的帕斯卡——既然只能做加法,那有没有一种方法可以将减法转换成加法呢?结果他还真想出了一种用加法代替减法的方案,正是计算机中沿用至今的补码思想。

十进制下的补码是补九码(9's complement):对于一位数,1的补九码就是8,2的补九码是7,以此类推,原数和补码之和为9即可。在6位数中,a的补九码就是6个9减去a。设6位数的补九运算为CP(),用公式表示就是:

CP(a) = 999999 - a

利用简单的数学技巧(结合律),便可将减法运算转换为有补码参与的加法运算:

CP(a-b) = 999999 - (a-b) = (999999 - a) + b = CP(a) + b

敲黑板,划重点:两数之差的补码,等价于被减数的补码与减数之和。

帕斯卡在示数轮上标了两排数字,一排是原数0~9,一排是一一相应的补码9~0,补码在上,原数在下。不论转到哪个数字,其补码也一同出现。

30022-20f9b27c0015f85e.png
打开盖板,里头的示数轮长这样。
30022-7a9508d8ffe3d1e4.JPG
盖上盖板就是这样
30022-a712b7b79b3e6ef0.gif
终于知道这根横条的用处了,是为了挡住原数或补码。

做加法时挡住补码露出原数,做减法时反之,但任何置数都是对下排的置数。加法与计算钟类似,无需赘言,这里说说减法怎么做。以笔者生日1991年3月15日为例,计算

1991 - 315

首先,置零后将挡板移到下面,露出上排补码:

30022-63ca852389a3b039.png
为了展示清晰,我让下排的原数仍半透明可见。

补码的补码就是原数。输入被减数1991的补码998008,上排自动显示为1991:

30022-d8d8590ea3736503.png

给998008加上减数315,下排得998323,上排自动显示为001676,便是最终结果:

30022-488047ee52df5f94.png

整个过程用户看不到下面一排数字,其实玄机就在里头,原理非常简单,上下排互为补码,09一轮回,却很有意思。

算术机的历史地位

与契克卡德计算钟的默默无闻不同,帕斯卡的成果一经展示便惊艳了众人,这「众人」还都是上流社会的众人。1649年,路易十四甚至授予了类似于专利的皇家特权,帕斯卡成为唯一一个可以在法国设计、生产机械计算机的人,这可是皇权庇佑下的垄断,何等殊荣啊。

可惜的是,直到1654年,从算术机的正式亮相近十年过去了,却只卖掉了20台左右。尽管这20台的设计一代更比一代强,考虑到法国当时的货币使用12进制和20进制、长度单位又使用6进制和12进制,部分算术机还为会计师和测量员提供了这些进制的计算能力,位数也有5位到10位的多样选择。十年商业化之路灯火阑珊,主要还是因为成本太高、售价太贵,机器计算的繁荣时代尚未到来,算术机没有摆到真正需要它的办公桌上,而是渐渐沦为有钱人的私人玩物与藏品。

但这并不影响算术机成为17世纪最成功的机械计算机(后来的莱布尼茨计算机也只能甘拜下风),它不仅是史上第一次真正投入使用的计算机,还是17世纪唯一实用的计算机、第一次获得专利(皇家特权)的计算机、第一次商业化的计算机。恁多的「第一」加身,也无怪乎许多学者不承认契克卡德是「第一」了。

现存的算术机有9台,7台藏于法国和德国的几处博物馆,1台在IBM,1台在法国的一位私人藏家手上。

30022-d47d193180508e05.jpg
放一张精美的「艺术照」(图片来自网络)

后话

帕斯卡一生的成就颇丰,毫不夸张地说,算术机仅是其中很不起眼的一个。

数学领域

1639年,年仅16岁的帕斯卡就提出了著名的帕斯卡定理(Pascal's theorem)——内接于圆或圆锥曲线的六边形,其三对对边的交点处于同一直线。这一定理成为后来射影几何学的重要基础。

30022-741d3a7776c090bf.png
帕斯卡定理示例:六边形ABCDEF内接于圆,对边AB、DE延长线交于点M,对边AF、CD延长线交于点N,对边BC、EF延长线交于点P,M、N、P三点位于同一直线,该线也被称为六边形的帕斯卡线(Pascal line)。(图片来自维基「Pascal's theorem」词条)

当时的大数学家笛卡尔根本不相信这一定理出自一个16岁的少年之手,并一度怀疑是他父亲艾蒂安的思想。这不禁让我想起,当年也有不少人猜测《三重门》是韩寒父亲的作品。这种吃瓜群众的「unbelievable现象」,时常从侧面体现出这些天才的年轻人杰出到了多么令人难以置信的程度。

1653年,帕斯卡发现了二项式系数在三角形中的排列规律,尽管比杨辉晚了400年,比贾宪晚了600年,著名的杨辉三角/贾宪三角还是拥有了第三个别称——帕斯卡三角(Pascal's triangle)。

30022-be6f98bd6d0b9d1d.gif
帕斯卡三角的动态演示(图片来自维基「Blaise Pascal」词条)

1654年,受上流社会的一位赌徒之托,帕斯卡与大数学家费马(Pierre de Fermat)合作研究了赌博中的概率问题,一不小心又奠定了概率论的基础。

物理领域

1647~1648年,帕斯卡发现了液体传递压力的能力,并建立了流体力学中著名的帕斯卡定律(Pascal's law),成为现在广泛应用的液压系统的理论基础。

他还对真空和大气压颇有研究,发现了大气压随高度变化的规律。正是在压强方面的诸多成就,我们干脆将压强的单位定为了「帕斯卡」,简称「帕」。

哲学领域

在1654年停止了算术机的生产之后,帕斯卡将余生中的更多时间花在了对宗教和哲学的思索上。1662年,自小体弱多病的他在刚过完39岁生日的两个月后便英年早逝。1670年,后人将其生前的哲学散文集结出版,留下了在哲学史上影响深远的经典之作《思想录》(Pensées)。

参考文献

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值