由於珠算的各種解難技巧是以加、減、乘法為基礎,本章首先簡要介紹如何用算盤進行這三種算術運算。珠算的加、減、乘法在當今有多種運算方法,本章只擬介紹筆者最熟悉的一種,這種方法與我們自幼學的直式筆算十分相似。不過由於算盤上有代表5的算珠,所以珠算除了進十、借十外,還有進五、借五之法。此外,由於算盤上不斷變化的算珠排列形式代表計算過程中的各個中間結果,因此珠算可省卻用紙筆記下中間計算結果的工夫;但亦正因如此,若果計算過程有錯而未能即時發現,便很難在事後找出錯誤所在以作局部更改,只能重頭再算一遍,這是珠算與筆算比較之下的利與弊。
以下筆者將以最常見的「二五式」算盤為討論對象,這種算盤的外形為一個矩形框,有一條橫樑把整個框分為上下兩部分。框內排著一串串算珠,每串稱為「檔」,貫穿橫樑。每檔各有七粒算珠,其中兩粒位於橫樑上方,其餘五粒位於橫樑下方,如下圖所示:
從記數的角度看,算盤上的每檔代表十進制下的某個「位」(即指個位、十位、百位、千位、萬位、十萬位等等),而橫樑上方每粒算珠代表5,下方每粒算珠則代表1 (註1)。算珠與橫樑的位置關係有「靠樑」和「離樑」兩種,分別指算珠靠近或離開橫樑。算盤是以「靠樑」的算珠來記數,而「離樑」的算珠則可被看成處於「閒置」狀態。例如在上圖所示算盤中,根據各檔中「靠樑」的算珠,可知該算盤所代表的數字是1532786。
此外,我們還假設在橫樑上設有一個代表小數點的「定位點」。一般市面上的算盤都沒有這個「定位點」,但我們可以自行在算盤的橫樑上加一條紙條,並在紙條上加一個可移動的標記,以作為「定位點」。
傳統的珠算有加法和減法的口訣,其中有些很簡單,例如「一上一」的意思就是,當你要在某檔加1,而該檔橫樑下方有至少兩粒「離樑」算珠時,只須把橫樑下方最頂的一粒「離樑」算珠撥上來,使之「靠樑」即可。同樣「七去七」的意思就是,當你要在某檔減7,而該檔橫樑的上、下方各有一粒和至少兩粒「靠樑」算珠時,只須把橫樑上方的「靠樑」算珠和橫樑下方最底的兩粒「靠樑」算珠撥走,使之「離樑」即可。
其餘的口訣都跟進(五/十)位或借(五/十)位有關。舉例說,「二下五去三」的意思就是,當你要在某檔加2,而該檔橫樑上方沒有「靠樑」算珠,橫樑下方則有至少三粒「靠樑」算珠時,只須把橫樑上方的一粒「離樑」算珠撥下來,使之「靠樑」,並同時把橫樑下方最底的三粒「靠樑」算珠撥走,使之「離樑」即可。上述做法實際上相當於以「加5減3」達致「加2」的效果。類似地,「七退一還五去二」的意思就是,當你要在某檔減7,而該檔橫樑上方沒有「靠樑」算珠,橫樑下方則有至少二粒「靠樑」算珠時,只須從緊靠該檔左側的一檔減1,並把該檔橫樑上方的一粒「離樑」算珠撥下來,使之「靠樑」,並同時把橫樑下方最底的二粒「靠樑」算珠撥走,使之「離樑」即可。上述做法實際上相當於以「減10加5減2」達致「減7」的效果。
從上述介紹可見,在學習珠算加、減法時,其實不用記口訣,只要記著1和4、2和3能湊足5之數,以及1和9、2和8、3和7、4和6、5和5能湊足10之數便可。以下用一個帶小數位的減法運算例子來說明上述技巧,讓我們計算104 − 8.6。開始時首先把被減數104佈於算盤上,由於這項計算涉及小數點後一位,須在代表4的一檔右側預留至少一個空檔,並把「定位點」撥至這兩檔間的位置,如下圖所示(為簡單起見,下圖只顯示「靠樑」的算珠,其中紅色三角形代表「定位點」):
接著我們從上圖中的個位減去8。由於不夠減,必須向前一位(即十位)借10,但由於上圖中的十位數是0,所以必須再向前一位(即百位)借10。借位後,百位上的數字減去1,十位則加10;但因十位要借1給個位,所以十位上的數字變成了9。經借位後,個位加10,這與個位上的減8運算結合,變成了加2運算。由於代表個位那一檔的橫樑下方有四粒算珠,不能簡單加2,所以我們以「加5減3」的方式來達致「加2」的效果(註2)。上述運算的結果如下:
最後我們從上圖中的十分位減去6。由於不夠減,必須向前一位(即個位)借10。借位後,個位上的6減去1,十分位則加10,這與十分位上的減6運算結合,變成了加4運算。上述運算的結果如下:
上圖顯示104 − 8.6 = 95.4。
在介紹珠算乘法前,我們先簡單了解一下用直式進行多位數乘法的原理,請看以下例子:
上圖中的計算原理其實是把原來較難計算的乘積分解成兩個較易計算的乘積之和:745 × 52 = 745 × 2 + 745 × 50;而這兩個乘積又可各被分解成三個更易計算的乘積之和,例如745 × 2 = 700 × 2 + 40 × 2 + 5 × 2,請注意這三個乘積可直接用我們自幼學習的「九因歌」加上補零求得。由此可見,用直式進行多位數乘法的原理就是把原來的乘積逐步分解為可直接用「九因歌」求得的乘積之和。
以下筆者介紹一種稱為「破頭乘」的珠算乘法,用這種乘法計算a × b的過程與用直式乘法計算b × a非常相似,以下用52 × 745的計算過程以作說明。開始時我們把乘數745佈於算盤左端,把被乘數52佈於算盤右面(註3)。此外,由於乘數745是三位數,我們須在代表被乘數最末一個數字2的一檔右側預留至少三個空檔,並把「定位點」撥至第三個空檔的右側,此即我們所求最終乘積的小數點,如下圖所示(為方便討論,我們把代表被乘數的兩檔及其右側三個空檔分別標示為a、b、c、d和e):
接著我們用乘數與被乘數的個位數相乘,即計算2 × 745。我們又把這個計算過程分拆為三個簡單乘法的過程,首先計算2 × 7,得14,把這個答案加入b、c檔內,即先把原在b檔中不屬最終乘積一部分的2撥走然後加1,並在c檔加4,如下圖所示(請注意這個運算在實質上是2 × 700 = 1400,由於我們以e檔為最終乘積的個位,所以應把1和4分別加於b和c檔):
其次計算2 × 4,得8,把這個答案加入c、d檔內,即在c檔加0,d檔加8,如下圖所示(請注意這個運算在實質上是2 × 40 = 80,所以應把8加於d檔):
接著計算2 × 5,得10,把這個答案加入d、e檔內,即在d檔加1,e檔加0,如下圖所示:
至此我們已完成計算2 × 745 = 1490,從上圖的b至e檔可以看到這個中間計算結果(註4)。接著我們用乘數與被乘數的十位數相乘,即計算5 × 745。同樣,我們又把這個計算過程分拆為三個簡單乘法的過程。首先計算5 × 7,得35,把這個答案加入a、b檔內,即先把原在a檔中不屬最終乘積一部分的5撥走然後加3,並在b檔加5 (註5),如下圖所示(請注意這個運算在實質上是50 × 700 = 35000,所以應把3和5分別加於a和b檔):
其次計算5 × 4,得20,把這個答案加入b、c檔內,即在b檔加2,c檔加0,如下圖所示(請注意這個運算在實質上是50 × 40 = 2000,所以應把2加於b檔):
最後計算5 × 5,得25,把這個答案加入c、d檔內,即在c檔加2,d檔加5,如下圖所示(請注意這個運算在實質上是50 × 5 = 250,所以應把2和5分別加於c和d檔):
至此我們已完成計算52 × 745 = 38740,最終乘積顯示於上圖中的a至e檔。
上述乘法完全適用於乘數或被乘數含小數位的情況,所不同者僅在於「定位點」的位置。開始時我們先把乘數和被乘數佈於算盤上,並把「定位點」撥至代表被乘數個位那一檔的右側。若乘數大於1且在小數點前有n位數字(n ≥ 1),便把「定位點」向右移n檔的距離;若乘數小於1且緊隨小數點後為非零數字,則無須移動「定位點」;若乘數小於1且緊隨小數點後有n個(n ≥ 1)連續的0,則把「定位點」向左移n檔的距離。經移動後的「定位點」的位置就是最終乘積的小數點的位置。
舉例說,設我們要求5.2 × 74.5。我們可以沿用上面計算52 × 745的算盤,但這次我們須先把「定位點」撥至代表5的一檔(即a檔)的右側。由於74.5大於1且在小數點前有2位數字,故應把「定位點」向右移2檔距離至c檔右側。其餘的計算過程跟上面的計算過程完全相同,完成計算後可知5.2 × 74.5 = 387.4,如下圖所示:
另外又設我們要求52 × 0.00745。我們沿用上面計算52 × 745的算盤,並先把「定位點」撥至b檔右側。由於0.00745小於1且緊隨小數點後有2個連續的0,故應把「定位點」向左移2檔距離至a檔左側。其餘的計算過程跟上面的計算過程完全相同,完成計算後可知52 × 0.00745 = 0.3874,如下圖所示: