1676年底,三十而立的萊布尼茲離開待了四年的巴黎,返回德國。在巴黎期間,他已構思出微積分此一全新的數學方法,卻沒有公開對外發表,回國後他仍將之暫擱一旁,反而研究起質數來了。
他先在1678年2月發表一篇論文,指出任何大於5的質數減去1或5,一定能被6整除(這也可以表述成「任何大於3的質數都可以寫成6k ± 1」的形式)。隨後他又試圖證明費馬小定理,這是費馬於1640年提出的猜想:
若p為質數,a是小於p的正整數,則 aᴾ⁻¹- 1一定能被p整除。
(例如 p=7, a=2,則2⁷⁻¹ – 1 = 63 是 7 的倍數。)
倘若這真的成立,便能用來判斷一個數有沒有可能是質數。當萊布尼茲從a=2開始,也就是2ⁿ– 1這種所謂的梅森數(Mersenne number)研究起時,他注意到若是用二進位表示,梅森數依序便是1、11、111、1111、……,完全不用像十進位制那樣計算,就能直接寫出來。
接著他發現二進位也很適合用於表示完美數(perfect number)。如果一個數的真因數加總起來恰好等於它本身,例如6 = 1 + 2 + 3 或 28 = 1 +2 + 4 + 7 + 14,便稱為完美數。而歐幾里得早就證明:
若2ⁿ– 1是質數(後來稱為梅森質數),則2ⁿ⁻¹ x (2ⁿ – 1) 一定是完美數。
改用二進位的話,就可以說:
若11是質數,則110是完美數;
若111是質數,則11100是完美數;
若1111是質數,則1111000是完美數;
……以此類推。
說實話,萊布尼茲並非第一個試過用二進位表示數字的人,不過他卻是第一位看出二進位制的優越性,進而有系統地建構二進位算術的人。他在1679年3月所寫〈關於二進位制〉(On the Binary Progression)的手稿中,詳述如何將十進位的數字不斷地除以2,每一步驟的餘數0或1組合起來便是二進位制的數字,此外,他還寫出二進位制的加減乘除法則。
萊布尼茲很清楚二進位制的運算規則雖然簡單,但是當數字越來越大,算起來就比十進位制更耗時。然而這對計算機來說就不是問題了。
事實上他之前在巴黎時,就曾改良巴斯卡發明的加法器,做出可做兩位數乘除的木製計算機。這台原型機也是藉由大小齒輪的嚙合,進行十進位的計算,而今若要讓計算機做二進位算術,就得用全然不同的設計了。
在同一篇手稿中,萊布尼茲設想一種特製的長木盒,裡面有許多格子,分別代表二進位的不同位數;格子裡若有圓球就代表1,空的就是0。每個格子的底板是活動的,打開時圓球就會掉下去,結合兩個木盒便可進行兩個數字的計算。不過這只是個抽象概念,萊布尼茲並未畫出實際可行的設計圖。
萊布尼茲直到1701年才將二進位算術寫成論文,提交給「巴黎皇家科學院」(即法國科學院),卻被秘書長以「看不出二進位有何用處」為由拒絕。萊布尼茲原本打算就此放棄,反正他還有很多題目可以研究,沒想到兩年後,一封來自中國的信改變了一切。
前往中國多年的法國傳教士白晉(Joachim Bouvet)自1697年起和萊布尼茲書信往返。白晉在寫於1701年的這封信中,提及易經裡的卦象也是由陰陽兩爻組成,並附上六十四卦的版畫。萊布尼茲在1703年初收到信後,精神為之一振,決定藉此宣揚二進位制。
他拿出論文重寫,並援引中國伏羲八卦圖為例,來增加說服力,於是二進位算術終於重見天日。一百多年後,英國數學家布爾(George Boole)以這為基礎,於1847年提出布林代數,才成為現代數位計算機的運算基礎。
參考資料: