“活”过来的经典计算机
2017-02-24陈凯
陈凯
在伦敦科学博物馆有一台巴贝奇的差分机的复制品,说它是复制品,其实并不是很确切,因为在19世纪20年代,巴贝奇本人也只是做出了差分机的一部分,证明了这个机械的可行性。现在的工程师利用巴贝奇留下的图纸,按照当时的工艺,耗费了大量的资金和时间,才完成了整个差分机的制作。
巴贝奇的差分机到底有什么用?通俗来讲,就是把多项式中的乘法变成加法,然后通过齿轮的传动计算出结果。举一个简单的例子,对于Y=X^2,当X值为1时,Y的值就是1,当X值为2、3、4、5…时,Y的值就是4、9、16、25…。虽然说,做4的平方,可以拨动4次齿轮,每次拨4格;做5的平方,可以拨动5次齿轮,每次拨5格,但这样实在是太不自动化了,碰到更高层次的多项式,工作量就以指数级别增加。巴贝奇想要的是一台自动的机械,输入X值,这些齿轮能自动给出多项式的结果。其中的原理,可以用一个画图实验展现出来。
做一个三列n行的表,如三列五行,在第一行的第二列画一个点,在第三列的每一行都画两个点(如图1)。
接下来,从第二行开始画点,规则是,当前格子里的点的数量是当前格子上方及右上方点的数量的总和。例如,第二行第一列上方没有点,而右上方有一个点,则当前格子画一个点。又如,在第二行第二列上方有一个点,而右上方有两个点,则当前格子画三个点,按这个规则从第二行往下依次填完表格(如图2)。
大家可以发现,最左面一列的点的数量从上往下依次是1、4、9、16,对应的是1、2、3、4的平方,这样就可以借助加法运算完成乘方的运算。巴贝奇用齿轮传动来实现以上运算的自动化过程,但这实在太复杂了。現如今,人们通过编程或电子表格等工具都可以模拟差分机的运算过程。本文借助Word的宏来完成自动运算,能显得更有趣些。为了简化运算,其实只需要一行三列的表格。将鼠标定位在第一列,然后按如下过程录制宏:Tab—复制—Home—左箭头—粘贴—Tab—Tab—复制—Home—左箭头—粘贴—Home—左箭头。
初始状态如图3所示,最左面一格的点的数量正好是3的平方。
执行三次宏后,结果如图4所示。
如果大家想知道更高次方的运算是如何实现的,可访问http://ed-thelen.org/bab/bab-diff-JavaScript.html网页,在差分机的模拟器上进行更深入的研究。有兴趣的朋友,可以试着在Word中做一张表来实现Y=X^3或更高次方的运算。