所谓计算机,往简单了说,就是可以实现计算功能的机器。诚然现在的计算机应用已经远远超出了计算本身,不论是电脑、平板、还是手机,我们天天靠着它们看电影、听音乐、交流感情,看似与计算已经毫无关系,但事实上最初计算机的诞生就是为了满足人们对数学计算的需求,而如今计算机这些强大功能的底层实现,也依旧靠的是数学计算。 远古时代,原始人为了搞清楚猎物的数目就已经与计算攀上了关系,他们用手指计数,用结绳记事。到了古代,人们又发明了算盘、算筹等简单工具。16世纪欧洲人又发明了纳皮尔棒,借助复杂的使用方法,求解复杂的问题。 到了17世纪,西方国家不断扩大海外贸易,航海事业蓬勃兴起,航海就需要天文历表。在那个没有电子计算机的时代,一些常用的数据通常要通过查表获得,比如cos27°,不像现在这样掏出手机打开计算器APP就能直接得到答案,从事特定行业、需要这些常用数值的人们就会购买相应的数学用表(从简单的加法表到对数表和三角函数表等等),以供查询。而这些表中的数值,是由数学家们借助简单的计算工具(计算尺)一个个算出来的,算完还要核对。脑力活硬生生沦为苦力活。而但凡是人为计算,总难免会有出错,而且还不少见,机械计算设备就在这样的迫切的需求背景下应运而生。可不要小看了只能做四则运算的机器,计算量大时,如果数值达到上万、上百万,手工计算十分吃力,而且容易出错,这些机器可以大大减轻人工负担、降低出错概率。 帕斯卡加法器(Pascaline) 研制时间:1642年~1652年 布莱斯·帕斯卡(Blaise Pascal 1623-1662),法国数学家、物理学家、发明家、作家、哲学家。 1639年,帕斯卡的父亲开始从事税收方面的工作,需要进行繁重的数字相加,明明现在Excel里一个公式就能搞定的事在当时却是件大耗精力的苦力活。为了减轻父亲的负担,1642年起,年方19的帕斯卡就开始着手制作机械式计算器。刚开始的制作过程并不顺利,请来的工人只做过家用的一些粗糙机械,做不来精密的计算器,帕斯卡只好自己上手,亲自学习制作机械装置。 想想那个生产力落后的时代,这些天才不仅可以是数学家、物理学家、天文学家、哲学家,甚至还可能是一顶一的机械技师。 帕斯卡加法器,顾名思义,只实现了加减法运算,用斯奇卡德的那种单齿进位机构就可以实现。而帕斯卡起初的设计确实与单齿进位机构的原理相似(尽管他不知道有斯奇卡德算数钟的存在)——长齿进位机构——齿轮的10个齿中有一个齿稍长,正好可以与旁边代表更高数位的齿轮啮合,实现进位,使用起来与算法钟的加法器一样,正转累加,反转累减。 但这一类进位机构有着一个很大的缺陷——齿轮传动的动力来自人手。同时进行一两个进位还好,若遇上连续进位的情况,你可以想象,如果999999+1,从最低位一直进到最高位,进位齿全部与高位齿轮啮合,齿轮旋转起来相当吃力。你说你力气大,照样能转得动旋钮没问题,可齿轮本身却不一定能承受住这么大的力,搞不好容易断裂。 为了解决这一缺陷,帕斯卡想到借助重力实现进位,设计了一种叫做sautoir的装置,sautoir这词来自法语sauter(意为「跳」)。这种装置在执行进位时,先由低位齿轮将sautoir抬起,而后掉落,sautoir上的爪子推动高位齿轮转动36°,整个过程sautoir就像荡秋千一样从一个齿轮「跳」到另一个齿轮。 这种只有天才才能设计出来的装置被以后一百多年的许多机械师所称赞,而帕斯卡本人对自己的发明就相当满意,他号称使用sautoir进位机构,哪怕机器有一千位、一万位,都可以正常工作。连续进位时用到了多米诺骨效应,理论上确实可行,但正是由于sautoir装置的存在,齿轮不能反转,每次使用前必须将每一位(注意是每一位)的齿轮转到9,而后末位加1用连续进位完成置零——一千位的机器做出来恐怕也没人敢用吧! 既然sautoir装置导致齿轮无法反转,那么减法该怎么办呢?帕斯卡开创性地引入了沿用至今的补码思想。十进制下使用补九码,对于一位数,1的补九码就是8,2的补九码是7,以此类推,原数和补码之和为9即可。在n位数中,a的补九码就是n个9减去a,20150722的8位补九码是99999999 - 20150722 = 79849277。观察以下两个公式: a-b的补码就是a的补码与b的和,如此,减法便可以转化为加法。 帕斯卡加法器在显示数字的同时也显示着其所对应的补九码,每个轮子身上一周分别印着9~0和0~9两行数字,下面一行该位上的表示原数,上面一行表示补码。当轮子转到位置7时,补码2自然显示在上面。 帕斯卡加了一块可以上下移动的挡板,在进行加法运算时,挡住表示补码的上面一排数,进行减法时就挡住下面一排原数。 加法运算的操作方法与斯奇卡德算数钟类似,唯一不同的是,帕斯卡加法器需要用小尖笔去转动旋钮。这里主要说一说减法怎么做,计算150723 – 2053 用机械传动实现数字相加,用补九码的方式实现数字相减,帕斯卡计算器巧妙且开创性的设计,解决了当时社会上只能用辅助工具帮助计算的问题,奠定了它在计算器发展史上坚实的地位,使手动计算到机械计算跨进了一大步。 不过可惜的是,帕斯卡设计的计算器在当时那个时代没有得到广泛的应用,主要原因在于帕斯卡计算器制造的精细程度和复杂程度,使得机器无法大量投入生产且价格昂贵,只能成为欧洲有钱人展示其地位的象征。不过,这也从另一方面反映了帕斯卡计算器跨时代的设计和成就。在巴黎工艺美术博物馆和德国德累斯顿的茨温格博物馆,至今展示着帕斯卡最早设计创造的两台计算器。 帕斯卡计算器的机械设计思想,推动了后来机械计算器的设计和发展。德国数学家莱布尼兹就是受了帕斯卡计算器的启发,又苦恼于帕斯卡计算器只能计算加减不能运算乘除,于是扩展了帕斯卡计算器的功能,设计发明了可以进行乘法运算的莱布尼兹步进计算器,并进一步带起了后续计算器设计的浪潮。 另一方面,帕斯卡的补码思想,一直影响着后续的计算器运算思维。1851年,托马斯成功地将他设计的机械计算器arithmometer在商业上实现推广,而arithmometer使用的减法原理,就是帕斯卡的补九码思想。直到今天,补九码仍是电子计算机中数字运算的重要思想。现代电子计算机中的原码、反码、补码的方法,就是借鉴了帕斯卡开创性的补九码思想,解决计算过程中数字加减法之间的转化问题。
|