在步进计算器诞生之后的两百多年中,机械计算之曲始终在莱布尼茨定好的基调上演奏。不难发现,两百年中的制造工艺在不断进步,机器的可靠性也不断提高,而计算原理却始终没有改进。尽管各路“莱系”计算器都宣称具备四则运算的能力,其实乘除法的实现靠的是重复加减,使用者总是需要旋转多圈手柄,以“伪造”乘除运算的过程。严格来讲,“莱系”计算器都不是真正的四则计算器,他们只具备加减能力,因此常被称为加法机(adding machine)。
那么,还有没有靠机械结构实现自动乘除的可能呢?有的,而且不止一个人交出了答卷。
1834年,意大利人路易基·托尔基(Luigi Torchi)发明了世界上第一台按键式计算器,同时也是第一台可以直接进行乘法运算的计算器。可惜的是,有关这台机器的史料存世甚少。正经传世的四则计算器设计分别出自美国人埃德蒙·巴伯(Edmund Barbour)、西班牙人雷蒙·韦拉(Ramón Verea)和法国人莱昂·伯利(León Bollée)之手,他们先后于1872年、1878年和1889年取得发明专利。
而第一个让四则计算器走向市场的,是一位生活在德国慕尼黑的瑞士工程师奥托·施泰格尔(Otto Steiger)。他改进了莱昂·伯利的设计,并于1892年取得德国专利,随后在法国、瑞士、加拿大和美国也陆续取得了专利。在苏黎世工程师汉斯·W·埃格利(Hans W. Egli)的帮助下,1893年,机器开始量化生产,他们为它起了个霸气而吉利的名字——“百万富翁”(The Millionaire)。
组成结构
“百万富翁”乍看起来像“高配版”算术仪,它有着和算术仪一样的置数滑钮和计算手柄。
“百万富翁”封装于木盒之中(少数型号是金属盒),打开盒盖可以看到,机身分上下两大部分,上半部分又分为左、中、右三块功能区。左上区域是一根小角度摆动的手柄,称为乘数手柄,其内部隐藏着机械乘法的奥秘;中上区域是与算术仪类似的置数滑钮(后续有少数型号改装为按键),底部是与之一一对应的示数窗口;右上区域为选择运算模式的滑钮(A、M、D、S分别对应加、乘、除、减)和计算手柄,在任何模式下,计算手柄都顺时针旋转(后续有部分型号用电动马达代替了计算手柄);下半部分是封装在机器内部的可动部分,主要显示计算结果和手柄旋转圈数,每次计算前都需将可动部分移至最右侧,并向右滑动清零滑钮对其实现清零,清零滑钮在弹簧的作用下会自动回到左侧。
使用方法
加法运算
- 模式选择为A。
- 通过置数滑钮置入被加数,旋转计算手柄,被加数就显示到了结果示数窗口。
- 通过置数滑钮置入加数,旋转计算手柄,加数就累加到了被加数上,此时结果示数窗口即为最终结果。
减法运算
减法的步骤与加法一样。
- 模式选择为S。
- 通过置数滑钮置入被减数,旋转计算手柄,被减数就显示到了结果示数窗口。
- 通过置数滑钮置入减数,旋转计算手柄,减数就从被减数上扣除,此时结果示数窗口即为最终结果。
乘法运算
“莱系”计算器在进行乘法运算时,需要分别计算被乘数与乘数每一位的部分积,“百万富翁”也是如此。所不同的是,前者在计算被乘数与乘数某一位的部分积时,该位数字是多少,计算手柄就要旋转多少圈,而“百万富翁”始终只需旋转1圈。以1024×128为例:
- 模式选择为M。
- 通过置数滑钮置入被乘数1024。
- 旋转乘数手柄,指向乘数128最高位上的数字1,旋转计算手柄,被乘数1024与乘数最高位1所产生的部分积102400便显示到结果示数窗口。同时,在计算手柄的旋转过程中,可动部分自动左移一位,以备累加下一步被乘数与乘数次高位的乘积。
- 旋转乘数手柄,指向乘数128次高位上的数字2,旋转计算手柄,被乘数1024与乘数次高位2所产生的部分积20480便累加结果示数上,示数为122880。可动部分自动左移一位。
- 以此类推,直至乘数个位——此例中,这一步已经到达。旋转乘数手柄,指向乘数128个位上的数字8,旋转计算手柄,被乘数1024与乘数个位8所产生的部分积8192便累加结果示数上,示数为131072,即1024×128的最终结果。
除法运算
以131072÷1024为例:
- 模式选择为D。
- 通过置数滑钮置入被除数131072,旋转计算手柄,131072进入结果示数窗口。
- 通过置数滑钮置入除数1024。
- 比照除数和被除数的高4位,通过心算估算商的最高位为1,将乘数手柄指向1。
- 旋转计算手柄,如果估算准确,结果示数被扣去除数1024与商最高位1的部分积102400,示数余28672。如果估算偏高了,被除数不够扣,机器就会响铃警报;如果估算偏低了,使用者会在下一步估算时发现。同时,在计算手柄的旋转过程中,可动部分自动左移一位。
- 比照除数和28672的高4位,估算商的次高位为2,将乘数手柄指向1。
- 旋转计算手柄,结果示数被扣去除数1024与商次高位2的部分积20480,示数余8192。可动部分自动左移一位。
- 以此类推,直至结果示数小于除数,此时的结果示数即为余数。此例中,商的下一位估算为8,余数为0,商即128。
可见,这一除法过程很大程度上依赖于使用者的心算,“百万富翁”仅作为一件辅助工具,帮助使用者快速验证自己的估算。考虑到部分用户心算能力有限,盒盖的内侧贴着一张1~9分别与1~99的乘积表,并附有两个可上下移动的读数游标。
乘法原理
从上文可知,在“百万富翁”支持的范围内,多位数与任何一位数的相乘都只需要旋转一圈计算手柄。你可能绞尽脑汁也想不到,这一过程的实现靠的不是计算,而是“查表”。机器内部,乘数手柄的下方,竟藏着一“张”纯机械的“九九乘法表”!
在一块竖直放置的底座上,固定着17片呈阶梯齿状的金属片,每片厚约2mm,片间缝隙约1.5mm。每片从上至下分为9阶,阶高4mm,阶长为4mm的整数倍,从短到长依次有0mm、4mm、……32mm和36mm等10种阶长,分别表示数字0~9。
为便于观察,我们暂时将金属片的间距拉大:
由远及近,第1片从上至下9阶分别代表1和1~9的乘积;第2、3片共18阶从上至下分别代表2和1~9的乘积,其中第2片表示十位,第3片表示个位;以此类推,第16、17片上18阶分别代表9和1~9的乘积,其中第16片表示十位,第17片表示个位。各片上各阶的单位长度(即其所代表的数字)。
第1片 | 第2片 | 第3片 | 第4片 | 第5片 | 第6片 | 第7片 | 第8片 | 第9片 | 第10片 | 第11片 | 第12片 | 第13片 | 第14片 | 第15片 | 第16片 | 第17片 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
第1阶 | 1 | 0 | 2 | 0 | 3 | 0 | 4 | 0 | 5 | 0 | 6 | 0 | 7 | 0 | 8 | 0 | 9 |
第2阶 | 2 | 0 | 4 | 0 | 6 | 0 | 8 | 1 | 0 | 1 | 2 | 1 | 4 | 1 | 6 | 1 | 8 |
第3阶 | 3 | 0 | 6 | 0 | 9 | 1 | 2 | 1 | 5 | 1 | 8 | 2 | 1 | 2 | 4 | 2 | 7 |
第4阶 | 4 | 0 | 8 | 1 | 2 | 1 | 6 | 2 | 0 | 2 | 4 | 2 | 8 | 3 | 2 | 3 | 6 |
第5阶 | 5 | 1 | 0 | 1 | 5 | 2 | 0 | 2 | 5 | 3 | 0 | 3 | 5 | 4 | 0 | 4 | 5 |
第6阶 | 6 | 1 | 2 | 1 | 8 | 2 | 4 | 3 | 0 | 3 | 6 | 4 | 2 | 4 | 8 | 5 | 4 |
第7阶 | 7 | 1 | 4 | 2 | 1 | 2 | 8 | 3 | 5 | 4 | 2 | 4 | 9 | 5 | 6 | 6 | 3 |
第8阶 | 8 | 1 | 6 | 2 | 4 | 3 | 2 | 4 | 0 | 4 | 8 | 5 | 6 | 6 | 4 | 7 | 2 |
第9阶 | 9 | 1 | 8 | 2 | 7 | 3 | 6 | 4 | 5 | 5 | 4 | 6 | 3 | 7 | 2 | 8 | 1 |
从理论上的完整性讲,第1片前面应该也有一片表示十位的金属片,只不过1和1~9的乘积都是个位数,这一片上所有阶长都是0,便自然被省去了。
由于乘法表是纵横等效的,这一装置从上至下可以分为9层,每层有17阶,第1层对应1~9和1的乘积,第2层对应1~9和2的乘积、……第9层对应1~9和9的乘积。乘数手柄在0~9之间摆动,其实是在上下提沉整个“乘法表”装置,以使其某一层与右侧的9根传动齿条对齐。
旋转计算手柄,“乘法表”装置会向右撞击,与齿条对齐的那一层便将各齿条往右推移一段距离,各齿条的位移距离取决于“乘法表”该层与其相对的阶的长度。乘数手柄指向0时,整个“乘法表”装置位于齿条所在的水平面以下,后续的撞击就无法推动齿条产生位移。
每个置数滑钮下方都连着一个小齿轮,置数时滑动滑钮,小齿轮就与某一根齿条啮合。齿条被撞击时,小齿轮便旋转与齿条位移距离相应的角度,这一角度通过一系列齿轮传动最终体现到结果示数轮上。
旋转计算手柄一圈的过程中,共产生两次撞击,以下以乘数为2(即“乘法表”第2层与齿条对齐)作为示例呈现这一过程。
- “乘法表”装置在水平面内平移至表示十位的8阶与第2~9根齿条一一对齐(如图2.57所示),向右撞击后向左恢复至原位;
- 由于“乘法表”第2层十位阶的单位长度依次为0、0、0、1、1、1、1、1,故在撞击中,前3根齿条没有碰触“乘法表”而不发生位移,后5根齿条则均右平移1个单位距离后,在弹簧的作用下向左恢复至原位;
- 可动部分左移一位;
- “乘法表”装置在水平面内平移至表示个位的9阶与9根齿条一一对齐,向右撞击后向左恢复至原位;
- 9根齿条依次向右平移2、4、6、8、0、2、4、6、8个单位距离后,在弹簧的作用下向左恢复至原位。