數讀 中國古代是怎麼算數的?

中國古代算籌
中國古代算籌 | © 東籬把酒,微圖

我們今天算數,都用印度-阿拉伯數碼記數,用+、-、×、÷等符號表示四則運算。但是,這些符號自清末以來才在中國逐漸推廣,那麼,中國古代是怎樣記數和算數的呢?中國古代採用十進位,有多種記數法,這裡只介紹最常見、簡單的文字記數法和算籌記數法,然後介紹古人如何做四則運算。

文字記數法

  文字記數法有基本數位和數位單位兩種基本的符號單元。前者用一、二、三、四、五、六、七、八、九共9個漢字分別表示1至9,後來又出現表示0的 零和○。後者有一、十、百、千、萬、億、兆、京等21個。從一開始至萬每級都是十進,從萬到億開始,有多種不同的進制,先秦時代常用十進,漢代以來常見的 有兩種:一種是萬進;另一種以萬萬為億,從億到兆開始為萬萬進。

  中國自古至今,萬以內的數通常以 “幾千幾百幾十幾”的形式寫成。萬以上的部分,根據進制的不同而有所區別,若為十進,就用與之相同的方式,如“五億三萬四千八百六十三”表示 534863;若為萬進,則用“幾千幾百幾十幾+數位單位”的形式表示數位單位的倍數。如南宋楊輝《續古摘奇演算法》中有一個大數“一兆八千五百三十億二 千一十八萬八千八百五十一”,從萬以上用萬進。如果省略數位單位並用○代替空缺的數位,則變成“一八五三○二○一八八八五一”,與今天印度-阿拉伯數字表 示的1853020188851就一一對應了。

漢字記數簡潔而自然,如30作“三十”,13作“十三”或“一十三”,只需基本數位與數位單位,對比英語的“thirty”、 “thirteen”,不僅有超出數位單位“ten”的“-ty”和“teen”、超出基本數字的“thir-”,而且與3對應的“thir-”在30和 13中位置不變,漢字記數的優點就一目了然了。

算籌記數法

算籌是用竹、木等製成用來表示數字的小棍,記數時有兩種基本的擺放形式:

Abb.1  (cn)

  在這些符號中,對1至5,表示幾就用幾根算籌;對6至9,用一根在上面的算籌表示所含的5,比5多幾就在下面放幾根算籌,與表示5的算籌垂直。記數時,個、百、萬等位元上的數位用縱式,十、千、十萬等位元上的數位用橫式,縱橫交錯進行。如果某位元上數字為零,則空出相應的位置。早期的古人席地而坐,就規定右膝所對的位置為個位。如68012用算籌表示就是
Abb. 2 (cn)

算籌記數是完全遵循十進位值制,同一算籌符號在不同的位置表示不同數位單位的倍數,與現代的印度-阿拉伯數字記法完全一致。

四則運算


中國古代一般用算籌計算,用文字記錄。

也許因為算籌記數非常簡單,古代數學經典中沒有記載用算籌做加減的具體做法。但可推知其演算法與現代筆算加減的方法差不多,只是用算籌更靈活,既可先從低位算起,也可先從高位算起。以下是計算38+63的兩種圖示(為便於現代讀者的習慣,用印度-拉伯數字代替算籌):
Abb. 3 (cn)

古代乘除法以算籌記數為基礎,以九九口訣為核心。因為早期的口訣從“九九八十一”開始,所以稱為“九九”。九九在不同時代有所變化,但都包括“九九八十一”至“二二而四”等核心句子。九九的內容不多,古人都熟讀背誦下來。

做乘法比如計算72×39時,用算籌分三行擺放數位(仍用印度-阿拉伯數字代替算籌),中間為乘積,上、下為乘數,分別稱為上數、下數。先讓下數末位與上數首位對齊,如圖3-1。用上數首位3乘下數首位7,念“三七二十一”,在中行放21,使其個位1與所乘的7對齊,如圖3-2。3再乘下數次位2,念“二三而六”,將6加入中行,如圖3-3。上數首位3已乘遍下數各位,故將它撤去,然後右移下數,使末位2與這時的上數首位9對齊,如圖3-4。仿照上面的步驟,用上數9依次乘下數各位,加入中行,撤去9,中行得到乘積為2808。如圖3-5、3-6、3-7。

Abb. 4 (cn)

  做除法時,被除數、除數分別放在中行、下行,上行先空著等待放置商。先將除數左移,與被除數首位對齊,若相同位上除數比被除數大,則除數向右退一位。如2808÷72,因72>28,故將72與80對齊,如圖4-1。試商3,置於上行,與除數個位對齊,如圖4-2。以3乘除數首位7,念“三七二十一”,從被除數中與7對齊的位及之前的位所構成的數28中減去21,如圖4-3。再以3乘除數個位2,念“二三而六”,從中行減去6,如圖4-4。將除數右移一位,如圖4-5。商第2位得數9,再按剛才的方法,從中行減去9與除數的乘積,最後除盡得商39,如圖4-6、4-7。如果有餘數,就得到一個帶分數,商為其整數部分,除數、餘數分別為其分數部分的分母、分子。

Abb. 5 (cn)

  利用上述方法,古人很容易應付日常事務的計算。中國古代還用不同顏色或形狀的算籌來表示正負數,甚至利用算籌的擺放位置,通過今天的分離係數法來表示方程和代數式。這不僅使中國古代數學長於計算,而且在代數方面非常發達。