張 濤
人類進(jìn)入當(dāng)前的信息社會(huì),尤其是進(jìn)入當(dāng)前流行的計(jì)算主義時(shí)代,從醞釀到成熟,經(jīng)歷了近400年的緩慢發(fā)展歷程。但是,由于特殊的國(guó)情,中國(guó)進(jìn)入信息社會(huì)幾乎是在短短十幾年內(nèi)完成的,并沒有像西方社會(huì)那樣經(jīng)歷過漫長(zhǎng)的過渡。這種科技史記憶的缺失,尤其是科技史器物的缺失,并不利于我國(guó)思想界深入反思信息社會(huì)的本質(zhì),也不利于我國(guó)科技教育界理解科技發(fā)展的一般規(guī)律和科技創(chuàng)新的一般原理。因此,研究西方計(jì)算器史,并以此為基礎(chǔ)研究西方計(jì)算思想史,并同時(shí)在科學(xué)博物館中開設(shè)計(jì)算器展區(qū),對(duì)于中國(guó)思想界和中國(guó)科技教育界的發(fā)展,均具有基礎(chǔ)性的理論意義和急切的現(xiàn)實(shí)意義。
德國(guó)著名哲學(xué)家、數(shù)學(xué)家萊布尼茨(G.W. Leibniz,1646-1716)為世人所知,多半是因?yàn)樗l(fā)現(xiàn)了微積分(Calculus)這一數(shù)學(xué)概念并創(chuàng)造了我們今天所使用的微積分符號(hào),但大多數(shù)人并不知道他在漫長(zhǎng)的計(jì)算器發(fā)展史和計(jì)算思想發(fā)展史中是一位重要的奠基者。他系統(tǒng)地發(fā)明了二進(jìn)制算數(shù)[1],提出了“通用字符理論”[2],這二者均成為了信息社會(huì)的根基。此外,萊布尼茨對(duì)信息社會(huì)更直接的貢獻(xiàn),是他發(fā)明的能夠?qū)κM(jìn)制數(shù)字進(jìn)行加減乘除自動(dòng)化運(yùn)算的手搖機(jī)械計(jì)算器。
在17世紀(jì)的歐洲,似乎掀起了一場(chǎng)追求計(jì)算自動(dòng)化和研制計(jì)算工具的浪潮,僅僅在半個(gè)世紀(jì)里就先后誕生了納皮爾骨籌、對(duì)數(shù)計(jì)算尺、史卡特計(jì)算器、帕斯卡計(jì)算器、莫蘭計(jì)算器、萊布尼茨計(jì)算器[注]萊布尼茨在發(fā)明二進(jìn)制算數(shù)的同時(shí)還設(shè)計(jì)過一臺(tái)二進(jìn)制機(jī)械計(jì)算器,為了與此相區(qū)別,“萊布尼茨十進(jìn)制四則運(yùn)算手搖機(jī)械計(jì)算器”在本文中簡(jiǎn)稱為“萊氏計(jì)算器”。等計(jì)算裝置[3]618-629。其中,前兩者均是計(jì)算輔助工具,史卡特計(jì)算器和莫蘭計(jì)算器的設(shè)計(jì)原理依然是納皮爾骨籌,這四者的計(jì)算過程均需要手動(dòng)參與;帕斯卡計(jì)算器雖然實(shí)現(xiàn)了自動(dòng)化,但嚴(yán)格意義上講它還只是一臺(tái)加法器,其齒輪只能往一個(gè)方向撥動(dòng),并且對(duì)于乘除運(yùn)算無能為力。而萊布尼茨設(shè)計(jì)的計(jì)算器,不僅能夠進(jìn)行加減乘除四則運(yùn)算,而且還真正實(shí)現(xiàn)了自動(dòng)化,標(biāo)志著人類追求計(jì)算過程自動(dòng)化之夢(mèng)想的真正實(shí)現(xiàn)。
自萊布尼茨之后,機(jī)械計(jì)算器設(shè)計(jì)愈發(fā)精巧,在19世紀(jì)末逐漸實(shí)現(xiàn)了量產(chǎn),于20世紀(jì)初得到普及,并逐漸通過與電機(jī)和按鍵的結(jié)合變得更加省力,直到20世紀(jì)末被現(xiàn)代電子計(jì)算器所取代。但是,在萊氏計(jì)算器后續(xù)200余年的機(jī)械計(jì)算器的發(fā)展史中,其設(shè)計(jì)理念及其核心部件仍然發(fā)揮著主導(dǎo)作用,之后的各類機(jī)械計(jì)算器均可以從萊氏計(jì)算器中找到影子??梢?,萊氏計(jì)算器在人類追求計(jì)算過程自動(dòng)化的歷程中具有里程碑式的意義。
萊布尼茨在世之時(shí),他的計(jì)算器就已經(jīng)得到了廣泛的關(guān)注和研究,并直接推動(dòng)了機(jī)械計(jì)算器的發(fā)展。他的第一臺(tái)計(jì)算器還是一個(gè)比較簡(jiǎn)單的木制模型,于1673年2月1日在倫敦的皇家協(xié)會(huì)得到公開展示,與會(huì)的胡克(Robert Hooke)對(duì)其進(jìn)行了非常細(xì)致的研究,甚至嘗試研制一臺(tái)更先進(jìn)的計(jì)算器出來,以爭(zhēng)奪四則運(yùn)算計(jì)算器的發(fā)明權(quán)[4]73。萊布尼茨于1673年5月在巴黎研制的第二臺(tái)計(jì)算器,由黃銅制成,擁有4個(gè)輸入位、12個(gè)輸出位,可以對(duì)4位數(shù)(千位)進(jìn)行計(jì)算,輸出結(jié)果可以達(dá)到12位數(shù)(千億位);于1675年1月9日在法國(guó)皇家科學(xué)學(xué)院得到展示[5]68。萊布尼茨于1675年在巴黎研制的第三臺(tái)計(jì)算器,也是由黃銅制作,已經(jīng)擁有7個(gè)輸入位、12個(gè)輸出位;這臺(tái)計(jì)算器在巴黎的不同地點(diǎn)得到過多次展示,并于1676年10月18日交給了英國(guó)皇家協(xié)會(huì)秘書奧登伯格(Heirich Oldenburg)[5]69。萊布尼茨于1697年完成了第四臺(tái)計(jì)算器的研制,在幾番改進(jìn)之后,擁有8個(gè)輸入位、16個(gè)輸出位,經(jīng)常由萊布尼茨親自攜帶或單獨(dú)外借到歐洲各地公開展示。為此,萊布尼茨于1704年左右還特意為計(jì)算器訂制了一個(gè)木質(zhì)盒子,以起到保護(hù)作用[5]94。應(yīng)該說,萊氏計(jì)算器的這些公開展示活動(dòng),直接推動(dòng)了機(jī)械計(jì)算器的發(fā)展,甚至掀起了歐洲研制四則運(yùn)算機(jī)械計(jì)算器的高潮,我們?cè)谌R氏計(jì)算器之后出現(xiàn)的幾臺(tái)機(jī)械計(jì)算器中,都能發(fā)現(xiàn)其影響。
萊布尼茨死后留下了20多萬張手稿,卻被漢諾威王室長(zhǎng)期封存,這嚴(yán)重阻礙了萊布尼茨思想的傳播[6],萊布尼茨對(duì)機(jī)械計(jì)算器的貢獻(xiàn)也因此被遺忘了。在萊布尼茨去世之后,他的計(jì)算器流落到了哥廷根,在那里待了一個(gè)多世紀(jì),先是在哥廷根大學(xué)的模型陳列室里安放著,然后又閑置于大學(xué)圖書館的閣樓里[5]103。直到19世紀(jì)末,在歷史主義思潮的影響下,萊布尼茨的重要性日益突出,萊布尼茨手稿的整理工作逐漸被提上日程,萊氏計(jì)算器也開始進(jìn)入當(dāng)時(shí)的學(xué)術(shù)視野。例如,第一篇研究萊氏計(jì)算器的學(xué)術(shù)文獻(xiàn),應(yīng)該是威廉·喬丹(Wilhelm Jordan)于1887年發(fā)表的德文文章《萊布尼茨的機(jī)械計(jì)算器》[7],他在文中對(duì)萊氏計(jì)算器的基本原理進(jìn)行介紹,并手繪了幾幅圖紙。也是在19世紀(jì)末,伴隨著機(jī)械計(jì)算器制造業(yè)的逐漸成熟,以及商業(yè)需求的逐漸加大,萊氏計(jì)算器得到了機(jī)械計(jì)算器制造商們的重視和研究,從而再次推動(dòng)了機(jī)械計(jì)算器的發(fā)展。例如,在1893年,著名的計(jì)算器制造商Arthur Burkhardt對(duì)萊氏計(jì)算器進(jìn)行了研究,這幫助他在萊布尼茨“階梯滾輪”的基礎(chǔ)上發(fā)明了更小巧的“階梯鼓輪”(stepped-drum),對(duì)機(jī)械計(jì)算器的發(fā)展起到了重要推動(dòng)作用[注]來源:http://history-computer.com/MechanicalCalculators/19thCentury/Burkhardt.html。。在此大氛圍之下,1897年萊氏計(jì)算器終于被藏入現(xiàn)在的萊布尼茨檔案館,得到了專門保護(hù)[5]29。在1924年,著名的機(jī)械計(jì)算器制造公司Brunsviga[注]來源:http://www.vintagecalculators.com/html/brunsviga.html。成功復(fù)制了第一臺(tái)萊氏計(jì)算器,此后又復(fù)制了4臺(tái)。截止目前,在德國(guó)境內(nèi)已至少擁有14臺(tái)萊氏計(jì)算器復(fù)制品,大都是由機(jī)械計(jì)算器制造商、博物館或研究機(jī)構(gòu)制造的。
施泰因(Erwin Stein)于1990年組織了萊布尼茨展覽(Leibniz-Ausstellung)[8],推動(dòng)了學(xué)界對(duì)萊布尼茨技術(shù)發(fā)明家形象的關(guān)注;施泰因于2005年復(fù)制了一臺(tái)萊氏計(jì)算器,并將其復(fù)制過程、機(jī)械圖紙、數(shù)學(xué)原理等內(nèi)容公開發(fā)表到學(xué)術(shù)期刊上[9, 10],開啟了萊氏計(jì)算器研究的另一種研究方式。在2014年,他與瓦爾斯道夫(Ariane Walsdorf)、巴杜爾(Klaus Badur)和柯浦(Franz Otto Kopp)合作出版了研究萊氏計(jì)算器的德語專著《最后的珍品》[5],可謂集萊氏計(jì)算器研究之大成。在此之前,也有個(gè)別英文文章討論過萊氏計(jì)算器,但大多是從計(jì)算器史的角度,在細(xì)節(jié)方面還不夠詳細(xì)[11-13]。在我國(guó),還沒有詳細(xì)研究萊氏計(jì)算器的文章出現(xiàn)。一些不可靠的傳聞廣為流傳,例如,祖慶年先生曾認(rèn)為萊氏計(jì)算器是對(duì)帕斯卡計(jì)算器進(jìn)行改裝之后做出的[14]10,劉鋼曾推測(cè)萊氏研制計(jì)算器的動(dòng)機(jī)是為了計(jì)算德意志人口[15],姜奇平和劉鋼都認(rèn)為萊布尼茨曾送給康熙一臺(tái)計(jì)算器[16,17],如此等等。這使得我們有必要依據(jù)國(guó)際萊氏學(xué)界(主要是德國(guó)萊氏學(xué)界)的最新研究進(jìn)展,對(duì)萊氏計(jì)算器的設(shè)計(jì)理念、使用方法、內(nèi)部結(jié)構(gòu)、進(jìn)位方式等進(jìn)行詳解。
雖然萊布尼茨一生實(shí)際共研制過4臺(tái)計(jì)算器,但是只有最后一臺(tái)得以存世,它于1697年在漢諾威由鐘表制造師謝爾普(Adam Scherp)制成,后來先后輾轉(zhuǎn)各地交由不同的機(jī)械師改進(jìn),直到萊布尼茨去世的前幾年才改進(jìn)完成,目前存放在漢諾威的萊布尼茨檔案館(見圖1)。
圖1 萊氏計(jì)算器側(cè)面圖1. 輸入裝置;2. 傳動(dòng)曲柄;3. 結(jié)果顯示器;4. 計(jì)轉(zhuǎn)器;5. 滑動(dòng)曲柄。
因?yàn)榻?jīng)常要被運(yùn)到其它地方去供人鑒賞,萊布尼茨為這臺(tái)計(jì)算器設(shè)計(jì)了一個(gè)由胡桃木和橡木制成的盒子,以起到保護(hù)作用。機(jī)器的主體部分是由鐵和黃銅制成,長(zhǎng)寬高分別約為780mm、320mm、150mm;去掉木質(zhì)盒子的蓋板之后,總重量約14kg[18]。這臺(tái)計(jì)算器一共有8個(gè)輸入位、16個(gè)輸出位,換言之,可以對(duì)8位數(shù)(千萬)進(jìn)行加減乘除四則運(yùn)算,輸出結(jié)果可以達(dá)到16位數(shù)(千萬億)。機(jī)器主體部分,主要由輸入裝置和計(jì)算裝置兩大部分組成。輸入裝置在機(jī)器較靠前的位置,是一個(gè)相對(duì)較獨(dú)立的整體,可以通過搖動(dòng)左側(cè)的滑板曲柄,在螺紋中軸上左右移動(dòng),以方便進(jìn)行乘除法運(yùn)算,起到類似于在筆算法中將乘數(shù)的不同數(shù)位分別與被乘數(shù)相乘的效果。
萊氏計(jì)算器的突破,是可以進(jìn)行加減乘除四則運(yùn)算[注]演示視頻,請(qǐng)登錄“萊布尼茨檔案館·萊布尼茨中心”的官網(wǎng)查看:http://www.leibnizcentral.de/。。在它之前的帕斯卡計(jì)算器,實(shí)際上只能進(jìn)行加法運(yùn)算,只能把齒輪單個(gè)地往同一個(gè)方向撥動(dòng),其減法運(yùn)算需要通過更換顯示欄的遮擋條來實(shí)現(xiàn)[注]關(guān)于帕斯卡計(jì)算器的原理,可參考:https://en.wikipedia.org/wiki/Pascal%27s_calculator。;因此,嚴(yán)格意義上講,“帕斯卡計(jì)算器”的學(xué)名應(yīng)該是“帕斯卡加法器”。萊氏計(jì)算器之所以能夠進(jìn)行乘除運(yùn)算,主要是借助于他發(fā)明的“階梯滾輪”(見圖2),也正是這個(gè)關(guān)鍵的零件主導(dǎo)了后世200多年的機(jī)械計(jì)算器的發(fā)展[注]關(guān)于機(jī)械計(jì)算器的發(fā)展歷史,可以參考網(wǎng)站:http://www.computerhistory.org/VirtualVisibleStorage/ artifact_main.php?tax_id=01.01.06.00。,為此,英語學(xué)界稱其為“萊布尼茨輪”(Leibniz Wheel)。
圖2 階梯滾輪工作
萊布尼茨輪的設(shè)計(jì)理念是:首先,從根本上說,加減乘除四則運(yùn)算最終都可以還原為機(jī)械疊加,減法是加法的逆運(yùn)算,乘法是加法的重復(fù)運(yùn)算,除法是乘法的逆運(yùn)算。其次,將從0到9的10個(gè)個(gè)位數(shù)值,轉(zhuǎn)換成階梯滾輪上的10個(gè)階梯的長(zhǎng)度值。如圖2[注]該圖截屏而成,視頻來源是:https://www.youtube.com/watch?v=klLB5k3LkwU。,數(shù)值0對(duì)應(yīng)的階梯長(zhǎng)度是“無”,數(shù)值1對(duì)應(yīng)的階梯長(zhǎng)度是最長(zhǎng)的,數(shù)值9對(duì)應(yīng)的階梯長(zhǎng)度是最短的,以此類推。第三,階梯滾輪推動(dòng)與它相接的齒輪轉(zhuǎn)動(dòng),即可實(shí)現(xiàn)計(jì)算的功能。例如,圖2中的計(jì)數(shù)齒輪對(duì)準(zhǔn)了階梯滾輪的2號(hào)階梯,當(dāng)階梯滾輪旋轉(zhuǎn)1圈之后,計(jì)數(shù)齒輪會(huì)撥動(dòng)2個(gè)齒格,相當(dāng)于實(shí)現(xiàn)了2×1的計(jì)算;如果階梯滾輪轉(zhuǎn)動(dòng)3圈,計(jì)數(shù)齒輪會(huì)撥動(dòng)6個(gè)齒格,相當(dāng)于實(shí)現(xiàn)了2×3的計(jì)算。第四,十進(jìn)制數(shù)的進(jìn)位,是通過更換數(shù)字的排列位置實(shí)現(xiàn)的,例如,001、010、100依次相差十倍。同理,雖然每一個(gè)階梯滾輪裝置單獨(dú)對(duì)它所接收的數(shù)值進(jìn)行計(jì)算,但是如果將多個(gè)階梯滾輪裝置排列起來,也就實(shí)際上表達(dá)了對(duì)不同數(shù)位上的數(shù)值的計(jì)算。
萊氏計(jì)算器奠定了后世機(jī)械計(jì)算器的設(shè)計(jì)基礎(chǔ),在現(xiàn)代電子計(jì)算器興起之前,市場(chǎng)上所廣泛使用的幾種機(jī)械計(jì)算器,其使用方法均與萊氏計(jì)算器類似[注]機(jī)械計(jì)算器使用方法,可參考視頻:Machines S. Mechanical Calculator - How to use a vintage adding machine[EB/OL].[11月19日].https://www.youtube.com/watch?v=mUqi7mvrDjw。。我們接下來以654321和987的加減乘除四則運(yùn)算為例,闡釋萊氏計(jì)算器的操作過程。
1. 加法和減法運(yùn)算
要計(jì)算654321+987,參考圖1,共需6步:
① 歸零。通過旋轉(zhuǎn)滑板曲柄,將輸入裝置移動(dòng)到最右側(cè),并將8個(gè)輸入旋鈕、16個(gè)結(jié)果顯示器都?xì)w零。
② 輸入被加數(shù)。通過旋轉(zhuǎn)輸入旋鈕,完成對(duì)數(shù)值654321的輸入;此時(shí),數(shù)值大小已經(jīng)轉(zhuǎn)變成了階梯滾輪的階梯長(zhǎng)度。
③ 存儲(chǔ)數(shù)值。順時(shí)針旋轉(zhuǎn)動(dòng)力曲柄1圈,將654321傳輸?shù)接?jì)算箱上保存起來,相當(dāng)于完成了0+654321的計(jì)算;此時(shí),階梯滾輪推動(dòng)了計(jì)算箱上的齒輪的轉(zhuǎn)動(dòng)。
④ 輸入加數(shù)。旋轉(zhuǎn)輸入旋鈕,完成對(duì)數(shù)值987的輸入。
⑤ 計(jì)算。順時(shí)針旋轉(zhuǎn)動(dòng)力曲柄1圈,完成654321+987的計(jì)算。
⑥ 讀數(shù)。讀出結(jié)果顯示器上的數(shù)值即可。
由于減法運(yùn)算是加法運(yùn)算的逆運(yùn)算,要計(jì)算654321-987,除了在步驟⑤中需要把動(dòng)力曲柄逆時(shí)針旋轉(zhuǎn)1圈之外,其它步驟與計(jì)算654321+987均相同。乘法運(yùn)算是加法運(yùn)算的疊加運(yùn)算,上面的步驟③其實(shí)相當(dāng)于完成了654321×1的計(jì)算,如果要計(jì)算654321×987,理論上可以通過旋轉(zhuǎn)動(dòng)力曲柄987圈來實(shí)現(xiàn)。
2. 乘法運(yùn)算
萊布尼茨設(shè)計(jì)了一個(gè)更簡(jiǎn)便的乘法運(yùn)算方法,計(jì)算654321×987共需4步:
① 歸零。
② 輸入被乘數(shù)654321。
③ 計(jì)算。首先,順時(shí)針旋轉(zhuǎn)動(dòng)力曲柄7圈,完成 654321×7 的計(jì)算;其次,旋轉(zhuǎn)滑板曲柄,使輸入裝置向左移動(dòng)一個(gè)數(shù)位,對(duì)準(zhǔn)輸出顯示器上的十位數(shù),再順時(shí)針旋轉(zhuǎn)動(dòng)力曲柄8圈,完成 654321×80的計(jì)算;最后,再次旋轉(zhuǎn)滑板曲柄,使輸入裝置再向左移動(dòng)一個(gè)數(shù)位,對(duì)準(zhǔn)輸出顯示器上的百位數(shù),然后順時(shí)針旋轉(zhuǎn)動(dòng)力曲柄9圈,完成654321×900的計(jì)算。
④ 讀數(shù)。
可見,萊氏計(jì)算器的乘法運(yùn)算原理,與我們經(jīng)常使用的筆算法類似,將被乘數(shù)與乘數(shù)的不同數(shù)位分別相乘,然后將乘積結(jié)果相加;只不過,萊氏計(jì)算器將這兩個(gè)步驟綜合了起來,即時(shí)地顯示了每一次計(jì)算的結(jié)果。
3. 除法運(yùn)算
除法是乘法的逆運(yùn)算,在筆算法中除法運(yùn)算比較復(fù)雜,需要用除數(shù)從被除數(shù)的最高位開始逐位試錯(cuò),萊氏計(jì)算器也依據(jù)了同樣的原理[注]可參考作者制作的視頻《機(jī)械計(jì)算器Brunsviga使用方法》,地址:https://url.cn/5PHf1U0?sf=uri。。要計(jì)算654321÷987,需要經(jīng)過6個(gè)主要步驟:
① 歸零。
② 輸入被除數(shù)654321。
③ 存儲(chǔ)數(shù)值,此時(shí)結(jié)果顯示器上已顯示654321。
④ 輸入除數(shù)987。
⑤ 計(jì)算。首先,旋轉(zhuǎn)滑板曲柄,使除數(shù)的最高位“9”對(duì)準(zhǔn)結(jié)果顯示器上的最高位“6”,然后逆時(shí)針旋轉(zhuǎn)動(dòng)力曲柄,計(jì)算器會(huì)出現(xiàn)卡頓,表示無法除盡,如此便完成了654÷987的計(jì)算,結(jié)果是除不盡(這一步也可以省略);其次,旋轉(zhuǎn)滑板曲柄,使除數(shù)的最高位“9”對(duì)準(zhǔn)結(jié)果顯示器上的次高位“5”,然后向逆時(shí)針旋轉(zhuǎn)動(dòng)力曲柄,最多只能旋轉(zhuǎn)6圈,此時(shí)結(jié)果顯示器顯示“62121”,記轉(zhuǎn)器顯示“6”,便得到了6543÷987 的計(jì)算結(jié)果“商6余62121”;第三,旋轉(zhuǎn)滑板曲柄,使除數(shù)的最高位“9”對(duì)準(zhǔn)結(jié)果顯示器上的“4”,然后逆時(shí)針旋轉(zhuǎn)動(dòng)力曲柄,最多也只能旋轉(zhuǎn)6圈,此時(shí)結(jié)果顯示器顯示“2901”,記轉(zhuǎn)器顯示“6”,便得到了62121÷987的計(jì)算結(jié)果“商6余2901”;第四,旋轉(zhuǎn)滑板曲柄,使除數(shù)的最高位“9”對(duì)準(zhǔn)結(jié)果顯示器上的“3”,然后逆時(shí)針旋轉(zhuǎn)動(dòng)力曲柄,最多只能旋轉(zhuǎn)2圈,此時(shí)結(jié)果顯示器顯示“927”,記轉(zhuǎn)器顯示“2”,便得到了2901÷987的計(jì)算結(jié)果“商2余927”。
⑥ 將每次運(yùn)算所得結(jié)果列出來,便是654321÷987的最終結(jié)果“商662余927”。
理論上講,將幾個(gè)階梯滾輪裝置(見圖2)并排起來,便構(gòu)成了一臺(tái)萊氏計(jì)算器;但是,在實(shí)際操作層面上,卻遠(yuǎn)比想象中的復(fù)雜:其關(guān)鍵在于如何處理進(jìn)位問題,尤其是連續(xù)多次進(jìn)位問題。帕斯卡加法器的進(jìn)位原理,類似于我們現(xiàn)在日常使用的水表、電表的結(jié)構(gòu),低位齒輪旋轉(zhuǎn)1圈后,會(huì)撥動(dòng)左側(cè)高位齒輪前進(jìn)1齒,如此完成1次進(jìn)位;其進(jìn)位只能是低位齒輪逐級(jí)地推動(dòng)高位齒輪的轉(zhuǎn)動(dòng),不存在多個(gè)數(shù)位的齒輪同時(shí)轉(zhuǎn)動(dòng)的情況。但是,萊氏計(jì)算器因?yàn)橐M(jìn)行乘除法運(yùn)算,它必須能夠使不同數(shù)位上的轉(zhuǎn)軸、齒輪、階梯滾輪等同時(shí)轉(zhuǎn)動(dòng),并保證高位計(jì)算軸能夠精確地接收到低位計(jì)算軸上的進(jìn)位,并且還要保證相鄰的計(jì)算軸在進(jìn)位的時(shí)候不會(huì)發(fā)生沖突;這是萊布尼茨要克服的機(jī)械難題。
我們?cè)谶@里借用巴杜爾在《最后的珍品》中繪制的四幅圖,對(duì)萊氏計(jì)算器的內(nèi)部結(jié)構(gòu)進(jìn)行一些詳細(xì)的說明。圖3是整體功能結(jié)構(gòu)圖[注]圖片來源:Walsdorf A, et al. Das letzte Original: 129。,圖4是輸入裝置結(jié)構(gòu)圖[注]圖片來源:Walsdorf A, et al. Das letzte Original: 131。,圖5是計(jì)算裝置結(jié)構(gòu)圖[注]圖片來源:Walsdorf A, et al. Das letzte Original: 133。,圖6是進(jìn)位裝置結(jié)構(gòu)圖[注]圖片來源:Walsdorf A, et al. Das letzte Original: 134。。
圖3中各部件的名稱及作用(見圖3)分別是:a. 底盤,承載計(jì)算器整體;b. 輸入裝置,位于計(jì)算器前半部分(見圖4),是一個(gè)能夠在螺紋中軸上左右移動(dòng)的整體;c. 結(jié)果顯示器,及時(shí)地顯示運(yùn)算結(jié)果;d. 計(jì)算裝置,固定于計(jì)算器后半部分(見圖5),是一個(gè)獨(dú)立的整體。
圖3 萊氏計(jì)算器的整體結(jié)構(gòu)圖
圖4 萊氏計(jì)算器的輸入裝置結(jié)構(gòu)圖
圖4中各部件的名稱及作用分別是:e.輸入旋鈕,位于輸入裝置b上,一共有8個(gè),上面刻有0~9十個(gè)數(shù)字,旋轉(zhuǎn)它的時(shí)候就會(huì)通過底下的傳動(dòng)齒條使階梯滾輪m產(chǎn)生位移,從而實(shí)現(xiàn)數(shù)字輸入的功能;f.動(dòng)力曲柄,是計(jì)算器進(jìn)行計(jì)算的唯一動(dòng)力來源,轉(zhuǎn)動(dòng)它的時(shí)候便進(jìn)入計(jì)算狀態(tài);g.記轉(zhuǎn)器,用于計(jì)算動(dòng)力曲柄旋轉(zhuǎn)的圈數(shù),上面有對(duì)應(yīng)著0~9十個(gè)數(shù)字的10個(gè)孔,可以用一個(gè)插銷插入指定的孔中,以限定動(dòng)力曲柄旋轉(zhuǎn)的最大圈數(shù);h.滑板曲柄,通過轉(zhuǎn)動(dòng)它,輸入裝置會(huì)在8個(gè)不同的位置間進(jìn)行移動(dòng),用以完成對(duì)高位數(shù)或小數(shù)的計(jì)算;j.定位儀,用以確保輸入裝置移動(dòng)到準(zhǔn)確的位置上,否則傳動(dòng)曲柄f將會(huì)卡??;m.階梯滾輪,階梯狀的齒牙位于圓柱體的一側(cè),齒牙之間的角度是 22.5°[9],與輸入轉(zhuǎn)盤e底下的傳動(dòng)齒條相連,承載著輸入結(jié)果,預(yù)備進(jìn)入計(jì)算裝置中進(jìn)行計(jì)算;u.傳動(dòng)齒輪,傳動(dòng)曲柄f首先驅(qū)動(dòng)緊靠其后的3個(gè)大的傳動(dòng)齒輪,然后再驅(qū)動(dòng)更后面的8個(gè)傳動(dòng)齒輪,這8個(gè)傳動(dòng)齒輪再通過緊靠著它的小齒輪驅(qū)動(dòng)階梯滾輪,并同時(shí)驅(qū)動(dòng)和它處于同一個(gè)軸上的末端的二角齒輪。
圖5中各部件的名稱及作用分別是:i.制動(dòng)彈簧,保證齒輪旋轉(zhuǎn)的時(shí)候保持一定的張力,保證計(jì)算的精確度;k.中間過渡軸,位于計(jì)數(shù)軸的中間,總共有15條,上面載有進(jìn)位裝置(見圖6),在其前面和后面各有一個(gè)五角凹輪;l.五角墊圈,位于過度軸的最末端,屬于進(jìn)位裝置的一部分,當(dāng)它成傾斜狀的時(shí)候,表示有進(jìn)位需求,手動(dòng)將其擺正之后才能最終完成進(jìn)位;n.接收計(jì)數(shù)輪,與結(jié)果顯示器c同處于計(jì)數(shù)軸上,與下面的階梯滾輪相接,用以接收來自階梯滾輪的數(shù)值。
圖5 萊氏計(jì)算器的計(jì)算裝置結(jié)構(gòu)圖
圖6中各部件的名稱及作用分別是:k.中間過渡軸;m.階梯滾輪,當(dāng)它的階梯狀的齒牙位于上方的時(shí)候,會(huì)與接收計(jì)數(shù)輪n相接,從而實(shí)現(xiàn)數(shù)值的傳送;n.接收計(jì)數(shù)輪,它與結(jié)果顯示器同處計(jì)數(shù)軸上,兩者的轉(zhuǎn)動(dòng)具有一致性;u.傳動(dòng)齒輪,它會(huì)通過與它相接的小齒輪驅(qū)動(dòng)階梯滾輪m旋轉(zhuǎn);v.傳動(dòng)齒條,與數(shù)字輸入轉(zhuǎn)盤e下面的齒輪相接,通過軸與階梯滾輪相連,當(dāng)旋轉(zhuǎn)輸入轉(zhuǎn)盤e的時(shí)候,它會(huì)拉動(dòng)階梯滾輪做前后位移;o.單齒輪,位于計(jì)數(shù)軸的末端,擁有一個(gè)凸齒,在計(jì)數(shù)軸的帶動(dòng)下,每旋轉(zhuǎn)一圈就會(huì)推動(dòng)中間過渡軸k末端的齒輪旋轉(zhuǎn)一個(gè)齒格,并使得中間過渡軸k旋轉(zhuǎn)18°;s.前置五角凹輪,有五個(gè)凹陷的角,各自成72°,在沒有進(jìn)位需求的時(shí)候底邊處于水平狀態(tài),如果單齒輪o推動(dòng)了中間過渡軸k的轉(zhuǎn)動(dòng),那么這個(gè)前置五角凹輪也會(huì)偏轉(zhuǎn)18°;t.二角凹輪,它與傳動(dòng)齒輪u共用一個(gè)軸,位于軸的末端,在沒有進(jìn)位需求的時(shí)候,它不會(huì)與上面的前置五角凹輪相交,當(dāng)有進(jìn)位需求的時(shí)候,即當(dāng)前置五角凹輪發(fā)生偏轉(zhuǎn)的時(shí)候,它就會(huì)推動(dòng)前置五角凹輪旋轉(zhuǎn)54°;p. 末端五角凹輪,它與前置五角凹輪共用一個(gè)軸,當(dāng)前置五角凹輪被二角凹輪推動(dòng)54°之后,它也會(huì)發(fā)生同樣的旋轉(zhuǎn),并同時(shí)推動(dòng)與其相接的左側(cè)的小型十角齒輪r旋轉(zhuǎn)一個(gè)齒格,從而完成進(jìn)位;r.小型十角齒輪,它位于計(jì)數(shù)軸上,用于接受來自右側(cè)的后置五角凹輪的進(jìn)位需求。
圖6 萊氏計(jì)算器的進(jìn)位裝置功能結(jié)構(gòu)圖
萊布尼茨的計(jì)算器,有兩種進(jìn)位機(jī)制:?jiǎn)未芜M(jìn)位和多次連續(xù)進(jìn)位。單次進(jìn)位比較簡(jiǎn)單和順利。例如,如果要計(jì)算9+3,機(jī)器運(yùn)作的整個(gè)過程將是這樣的:首先,將個(gè)位數(shù)上的數(shù)字輸入轉(zhuǎn)盤e向右旋轉(zhuǎn)到刻度3的位置,這個(gè)時(shí)候轉(zhuǎn)盤就會(huì)通過下面的傳動(dòng)齒條v使得階梯滾輪m發(fā)生位移;其次,向右旋轉(zhuǎn)傳動(dòng)曲柄f,它通過傳動(dòng)齒輪u推動(dòng)階梯滾輪向左旋轉(zhuǎn);第三,階梯滾輪旋轉(zhuǎn)到上方的時(shí)候,與個(gè)位數(shù)上的接收計(jì)數(shù)輪n相接,使得n向右轉(zhuǎn)動(dòng)3個(gè)齒格,并使得個(gè)位數(shù)上的結(jié)果顯示器c從數(shù)值9變?yōu)閿?shù)值2;第四,個(gè)位數(shù)上的單齒輪o推動(dòng)它左側(cè)的中間過渡軸k末端的齒輪向左旋轉(zhuǎn)18°;第五,傳動(dòng)曲柄f 繼續(xù)向右旋轉(zhuǎn),二角凹輪t推動(dòng)前置五角凹輪s向左旋轉(zhuǎn)54°;第六,后置五角凹輪也向左旋轉(zhuǎn)54°,并同時(shí)推動(dòng)左側(cè)的十位數(shù)計(jì)數(shù)軸上小型十角齒輪r向右旋轉(zhuǎn)一個(gè)齒格。最后,十位數(shù)上的結(jié)果顯示器c因?yàn)橄蛴倚D(zhuǎn)了一個(gè)齒格,便從數(shù)字0變成了1,至此,完成了計(jì)算的全過程,8個(gè)結(jié)果顯示器上的結(jié)果是00000012。
但是,還有另外一種情況,那就是當(dāng)多次連續(xù)進(jìn)位發(fā)生的時(shí)候,這是乘法運(yùn)算中經(jīng)常遇到的,也是萊布尼茨需要解決的一個(gè)難題,同時(shí)也是他的進(jìn)位裝置能夠巧妙地解決的。例如,如果要計(jì)算99+3,則需要完成兩次進(jìn)位,其運(yùn)算的整個(gè)過程是這樣的:首先,個(gè)位數(shù)上的進(jìn)位過程與上面的過程完全一樣,完成進(jìn)位之后,個(gè)位數(shù)的結(jié)果顯示器c變成了2,十位數(shù)上的結(jié)果顯示器c變成了0;其次,十位數(shù)所在的計(jì)數(shù)軸的末端的小型十角齒輪r,會(huì)推動(dòng)其左側(cè)的中間過渡軸k向左旋轉(zhuǎn)18°,但是由于此時(shí)傳動(dòng)曲柄f已經(jīng)不再旋轉(zhuǎn),二角凹輪也不會(huì)再旋轉(zhuǎn),進(jìn)位過程也就到此為止;最后,不得不手動(dòng)地將十位數(shù)與百位數(shù)之間的中間過渡軸k后面的五角墊圈向左旋轉(zhuǎn)到水平位置,并同時(shí)推動(dòng)其左側(cè)的百位數(shù)計(jì)數(shù)軸向右轉(zhuǎn)動(dòng)一個(gè)齒格,由此完成進(jìn)位的整個(gè)過程,八個(gè)結(jié)果顯示器c上的結(jié)果是00000102。因此,在使用萊氏計(jì)算器的過程中,當(dāng)計(jì)算完成之后,還需要檢查末端的五角墊圈,如果有傾斜的,需要手動(dòng)將其向左旋轉(zhuǎn)(從計(jì)算器后面看是向右旋轉(zhuǎn))至水平位置,之后才會(huì)得到最終結(jié)果。
可以說,相對(duì)于萊布尼茨畢生所追求的“計(jì)算過程完全機(jī)械自動(dòng)化”這一設(shè)計(jì)理念來說,在多次進(jìn)位時(shí)仍然需要手動(dòng)操作,是萊氏計(jì)算器的唯一弊病。為改進(jìn)這一弊端,萊布尼茨耗費(fèi)了大量精力和財(cái)力,但直至萊布尼茨去世,這一弊病仍未能克服。
以上分析,雖已相當(dāng)細(xì)致,甚至在個(gè)別地方略顯冗繁,但也只是對(duì)萊氏計(jì)算器進(jìn)行了粗略地講解,足以見得萊氏計(jì)算器的復(fù)雜程度和設(shè)計(jì)難度;即使是在機(jī)械制造水平非常發(fā)達(dá)的今天,要復(fù)制這樣一臺(tái)計(jì)算器也是一件十分具有挑戰(zhàn)性的工作。但是,這種細(xì)致的分析,是一項(xiàng)基礎(chǔ)性的工作,能夠?yàn)閷W(xué)界的一些爭(zhēng)論提供有力的參考。比如,有人猜測(cè)萊氏計(jì)算器是在帕斯卡計(jì)算器的基礎(chǔ)上改進(jìn)而成的,這顯然是錯(cuò)誤的猜測(cè),只要對(duì)兩款計(jì)算器的內(nèi)部結(jié)構(gòu)稍一對(duì)比,便能發(fā)現(xiàn)兩者在設(shè)計(jì)理念、設(shè)計(jì)方法、復(fù)雜程度等方面相差懸殊,萊氏計(jì)算器相對(duì)于帕斯卡加法器而言幾乎取得了革命性的突破。再如,目前學(xué)界一般認(rèn)為萊氏計(jì)算器的核心部件是階梯滾輪,但是經(jīng)過仔細(xì)分析不難發(fā)現(xiàn),階梯滾輪雖然非常關(guān)鍵,但是最復(fù)雜的技術(shù)難題是如何處理進(jìn)位問題,機(jī)器各部件之間的系統(tǒng)性關(guān)聯(lián)也是萊布尼茨的重要?jiǎng)?chuàng)新,這些共同推動(dòng)了機(jī)械計(jì)算器的發(fā)展。
特別需要注意的是,萊布尼茨并不是一次性地完成了計(jì)算器的研制,而是終其一生都在研制和改進(jìn)他的計(jì)算器,這種技術(shù)實(shí)踐活動(dòng)勢(shì)必會(huì)對(duì)他的思想造成一定的影響,萊布尼茨自己也曾多次強(qiáng)調(diào)他的組合思想、計(jì)算思想與計(jì)算器的關(guān)聯(lián)性,這將是我們今后繼續(xù)探討的一個(gè)課題。目前,在德國(guó)已經(jīng)有科普教育公司成功地通過樂高積木等簡(jiǎn)單的工具,模擬了萊氏計(jì)算器的設(shè)計(jì)理念;在一些大學(xué)的科學(xué)教育課堂上,已有學(xué)生團(tuán)隊(duì)使用塑料材質(zhì)制作了簡(jiǎn)單的萊氏計(jì)算器。研究萊氏計(jì)算器,對(duì)于我國(guó)的科技史研究、科技博物館教育、STEM教育和科技傳播等領(lǐng)域均會(huì)有所幫助。