文︳張新春
非十進(jìn)位值制
文︳張新春
選擇十進(jìn)制,顯然與人類長有10個手指頭有關(guān)。這一點亞里士多德早就注意到了。在《問題集》XV卷里,亞里士多德給出了人類采用十進(jìn)制的各種可能的解釋。其中有的與畢達(dá)哥拉斯有關(guān),畢氏學(xué)派認(rèn)為10是一個完美的數(shù),并給它披上神秘的外衣。首先,10是最小的4種類型的數(shù)之和:1+2+3+4=10,其中1非素數(shù)也非合數(shù),2是偶素數(shù),3是奇素數(shù),4是合數(shù)。另一種解釋是1代表點,2代表線(兩點確定一條直線),3代表面,4代表體……。最后,亞里士多德指出:是否因為每個人都有10個手指?事實上,前面幾種解釋都難以站住腳。
其實,在位值制記數(shù)法中,以哪個數(shù)為基并不是本質(zhì)問題。因此,除了十進(jìn)位值制記數(shù)法外,還有非十進(jìn)位值制記數(shù)法。
以下一段摘自丹齊克的《數(shù),科學(xué)的語言》(上海教育出版社)。
設(shè)想:要是人類沒有屈伸自如的手指,而只有兩只“不分關(guān)節(jié)”的禿拳,整個文化史會成個什么樣子?這是一個有趣的問題。在這種情形之下,假如最終也發(fā)展出某種記數(shù)法的話,它很可能是二進(jìn)制的。
人類采用十進(jìn)制即是一種生理上的湊巧。如果相信從一切事物里都可以看出上帝的匠心,就不得不承認(rèn)上帝是一位蹩腳的數(shù)學(xué)家。因為十進(jìn)制的基底除了生理上的優(yōu)點外,本身沒有多少可以稱道之處。幾乎一切其他的基底,除了9以外,都和它一樣高明,也許還強(qiáng)一些。
老實說,如果讓一群專家來選擇基底的話,我們也許會看到實用家和數(shù)學(xué)家之間的爭論。實用家堅持要用有最多因數(shù)的數(shù),如12為基底;而數(shù)學(xué)家則要用質(zhì)數(shù),如7或11為基底。事實上,18世紀(jì)后期的大博物學(xué)家布封曾經(jīng)提議舉世公用十二進(jìn)制。他指出:12有4個除數(shù),而10只有2個。他堅持說,正是由于我們的十進(jìn)制,世世代代以來,人們都感到極為不便,所以雖然10是舉世公用的基底,而在大多數(shù)的度量衡中,都有以12為基底的輔助單位。
另一方面,大數(shù)學(xué)家拉格朗日宣稱:用質(zhì)數(shù)作基底有絕對的好處。他指出:用了質(zhì)數(shù)基底,每個整分?jǐn)?shù)就都不能化簡,因此表示該數(shù)的方法就只有一種。在我們現(xiàn)在的命位記數(shù)法中,譬如0.36,代表著許許多多個分?jǐn)?shù):這種曖昧不明之處就大大減少了。
不管我們委托選擇基底的賢人們決定采用質(zhì)數(shù)還是合數(shù)作基底,我們敢肯定,10甚至是根本不會被考慮的,因為它既非質(zhì)數(shù),又不含足夠多的因數(shù)。
在非十進(jìn)位值制中,最有特點的應(yīng)該是二進(jìn)制。相對于十進(jìn)制需要用10個數(shù)碼來說,二進(jìn)制需要的數(shù)碼少得多,只需0和1兩個。比如,十進(jìn)制的6用二進(jìn)制表示就是1102,其中的下標(biāo)2即表明這個數(shù)是二進(jìn)制,從而區(qū)別于十進(jìn)制的110。最高位上的1表示為1個22,即1個4(若按十進(jìn)制的說法,應(yīng)該把這個數(shù)位叫“四位”)。而右起第二位(應(yīng)該叫“二位”)上的1表示為1個21。右起第一位(還叫“個位”)的記數(shù)單位為20。一般地,任意一個大于0的自然數(shù)N都可以表示為:
其中,a0,a1,a2,…,ak∈{0,1}且ak≠0并簡記為下標(biāo)2表示為二進(jìn)制。
除了使用符號少外,二進(jìn)制的計算法則也非常簡單。二進(jìn)制的加法,就是“0+0=0,0+1=1,1+0=1,1+1=10”這四條規(guī)則。我們可以把這幾條規(guī)則列成一個表:
+ 0 1 0 0 1 1 1 10
在此,我們不妨考慮一下,對于十進(jìn)制的加法而言,類似的表應(yīng)該是什么樣的。這四條規(guī)則還可以簡化為“0與任何數(shù)相加得這個數(shù)本身”和“1+1=10”。相對于十進(jìn)制的九九表,二進(jìn)制乘法表可以說是一一表,因為只有一句“一一得一”。有了這一條,再加上“0與任何數(shù)相乘得0”以及我們熟悉的乘法運算律,就可以進(jìn)行任意兩數(shù)的乘法運算了。比如,計算5×6,用二進(jìn)制計算的過程如右圖所示。
這里確實只用了“一一得一”這一句口訣。
正因為使用符號少,運算規(guī)則簡單,二進(jìn)制記數(shù)法在計算機(jī)中普遍使用。使用二進(jìn)制必須付出的一個代價是:一個數(shù)寫出來很長!比如,一千零九十三,用十進(jìn)制記為1093,而用二進(jìn)制則要記成10001000101。人類愿意在小時候多學(xué)幾個符號,多記幾句口訣,也不愿意把數(shù)寫得這么長。而計算機(jī)則恰好相反:一個符號就需要用一種物理狀態(tài)表示,找到10種穩(wěn)定的物理狀態(tài)畢竟太難,而有兩種穩(wěn)定狀態(tài)的東西就多了,比如開關(guān)的斷開與閉合、電位的高與低、晶體管的導(dǎo)通與截止等,都可分別用0與1表示。簡單的計算規(guī)則對計算機(jī)來說也是非常重要的。而計算機(jī)恰恰不在乎多用幾個位置記錄一個數(shù),于是數(shù)被記成很長對它來說影響不大。
從而有:105=11010012。
二進(jìn)制數(shù)與偉大的萊布尼茨密切相關(guān)。萊布尼茨是與牛頓分享微積分發(fā)明權(quán)的數(shù)學(xué)家。與牛頓不同的是,他是一位“樣樣皆通的大師”,“可以說萊布尼茨不止活了一生,而是活了好幾世。他作為一個外交官、歷史學(xué)家、哲學(xué)家和數(shù)學(xué)家,在每一個領(lǐng)域中都完成了足夠普通人干一輩子的事情”。([美]E·T·貝爾,數(shù)學(xué)大師,上海科技教育出版社,2004)用拉普拉斯的話來說,“萊布尼茨在他的二進(jìn)位算術(shù)中看到了宇宙創(chuàng)始的形象。他想象1代表上帝,而0代表虛無,上帝從虛無中創(chuàng)造出所有的實物,恰如在他的數(shù)學(xué)系統(tǒng)中用1和0表示了所有的數(shù)”。
數(shù)學(xué)教育的真功夫是對數(shù)學(xué)與數(shù)學(xué)教育的把握,唯此才能成就好的數(shù)學(xué)課堂。湖南數(shù)學(xué)教師的老朋友,《湖南教育》的申建春老師開通了微信公眾號“與數(shù)學(xué)老師談心”,請關(guān)注。