我們現時之所以通行十進制,顯然是因為人有十隻手指。10這個數字具有以下算術特性:除了1及其本身外,只
有2和5這兩個因數。大於1且小於10並與10「互質」(Relatively Prime)(註1)的整數共有三個:3、7和9。至於
其他小於10的整數(即4、6和8),它們與10的最大公約數都是2,是一個很小的整數。以上這些特性對我們的乘
除法都有很重要的影響(詳見下文)。
筆者忽發奇想,假如人有十二隻手指並使用十二進制的話,我們的四則運算將會是何種面貌?為何要選擇12?
這是因為12這個數跟10較接近,而且其算術特性似乎較10「有趣」,12的算術特性如下:除了1及其本身外,它
還有2、3、4和6這四個因數。大於1且小於12並與12互質的整數共有三個:5、7和11。至於其他小於12的整數
(即8、9和10),它們與12的最大公約數分別為4、3和2,不像10那樣「單調」。
在十二進制下,我們有十二個數碼(Digit),不妨把它們記作:0、1、2、3、4、5、6、7、8、9、A、B,其中0
至9就是我們熟悉的十進制數碼,A和B分別相當於十進制下的10和11。以下筆者將用下標12來標明十二進制下的
數字(十進制下的數字則沒有標記),以下是十二進制換算為十進制的一個例子:
如果我們不是靠「數手指」來做加減法,那麼十二進制下的加減法應較十進制略為複雜,這是因為十二進制的 「加法表」比十進制多了很多項。雖然筆者不是心理學家,但我相信在學過加減法的人的頭腦中其實有一個(不 完整的)「加法表」,這個「加法表」不是我們刻意死記的,而是經過千百次計算後不自覺地進入我們的永久記 憶中,最明顯的例子就是6 + 7,相信很多人都能不假思索地講出6 + 7的答案。當然有些加法是要經過少許思 考的,例如9 + 7的答案便似乎不是我頭腦中「加法表」的一部分,每次遇到9 + 7時,我都會進行一種「進1減 1」的思考,即先在7之前加個1,變成17,然後減1,得16。但無論如何,6 + 7的例子說明了我們頭腦中的確存 在著「加法表」。由於十二進制的「加法表」比十進制複雜,進入我們永久記憶的項目較多,所以我認為十二 進制下的加減法可能較十進制略為困難。
跟加法不同,每個人在學習乘法時都要刻意背誦「乘法表」(在中國稱為「九因歌」),因此「乘法表
」的複雜程度會直接決定我們學習乘法的難度。在本節筆者將比較十進制下的「九因歌」與十二進制下的
「B因歌」。表面上看,「B因歌」共有11 × 11 = 121句歌訣,比「九因歌」的9 × 9 = 81
句歌訣足足多了40句,「B因歌」似乎比「九因歌」難記得多。可是,如果要背誦的東西有高度規律性,即使數
目很大,也不難記憶,因此我們要比較的應是「九因歌」與「B因歌」的規律性。
在「九因歌」中,1、2和5的歌訣最易記,這是因為這三個數字是10的因數;9雖然不是10的因數,但由於有以
下關係:
9的歌訣因而具有某種規律性,可以概括為
例如「九二一十八」、「九三二十七」...。至於4、6和8,它們的歌訣呈現一種循環性,以4的歌訣為例,如果 我們補上一句附加歌訣「四十中四十」:
那麼容易看到下排其實在重覆上排的模式,6和8的歌訣也具有這個特點。這裡其實有一個規律:4、6、8這三個
數字與10的最大公約數都是2,而10 / 2 = 5,所以這三個數字的歌訣每五句出現一個循環。不過,由於這三組
歌訣中的每一組都只出現兩個循環,其規律性不太明顯。上述規律也適用於3和7,由於這兩個數字與10互質,
即與10的最大公約數都是1,而10 / 1 = 10,所以這兩個數字的歌訣只能每十句出現一個循環,即毫無循環可
言。由此可見,3和7的歌訣是最沒有規律的。
我們可以把上述觀察推廣至十二進制的情況。在「B因歌」中,1、2、3、4和6的歌訣也應很易記,因為這些數
字是12的因數;而B的歌訣也應具有規律性,因為如把11和12分別代替(1)中的9和10,(1)仍然成立。由於8、9
、10與12的最大公約數分別為4、3和2,8、9和A的歌訣分別表現為每三句、每四句和每六句出現一個循環。至
於5和7,它們的歌訣應最沒有規律。以下列出「B因歌」的全部歌訣:
11如1, | 12如2, | 13如3, | 14如4, | 15如5, | 16如6, | 17如7, | 18如8, | 19如9, | 1A如A, | 1B如B | |
21如2, | 22如4, | 23如6, | 24如8, | 25如A, | 26得10, | 27得12, | 28得14, | 29得16, | 2A得18, | 2B得1A | |
31如3, | 32如6, | 33如9, | 34得10, | 35得13, | 36得16, | 37得19, | 38得20, | 39得23, | 3A得26, | 3B得29 | |
41如4, | 42如8, | 43得10, | 44得14, | 45得18, | 46得20, | 47得24, | 48得28, | 49得30, | 4A得34, | 4B得38 | |
51如5, | 52如A, | 53得13, | 54得18, | 55得21, | 56得26, | 57得2B, | 58得34, | 59得39, | 5A得42, | 5B得47 | |
61如6, | 62得10, | 63得16, | 64得20, | 65得26, | 66得30, | 67得36, | 68得40, | 69得46, | 6A得50, | 6B得56 | |
71如7, | 72得12, | 73得19, | 74得24, | 75得2B, | 76得36, | 77得41, | 78得48, | 79得53, | 7A得5A, | 7B得55 | |
81如8, | 82得14, | 83得20, | 84得28, | 85得34, | 86得40, | 87得48, | 88得54, | 89得60, | 8A得68, | 8B得74 | |
91如9, | 92得16, | 93得23, | 94得30, | 95得39, | 96得46, | 97得53, | 98得60, | 99得69, | 9A得76, | 9B得83 | |
A1如A, | A2得18, | A3得26, | A4得34, | A5得42, | A6得50, | A7得5A, | A8得68, | A9得76, | AA得84, | AB得92 | |
B1如B, | B2得1A, | B3得29, | B4得38, | B5得47, | B6得56, | B7得65, | B8得74, | B9得83, | BA得92, | BB得A1 |
為節省空間,上列歌訣全用阿拉伯數字,且沒有加下標12,但都應理解為十二進制下的數字,例如「26得10」
中的「10」便應理解為1012,即等於十進制下的12。
可以看到,跟「九因歌」一樣,在「B因歌」中有兩個數字(5和7)的歌訣最沒有規律,但1、2、3、4、6和B的歌
訣卻很有規律,其餘的8、9和A的歌訣也有較明顯的循環性。總括而言,雖然「B因歌」比「九因歌」多出40句
歌訣,但其規律性似乎足以抵消它相對於「九因歌」的缺點。
本來除法作為乘法的逆運算,沒有單獨討論的必要,不過由於中國傳統的珠算有一種特別的除法歌訣(稱為 「九歸歌」)(註2),拿十進制下的「九歸歌」與十二進制下的「B歸歌」比較一下也是饒有趣味 的事。以下先列出「九歸歌」的全部歌訣:
1逢1進1, | 1逢2進2, | 1逢3進3, | 1逢4進4, | 1逢5進5, | 1逢6進6, | 1逢7進7, | 1逢8進8, | 1逢9進9 | |
21添作5, | 2逢2進1, | 2逢4進2, | 2逢6進3, | 2逢8進4 | |||||
313餘1, | 326餘2, | 3逢3進1, | 3逢6進2, | 3逢9進3 | |||||
412餘2, | 42添作5, | 437餘2, | 4逢4進1, | 4逢8進2 | |||||
51添作2, | 52添作4, | 53添作6, | 54添作8, | 5逢5進1 | |||||
611餘4, | 623餘2, | 63添作5, | 646餘4, | 658餘2, | 6逢6進1 | ||||
711餘3, | 722餘6, | 734餘2, | 745餘5, | 757餘1, | 768餘4, | 7逢7進1 | |||
811餘2, | 822餘4, | 833餘6, | 84添作5, | 856餘2, | 867餘4, | 878餘6, | 8逢8進1 | ||
911餘1, | 922餘2, | 933餘3, | 944餘4, | 955餘5, | 966餘6, | 977餘7, | 988餘8, | 9逢9進1 |
請注意上面對傳統的「九歸歌」作了一些修改。首先,傳統的「九歸歌」凡是「逢X進X」都沒有講清楚當前的
「除數」(Divisor)是甚麼;為清晰起見,我在這些歌訣的首位加上「除數」,例如「1逢1進1」、「2逢2進1」
等。其次,傳統的「九歸歌」是使用「三一三十一」而非上面的「313餘1」;但由於前者容易與乘法歌訣混淆
,所以我寧可採用後者。第三,傳統的「九歸歌」是使用「九一下加一」而非上面的「911餘1」;但為了使歌
訣的形式更加劃一,我寧可採用後者。
跟「九因歌」一樣,在「九歸歌」中,1、2和5的歌訣最易記。此外,由於
9的歌訣也很有規律性,可以概括為
此外,4、6和8的歌訣也有循環性,但不很明顯。3和7的歌訣按理是最沒有規律的,不過由於3是一個較小的整
數,它的歌訣只有五句,所以影響不大。
以下簡單解釋一下這些歌訣的意義,每一句歌訣的第一個數字代表「除數」,第二個數字(如歌訣不是「X逢X進
X」的形式則須乘大10倍)代表「被除數」(Dividend),第三個數字代表「商數」(Quotient),第四個數字(如有
的話)則代表「餘數」(Remainder)。因此,「21添作5」的意思就是,10 / 2 = 5;「326餘2」的意思就是,20
/ 3得商6餘2;「2逢6進3」的意思則是,6 / 2 = 3。
請注意上述「九歸歌」除了第1和第9行外,其他行是不完整的,例如第2行便缺少了「23XXX」,這是因為我們
可以綜合運用「九歸歌」中「X逢X進X」與其他形式的歌訣來做某些除法。以下就讓我們計算74 / 3以示範這些
歌訣的運用(註3),為簡單起見,我們使用以下的俄羅斯式算盤,這種算盤的每檔有10粒珠:
首先把「被除數」74置於算盤最右端,如下圖所示:
上圖中紅色箭頭指著的一檔就是我們當前要處理的一檔(以下簡稱「當前檔」)。由於「除數」是3,我們要運用 3的歌訣。應用「3逢6進2」,先從「當前檔」撥走6粒珠,然後在其左面的一檔(「進」就是指當前左面的一檔) 撥上2粒珠。由於「當前檔」尚餘1粒珠未處理,紅色箭頭仍留在「當前檔」中:
接著應用「313餘1」,把「當前檔」中的1改為3,並在其右面的一檔(「餘」就是指當前右面的一檔)撥上1粒珠 ,紅色箭頭也移至該檔(由此可見,雖然「九歸歌」中沒有「37XXX」的歌訣,但我們可以綜合運用「3逢6進2」 和「313餘1」來做70 / 3):
接著應用「3逢3進1」,先從「當前檔」撥走3粒珠,然後在其左面的一檔撥上1粒珠:
至此我們已完成計算,根據上圖,我們知道74 / 3的結果為24餘2 (註4)。
在十二進制下,我們同樣可以進行珠算,除了要使用每檔12粒珠的算盤外,還要用到以下的「B歸歌」:
1逢1進1, | 1逢2進2, | 1逢3進3, | 1逢4進4, | 1逢5進5, | 1逢6進6, | 1逢7進7, | 1逢8進8, | 1逢9進9 | 1逢A進A, | 1逢B進B | |
21添作6, | 2逢2進1, | 2逢4進2, | 2逢6進3, | 2逢8進4, | 2逢A進5 | ||||||
31添作4, | 32添作8, | 3逢3進1, | 3逢6進2, | 3逢9進3 | |||||||
41添作3, | 42添作6, | 43添作9, | 4逢4進1, | 4逢8進2 | |||||||
512餘2, | 524餘4, | 537餘1, | 549餘3, | 5逢5進1, | 5逢A進2 | ||||||
61添作2, | 62添作4, | 63添作6, | 64添作8, | 65添作A, | 6逢6進1 | ||||||
711餘5, | 723餘3, | 735餘1, | 746餘6, | 758餘4, | 76A餘2, | 7逢7進1 | |||||
811餘4, | 82添作3, | 834餘4, | 84添作6, | 857餘4, | 86添作9, | 87A餘4, | 8逢8進1 | ||||
911餘3, | 922餘6, | 93添作4, | 945餘3, | 956餘6, | 96添作8, | 979餘3, | 98A餘6, | 9逢9進1 | |||
A11餘2, | A22餘4, | A33餘6, | A44餘8, | A5添作6, | A67餘2, | A78餘4, | A89餘6, | A9A餘8, | A逢A進1 | ||
B11餘1, | B22餘2, | B33餘3, | B44餘4, | B55餘5, | B66餘6, | B77餘7, | B88餘8, | B99餘9, | BAA餘A | B逢B進1 |
可以看到,在「B歸歌」中,1、2、3、4、6和B的歌訣最易記,這是因為1、2、3、4和6都是12的因數,而把11
和12分別代替(2)中的9和10,(2)仍然成立。至於8、9和A,它們的歌訣也展現出循環性。最有趣的是,5和7雖
然與12互質,但它們的歌訣卻也似乎具有某種規律性。
據我所知,很多學過珠算的人都只懂加、減和乘法,不懂「歸除法」。我揣測這可能是因為「九歸歌」難記(至
今我還是記不牢6、7、8的歌訣),「B歸歌」的較高規律性或許會令有十二隻手指的人較易學會「歸除法」。
「整除性」(Divisibility)問題就是有關某一整數能被甚麼整數整除的問題,我們說整數n能被非零 整數m整除(這裡n和m可以是負數)當且僅當存在一個整數k使得n = mk,在「數論」(Number Theory)中,一般把 「m可被n整除」記作
我們在小學時曾學過一些「整除性判定規則」,以下列出首13個正整數的判定規則(請注意由於7和13 的規則較難應用,所以以下提供兩種規則):
規則1: | 對任何整數n,都有1 | n。 |
規則2: | 若某整數n的最末一位數字可被2整除(即等於0、2、4、6或8),則2 | n。 |
規則3: | 若某整數n的各位數字之和可被3整除,則3 | n。 |
規則4: | 若某整數n的最末兩位數字可被4整除,則4 | n。 |
規則5: | 若某整數n的最末一位數字可被5整除(即等於0或5),則5 | n。 |
規則6: | 若某整數n可同時被2和3整除,則6 | n。 |
規則7a: | 把某整數n從右到左每3個位分成一節,並計算第1節 − 第2節 + 第3節 − 第4節 + ...,若所得結果可被7整除,則7 | n。 |
規則7b: | 把某整數n的個位數截去,再從餘下的數中,減去被截個位數的2倍,若所得結果可被7 整除,則7 | n。 |
規則8: | 若某整數n的最末三位數字可被8整除,則8 | n。 |
規則9: | 若某整數n的各位數字之和可被9整除,則9 | n。 |
規則10: | 若某整數n的最末一位數字可被10整除(即等於0),則10 | n。 |
規則11: | 若某整數n的奇位數字之和與偶位數字之和的差可被11整除,則11 | n。 |
規則12: | 若某整數n可同時被3和4整除,則12 | n。 |
規則13a: | 把某整數n從右到左每3個位分成一節,並計算第1節 − 第2節 + 第3節 − 第4節 + ...,若所得結果可被13整除,則13 | n。 |
規則13b: | 把某整數n的個位數截去,再在餘下的數中,加上被截個位數的4倍,若所得結果可被 13整除,則13 | n。 |
以下是上述規則的一些應用例子。首先看「規則12」的例子,這是「規則3」和「規則4」的結合。由於1728的
末二位數字28可被4整除,並且其各位數字之和1 + 7 + 2 + 8 = 18可被3整除,因此1728可同時被3和4整除,
由此知12 | 1728。其次看「規則11」的例子,由於14641的奇位數字之和是1 + 6 + 1 = 8,偶位數字之和是4
+ 4 = 8,這兩者之差8 − 8 = 0可被11整除,因此11 | 14641。接著看7的規則,我們交替使用以上提供
的兩種規則求6049382661能否被7整除。根據「規則7a」,我們先把這個數分為4節:第1節 = 661,第2節 =
382,第3節 = 49,第4節 = 6,然後求661 − 382 + 49 − 6 = 322。接著應用「規則7b」,先把
322的個位數2截去,得32,然後從32減去2的2倍,得28。由於28能被7整除,所以7 | 322,也就是7 |
6049382661。
可是,以上的規則(除了「規則1」外)究竟有何理據?首先考慮「規則8」,給定任何整數n並且其最末三位數字
為m,那麼我們可以把n寫成1000k + m (k可以為0)。若8 | m,則我們可以把m寫成8j。由此有
由於125k + j是整數,所以8 | n。由此證得「規則8」成立,請注意上述證明的關鍵是利用了8是1000的因數這
個事實。利用類似原理,我們也可證明「規則2、4、5和10」也成立。
接著考慮「規則6」,這條規則要用到數論中的以下定理(證明從略):
定理1:設p為整數,若兩整數m與n互質,並且m | p並且n | p,則mn | p。
由於2與3互質,根據「定理1」,可知若某整數p可同時被2和3整除,則p可被6整除,「規則12」也是基於類似
的理據。
接著考慮「規則7b」,給定任何整數n,我們可以把n寫成10a + b (0 ≤ b ≤ 9),其中b就是n的個位數。
把n的個位數截去,再從餘下的數中,減去被截個位數的2倍,我們便可得到a − 2b。若這個數可被7整除
,則我們有a − 2b = 7k,亦即a = 7k + 2b。由此有
由於10k + 3b是整數,所以7 | n。由此證得「規則7b」成立,請注意上述證明的關鍵是利用2 × 10 + 1
可被7整除這個事實。類似地,利用(−4) × 10 + 1可被13整除這個事實,我們可以證明「規則13b
」也成立。
對於其餘的規則,我們要用到「數論」中的「同餘」(Congruence)概念。設n為正整數,我們說兩個
整數p與q是「模n同餘」的(Congruent Modulo n),記作
當且僅當以n除p和以n除q所得餘數相等。舉例說,我們有6 ≡ 9 (mod 3),因為這兩個數都可被3整除(即 以3除這兩個數所得餘數均為0)。請注意我們亦可以把「同餘」定義為(證明從略):
舉例說,由於2 − (−1) = 3可被3整除,因此根據(3),我們有2 ≡ −1 (mod 3)。根
據「同餘」的定義,我們可以推出以下定理(證明從略):
定理2:設有多項式P(x) = cmxm +
cm−1xm−1 + ... + c1x + c0,若a ≡ b
(mod n),則P(a) ≡ P(b) (mod n)。
我們可以利用「定理2」來證明「規則11」。設n為任意整數,那麼在十進制下,n可以表達為n = P(10) =
cm10m + cm−110m−1 + ... + c110
+ c0,其中c0、c1...都是介乎0與9之間的整數,分別為n的個位數、十位
數...。由於10 − (−1) = 11可被11整除,根據(3),我們有10 ≡ −1 (mod 11)。因
此根據「定理2」,我們有P(10) ≡ P(−1) (mod 11),即n = P(10)可被11整除當且僅當
P(−1)可被11整除。但
上式正是n的奇位數字之和與偶位數字之和的差,「規則11」至此得證。請注意上述證明的關鍵是利用10
≡ −1 (mod 11),類似地,我們亦可利用10 ≡ 1 (mod 3)和10 ≡ 1 (mod 9)來證明「
規則3」和「規則9」。
把以上證明略加修改,便可證明「規則7a」。設n為任意整數,那麼n可以表達為n = P(1000) =
cm1000m + cm−11000m−1 + ... +
c11000 + c0,其中c0、c1...為介乎0與999之間的整數,分
別為把n從右到左每3個位分成一節後所得的第1節數字、第2節數字...。由於1000 − (−1) = 1001
可被7整除,根據(3),我們有1000 ≡ −1 (mod 7)。因此根據「定理2」,我們有P(1000) ≡
P(−1) (mod 7),即n = P(1000)可被7整除當且僅當P(−1)可被7整除。但
「規則7a」至此得證。類似地,我們亦可利用1000 ≡ −1 (mod 13)來證明「規則13a」。
我們可以把上述原理推廣至十二進制,從而得到十二進制下首13個正整數的「整除性判定規則」如下:
規則112: | 對任何整數n12,都有112 | n12。 |
規則212: | 若某整數n12的最末一位數字可被212整除(即等 於012、212、412、612、812或A12) ,則212 | n12。 |
規則312: | 若某整數n12的最末一位數字可被312整除(即等 於012、312、612或912),則312 | n12。 |
規則412: | 若某整數n12的最末一位數字可被412整除(即等 於012、412或812),則412 | n12。 |
規則512a: | 把某整數n12從右到左每2個位分成一節,並計算第1節 − 第2節 + 第3節 − 第4節 + ...,若所得結果可被512整除,則512 | n12。 |
規則512b: | 把某整數n12的最右一位數截去,再從餘下的數中,減去被 截最右一位數的212倍,若所得結果可被512整除,則512 | n12。 |
規則612: | 若某整數n12的最末一位數字可被612整除(即等 於012或612),則612 | n12。 |
規則712a: | 把某整數n12從右到左每3個位分成一節,並計算第1節 − 第2節 + 第3節 − 第4節 + ...,若所得結果可被712整除,則712 | n12。 |
規則712b: | 把某整數n12的最右一位數截去,再在餘下的數中,加上被 截最右一位數的312倍,若所得結果可被712整除,則712 | n12。 |
規則812: | 若某整數n12的最末兩位數字可被812整除,則 812 | n12。 |
規則912: | 若某整數n12的最末兩位數字可被912整除,則 912 | n12。 |
規則A12: | 若某整數n12可同時被212和512整除 ,則A12 | n12。 |
規則B12: | 若某整數n12的各位數字之和可被B12整除,則 B12 | n12。 |
規則1012: | 若某整數n12的最末一位數字可被1012整除(即 等於012),則1012 | n12。 |
規則1112: | 若某整數n12的奇位數字之和與偶位數字之和的差可被 1112整除,則1112 | n12。 |
可以看到,由於2、3、4、6和12都是12的因數,上表中的「規則212、312、
412、612和1012」都很簡單,只須看n12的最末一位數字。此
外,由於8和9都是144的因數而144 = 10012,「規則812和912」也很簡單
,不過它們要看n12的最末兩位數字。「規則B12和1112」則可分別應用12
≡ 1 (mod 11)和12 ≡ −1 (mod 13)以及「定理2」來證明。至於「規則A12」,
則可以用2與5互質這個事實以及「定理1」來證明。
「規則712a」跟十進制下的「規則7a」相同,這是因為我們有1728 ≡ −1 (mod 7),
而1728 = 100012。此外,由於144 ≡ −1 (mod 5),「規則512a」跟「規
則712a」很相似,所不同者是前者把n12從右到左每2個位(而非每3個位)分成一節。
「規則712b」的原理跟十進制下的「規則7b」相同,即給定任何整數n12,我們可以把
n12寫成1012a12 + b12 (012 ≤
b12 ≤ B12),其中b12就是n12的最右一位數。把
b12截去,再在餘下的數中,加上b12的312倍,便可得到a12
+ 312b12。若這個數可被712整除,則我們有a12 +
312b12 = 712k12,亦即a12 =
712k12 − 312b12。由此有(註5)
由此證得712 | n12,即「規則712b」成立。利用相同原理,也可證明「
規則512b」成立。
總括而言,在十進制下,有兩條規則(「規則6和12」)乃由其他規則定義,兩條規則(「規則7a和13a」)涉及三
位數加減運算。而在十二進制下,有一條規則(「規則A12」)乃由其他規則定義,一條規則(「規則
512a」)涉及兩位數加減運算,一條規則(「規則712a」)涉及三位數加減運算。至於其
餘的規則,兩者的難度不相上下。因此從整體而言,在十二進制下判定首13個正整數的整除性似乎較十進制略
為容易。