筆者在上一章指出,使用「歸除法」時,如果在「估商」過程中把商數的某個位高估了,導致在「減積」過程中出現不夠減的情況,便要使用「退商法」把高估了的商數調低。可是「退商法」並非能應用於所有高估了商數的情況,在某些情況下,我們要使用另一種調低商數的方法,這就是本章要介紹的「撞歸法」。
首先來看一個「退商法」失效的例子,讓我們計算4324 / 47。開始時把除數47和被除數4324分別佈在算盤左端和右面,並確定商數小數點和餘數小數點的位置,如下圖所示:
首先處理b檔,根據除數的第一位(即4)和b檔上的數字(即4)應用「九歸歌」口訣「逢四進一」,把b檔原有的數字4撥走,並在其上一檔(即a檔)加1,如下圖所示:
接下來當我們要進行「減積」,嘗試從b、c檔減去1 × 7 = 7時,便發現當前的b、c檔只有3,不夠減7,也不能向a檔借位(這是因為當前的a檔是用來記錄商數,不能借位給屬於被除數餘下部分的b、c檔)。這時我們可以嘗試採用上一章介紹的「退商法」,根據口訣「無除起一下還四」,從a檔減1,並在b檔加4。可是這樣做只會把算盤還原為處理b檔前的狀態,根本無濟於事,因此僅用「歸除法」和「退商法」不能算出4324 / 47的商數。
上述問題會出現於所有用「逢n進一」估計商數的某個位為1而接下來的「減積」過程又出現不夠減的情況,這是因為「逢n進一」和「無除起一下還n」這兩個口訣剛好互相抵消,結果只是把算盤還原為施行「逢n進一」前的狀態。這裡問題的關鍵是不應使用「逢n進一」此一口訣,以4324 / 47為例,由於被除數中的首兩位數字43較除數47小,可以預見到4324 / 47的商數的第一位不可能是1。換句話說,4324 / 47的商數不可能大於100,但可能大於90。因此在「估商」過程中,我們應把商數的第一位估為9而非1,這種「以九代一」的估商方法稱為「撞歸法」。
「撞歸法」也有專門的口訣,但由於這些口訣非常有規律,所以根本無需記憶(註1):
一歸: | 見一無除撞九一 | |
---|---|---|
二歸: | 見二無除撞九二 | |
三歸: | 見三無除撞九三 | |
四歸: | 見四無除撞九四 | |
五歸: | 見五無除撞九五 | |
六歸: | 見六無除撞九六 | |
七歸: | 見七無除撞九七 | |
八歸: | 見八無除撞九八 | |
九歸: | 見九無除撞九九 |
上述口訣可以概括為:對應於「n歸」我們有口訣「見n無除撞九n」。這裡n代表除數中的第一個數字,「見n無除」的意思就是,雖然被除數(或其餘下部分)的首位與除數的首位同為n,但由於被除數(或其餘下部分)的首m位數字(這裡假設除數共有m位數字)較除數小,不能應用「逢n進一」把商數估為1,因為這樣做會令接下來的「減積」過程無法進行。「撞九n」的意思則是,把被除數(或其餘下部分)的首位數字撥走然後加9,並在其下一檔加n。這樣做實際上是把商數估為9,並同時從被除數(或其餘下部分)的首兩位減去9與除數第一個位n的乘積(註2)。請注意這個口訣秉承了以往介紹的珠算除法口訣的特點,既包括「估商」的成分,亦包括「減積」的部分操作。
現在我們應用「撞歸法」求4324 / 47的商數,首先在算盤上佈數並處理b檔。由於b檔上的數字與除數的首位同為4,而且被除數的首兩位數字43較除數47小,所以我們應用「撞歸法」口訣「見四無除撞九四」,把b檔上的數字從4改為9,並在下一檔(即c檔)加4,如下圖所示(請注意這個運算實質上是估計4324 / 47的商數的第一位是9,並同時從被除數4324減去90 × 40 = 3600):
接下來便可以順利進行「減積」過程,計算9 × 7,得63,把這個積從c、d檔減去,如下圖所示(請注意這個運算實質上是從被除數的餘下部分減去90 × 7 = 630):
至此我們已完成對b檔的「估商」和「減積」過程。接著處理c檔,其方法跟一般「歸除法」完全相同,讀者應不難自行完成計算並算出4324 / 47 = 92。
在某些情況下,用「撞歸法」估得的商9仍然過高,這時便要運用上一章介紹的「退商法」把商數進一步調低。現以3081 / 39為例說明如何綜合運用「撞歸法」和「退商法」。開始時先把除數39和被除數3081佈在算盤上,如下圖所示:
首先處理b檔。由於b檔上的數字與除數的首位同為3,而且被除數的首兩位數字30較除數39小,所以我們要應用「撞歸法」口訣「見三無除撞九三」,把b檔上的數字從3改為9,並在下一檔(即c檔)加3,如下圖所示(請注意這個運算實質上是估計3081 / 39的商數的第一位是9,並同時從被除數3081減去90 × 30 = 2700):
接下來當我們要進行「減積」,嘗試從c、d檔減去9 × 9 = 81時,便發現當前的c、d檔只有38,不夠減81,也不能向b檔借位,這時我們便要運用「退商法」。容易看到,用了一次「退商法」口訣「無除起一下還三」後,c、d檔上的數字變為68,但仍然不夠減8 × 9 = 72,所以我們要再次運用「無除起一下還三」。兩次運用此一口訣的結果是從b檔減2,並在c檔加6,如下圖所示(請注意這個運算實質上是把3081 / 39的商數的第一位調低為7,並同時補回剛才多減了的600)(註3):
接下來便可以順利進行「減積」過程,計算7 × 9,得63,把這個積從c、d檔減去,如下圖所示(請注意這個運算實質上是從被除數的餘下部分減去70 × 9 = 630):
至此我們已完成對b檔的「估商」和「減積」過程,接著處理c檔。由於當前c檔上的數字與除數的首位同為3,而且被除數餘下部分的首兩位數字35較除數39小,所以我們要再次應用「撞歸法」口訣「見三無除撞九三」,把商數的第二位估為9。由於接下來的計算過程與前面介紹過的大致相同,這裡不再詳細討論,讀者應不難自行完成計算並算出3081 / 39 = 79。
跟上一章討論過的情況類似,當除數位數頗多時,可能難以準確判斷是否需要在使用「撞歸法」口訣後退商,常常是在進行「減積」過程的中途才發現被除數的餘下部分不夠減,這時我們便要運用上一章介紹過的「中途退商法」。現以51174 / 5689為例說明如何綜合運用「撞歸法」和「中途退商法」。開始時先把除數5689和被除數51174佈在算盤上,如下圖所示:
首先處理b檔。由於b檔上的數字與除數的首位同為5,而且被除數的首四位數字5117較除數5689小,所以我們要應用「撞歸法」口訣「見五無除撞九五」,把b檔上的數字從5改為9,並在下一檔(即c檔)加5。接下來進行「減積」過程,先計算9 × 6,得54,把這個積從c、d檔減去;接著計算9 × 8,得72,把這個積從d、e檔減去。以上運算都能順利進行,其中間結果如下圖所示(請注意以上運算實質上是估計51174 / 5689的商數的第一位是9,並已從被除數51174減去9 × 5680 = 51120):
但接下來當我們嘗試從e、f檔減去9 × 9 = 81時,便發現當前的e、f檔只有54,不夠減81,也不能向b檔借位。這時我們便要運用「中途退商法」,由於先前的「減積」過程已處理了9與除數首三位5、6和8的乘積,所以當前要用的「中途退商法」口訣是「無除起一下還五六八」,即從b檔減1,並在c至e檔加568,如下圖所示(這實質上是把原來高估了的商數第一位從9調低至8,並同時補回剛才多減了的積5680。另請注意在c至e檔加568時,我們可以盡情進位,例如在e檔加8時便要把1進位至d檔,而無需動用橫樑上方最頂或橫樑下方最底的算珠,這是因為當前的c至f檔是用來記錄被除數的餘下部分,只要進位不涉及用來記錄商數的b檔,便不會攪亂計算結果):
完成了上述「中途退商」過程後,接著便用新的商數8繼續進行未完成的「減積」過程。計算8 × 9,得72,把這個積從e、f檔減去。請注意雖然當前e、f檔只有34,不夠減72,但e、f檔可以盡情向同屬被除數餘下部分的d檔借位,其結果如下圖所示(請注意上述運算實質上是從被除數的餘下部分減去8 × 9 = 72):
至此我們已完成對b檔的「估商」和「減積」過程,上圖顯示51174 / 5689 = 8..5662。
至此筆者已介紹傳統珠算除法中的「歸除法」、「退商法」(包括「中途退商法」)和「撞歸法」,綜合運用這三種方法,我們可以進行任何(除數不為零的)除法。