籌算(英語:Rod calculus)是漢字文化圈古代使用算籌進行十進位制計算的程序。

永樂大典 宋代籌算布位圖中的數字:七萬一千八百二十四
日本帶格籌算板

歷史

籌算具體出現時間已然不可考,但根據典籍記錄和考古發現,至少在戰國初年籌算已然出現。[1]它使用中國商代發明的十進位制計數,可以很方便地進行四則運算以及乘方開方等較複雜運算,並可以對負數分數作出表示與計算

籌算在公元6世紀由中國傳入韓國日本。七世紀的印度數學,分數中的分子在上,分母在下,與中國同,分數的乘除法也和《九章算術》相同。古印度數學絕大部分來自中國。[2]。一直到被珠算完全取代之前,籌算是東亞古代進行日常計算的方法,算籌是東亞古代數學家研究數學時常用的計算器具,是東亞古代各種重要數學發明的基礎,開創了中國以至東亞古代以計算為中心的機械化數學體系,與古希臘以邏輯推理為中心的數學體系有所不同;機械化的數學體系是一千多年世界數學的主流[3]

影響

籌算的乘除法傳入印度,成為土盤算法[4]。9世紀初至10世紀,又經印度傳入阿拉伯,這時期的阿拉伯闡述印度數學的數學著作,諸如《印度算術原理》,其土盤算式雖然用阿拉伯數字表示,但其十進位制概念,分數的表示法,以及加、減、乘、除四則運算的計算方法,和中國的籌算雷同,有的還用空格「0」表示「0」,和籌算一模一樣。有學者認為,中國古代的籌算,通過絲綢之路傳入印度阿拉伯,促成印度-阿拉伯數字體系[5]

數字表示

 
一到九的直型態與橫型態對照

算籌數系是世界上唯一只用一個符號的方向和位置的組合,表示任何十進位數字或分數的系統。 單位數字:將籌棍豎排一根棍表示1,兩根棍表示2,5根棍表示5如圖上。但從6至9數字的表示,不是並排6至9根籌棍,而是採用同位五進制,即用一根籌棍代表數碼5,橫放在籌數1至4的上方如圖。這已蘊含算盤雛形。上排是籌算中1至9的豎碼,下排是相應數字的橫碼。

 
使用直橫排列避免混淆

大於9的數字,則用十進制表示,在個位數的位置左邊,放置一個籌數,代表這個籌數的十倍,在十位數值左的位置,代表百位數,如此類推。如圖所示數二百三十一(231)的表示法,在個位放置一根籌碼,表示1,在十位放置籌數3,代表30,在百位放置籌數2,代表200,總數即二百三十一(231)。《孫子算經》云:

凡算之法:先識其位,一從十橫,百立千僵,千十相望,萬百相當。

籌算板一般是桌面或地面,通常沒有格子。如果籌碼2,3,1並排排列,有可能被誤讀為51或24;為了避免鄰位誤讀,每隔一位交替使用豎碼橫碼,即個位豎碼,十位用橫碼,百位用豎碼,千位用橫碼,如此類推,就可以完全避免誤讀了[6]

零的表示

 
數字後加斜棍表負數

中國自有籌算起就有「0」,即以空位表示「0」。籌算中的零是位置零和運算結果的零,沒有特定符號,這和阿拉伯數字專有一個符號0不同,阿拉伯數字0只是符號零,不是運算結果。[來源請求]

正負數

宋代數學家用紅色籌碼代表正數,用黑色籌碼代表負數,也有一律用黑色籌碼,但在數字最後一位加一根斜棍標示為負數。[7]

小數

孫子算經的度量衡已有十進位制概念,如尺、寸、分、厘、毫、絲、忽。七丈一尺二寸三分四厘五毫六絲,用現代表示方法為71.23456尺,用算籌排為

       

其中 為十位數, 為個位數, 為十分之一位等等。

南宋秦九韶在《數書九章》中將小數推廣到非度量衡,如

1.1446154日

表示為:

        

即在個位數1下記一「日」字。[8]

加法

 
籌算加法  

算籌本身已經包含加法,因此用算籌進行加法運算十分方便快捷。籌算加法與阿拉伯數字加法最大的不同,在於算籌本身具有可加性,用算籌進行加法運算,只須機械地搬動籌棍,即可進行運算,不需要另外背誦加法表,這與阿拉伯數字不同,不可能將阿拉伯數字1和2機械地疊成3字,2和3疊成一個5字。

左圖表示 的運籌步驟:

  1. 將被加數3748放上行,加數289放下行,位數對齊。
  2. 從左往右計算。
  3. 取出下行百位數的二豎棍,與上行7合併為9。
  4. 從上行十位的4,取出二根籌棍(上行剩2),與下行8合為10,進位1,與百位的9合為10,進一位。
  5. 將個位數的8,取出一根籌與下行9合為10,進位1,與十位的2合為3
  6. 答案4037。

上行被加數籌碼,在運算過程中逐步變化;下行加數籌碼,在運算過程中逐步消失。

減法

 

不需向上一數量級借位的情況下,只要從被減數中去掉與減數相同數目的籌棍,剩餘的籌碼就是答案。左圖為計算54-23的演示步驟。 右圖為計算4231-789的演示步驟,此情況即為需要向上一數量級借位:

  1. 將被減數4231放在上行,減數789放下行。從左往右逐位運籌。
  2. 從千位借1為百位10,減去下行該位的7,餘數3與上行2合為5,下行本位的7被取去,留空白。
  3. 從百位5借1留4,百位所借1減十位下行8得2,與上行3合為5;至此上行籌碼為3451,下行為9。
  4. 從上行十位的5借1餘四,所借1(=10)減去下行9得1,搬往上行得2,至此下行籌碼已全部減除,上行得3442即是運算結果。

乘法

 
籌算 38x76=2888
 
十世紀阿拉伯數學家阿爾烏基里德的乘法,是孫子乘法的變化

運用算籌進行乘除運算時必須先學會九九表:《夏侯陽算經》云:

夫乘除之法,先明九九,一叢十橫,百立千僵,千十相望,萬百相當。滿六已上,五在上方。六不積算,五不單張。上下相乘,實居中央。言十自當。已法除之,宜得上商,橫算相當。以次右行,極於左方。

孫子算經》對籌算乘法有詳細闡述。 左圖即為籌算38×76的演示步驟:

  1. 將被乘數放在上排(上位),乘數放在下排(下位),乘數的個位,對齊被乘數的最高位。如圖:被乘數38在上排,乘數76在下排,其個位數6對齊被乘數38的3。上下排之間,留空幾排,作中間積存放處。
  2. 運算規則:從左至右。
  3. 從被乘數的最高位開始運籌(例中即先運算30×76,再運算8×76)。在運算中必須運用九九表。據九九表「三七二十一」,將籌碼21放在中間排,1對齊乘數的十位,即在7之上;然後「三六一十八」;(30×76得中間積2280),如圖中排,至此被乘數的3已經完成運算,從籌板除去。
  4. 將乘數76的籌碼,往右移動一位,7改橫碼,6改為豎碼;
  5. 以下再運算8×76,運算「七八五十六」,撤乘數十位數籌碼7;
  6. 運算「八六四十八」,4與上一步所得56的6合併為10,進位1,撤去被乘數個位8,撤去乘數個位6;
  7. 將中間積2280與608相加,得積2888,至此整條算式運算完畢。

P.S.:範例圖片是一邊乘一邊加而不是像文字描述所說乘完後才加。

除法

 
十世紀阿爾烏幾里德除法
 
孫子除法 309/7=44 1/7
 
9世紀花拉子米除法是孫子除法的翻版
 
十一世紀伊本·拉班除法也是孫子除法的翻版

左圖為計算 的演示步驟:

  1. 將被除數309放中排,除數7放下排,上排留空。
  2. 將除數7右移一位,變橫碼,用九九表和減法運算30÷7:30除7得4剩2,
  3. 商4擺上排,2留中排。
  4. 將除數7右移一位,改豎碼;再用九九表和減法運算29÷7:29除7得4餘1,
  5. 商4放上排,除數不撤,最後得商44,餘數1,故 

孫子除法在9世紀初最早由花拉子米從印度介紹到阿拉伯國家,十世紀阿拉伯數學家阿爾烏幾里德《印度的算術》[9]敘述的早期除法和十一世紀波斯數學家伊本·拉班印度算術原理》敘述的除法,也是不折不扣的孫子除法:

  1. 同樣上、中、下三行的布列格式
  2. 同樣上為商數,中為被除數,下為除數
  3. 同樣的左邊對齊
  4. 同樣的自左往右運算
  5. 同樣算一步後將除數右移一位
  6. 同樣除數後面以空格代0
  7. 同樣的商和餘數,以三行格式表示。

分數

用籌算進行除法運算時,如留有餘數,則必須保留除數和餘數,形成一對籌碼,一在上一在下。劉徽九章算術注》中,在上的籌稱「實」,為在下的籌稱為「法」:《孫子算經》中,在上的籌稱為「子」,(分子),而在下的稱為「母」(分母)。如右圖一對籌碼一在上一在下,1是子,7是母,構成分數  。 這種籌算分數的表示法,在9世紀由花拉子米介紹到阿拉伯國家。

分數加法

 
分數加法

 

  • 將分子1,2 擺放在算籌板的左邊,將分母3,5擺放在算籌板的右邊
  • 將分子與分母交叉互乘,將所得的積代替相應的分子
  • 將分母相乘,將乘積擺放在算籌板右下方
  • 將新的分子相加,其和擺放在算籌板右上方
  • 結果: = 

分數減法

 
分數減法

 

  • 將分子8,1的算籌擺放在算籌板的左邊
  • 將分母9,5 擺放在算籌板的右邊
  • 分子分母互乘,以乘積代替相應的分子。
  • 分母相乘,其積擺放在算籌板右下方
  • 新分子相減為差,將差數擺放在算籌板右上方
  • 結果:   =  

分數乘法

 
分數乘法

 

  •   在算籌板上佈置成商、實、法形式。
  • 商乘法加入實。 3*3 + 1=10; 5*5 + 2=27
  • 實乘實:10*27=270
  • 法乘法:3*5=15
  • 實除法: =18

此算法的實質是將帶分數先化成假分數,再行乘法。

分數除法

  • 將分數在算籌板上以商、實、法的三行格式排列。
  • 將商乘法,併入實。
  • 將除數分數的分子、分母互換。
  • 分子、分母相乘。
  • 約分。

此算法的實質是將帶分數先化成假分數,並將除數取倒數相乘。

最大公約數

 
求最大公約數

九章算術給出求兩個數最大公約數的方法,即輾轉相除,以至最後餘數相等,即為最大公約數。

左圖為求   的最大公約數,並進行約分。

最大公約數為25,約分得 

分數內插法

 

何承天發明名為調日法的分數內插法,反覆將弱值分數與強值分數的分子分母相加已求得更佳的近似值。祖沖之用此法求的著名的圓周率 約率 和密率 

開平方根

 
籌算開方術
 
伊本·拉班開平方術

孫子算經卷中:「今有積,二十三萬四千五百六十七步。問:為方幾何?答曰:四百八十四步九百六十八分步之三百一十一。

術曰:置積二十三萬四千五百六十七步,為實,次借一算為下法,步之超一位至百而止。上商置四百於實之上,副置四萬於實之下。下法之商,名為方法;命上商四百除實,除訖,倍方法,方法一退,下法再退,復置上商八十以次前商,副置八百於方法之下。下法之上,名為廉法;方廉各命上商八十以除實,除訖,倍廉法,從方法,方法一退,下法再退,復置上商四以次前,副置四於方法之下。下法之上,名曰隅法;方廉隅各命上商四以除實,除訖,倍隅法,從方法,上商得四百八十四,下法得九百六十八,不盡三百一十一,是為方四百八十四步九百六十八分步之三百一十一」。

右圖為籌算開方  

算法如下:

  • 把234567放在算籌板的由上數起的第二行上,稱之為
  • 把一個標記「1」放置在第四行的萬位,稱為下法
  • 估計平方根的第一位,放在第一行()的百位。
  • 將商乘以下法(4×1),把積放在第三行,稱之為方法
  • 將實減去商和方法的積,23-4×4=7
  • 將方法乘以2,把它移向右邊,改為橫碼。
  • 把下法向右移兩位。
  • 估計平方根的第二位,放在商的十位。
  • 將商乘以下法,積加到方法。
  • 8(方)×8(商的十位)=64,將74減去64,把10放到實,再將105減去8(廉)×8(商的十位)=64,再把41放回實。
  • 把方法的個位(廉)乘以2,加到原方法80。
  • 把方法向右移,改變方向;把下法向右移兩位。
  • 估計平方根的第三位。
  • 將商乘以下法(4×1),積加到方法,此時方法應為964。
  • 從實減去4×900+4×60+4×4=76,餘下311。
  • 把方法的個位乘以2,加到原方法960。
  • 答案: 

十一世紀波斯數學家伊本·拉班的開平方術,與孫子基本上相同,唯最後分母加1,所以平方根的小數比真值略小,孫子算法所得,則比真值略大。

開立方根

 
賈憲增乘開立方術

九章算術卷第四《少廣》有數道開立方題,其開立方術為後世開立方術的基礎。

〔二二〕又有積一百九十三萬七千五百四十一尺、二十七分尺之一十七。問為立方幾何?

答曰:一百二十四尺、太半尺。 開立方術曰:置積為實。借一算步之,超二等。議所得,以再乘所借一算為法,而除之。除已,三之為定法。復除,折而下。以三乘所得數置中行。復借一算置下行。步之,中超一,下超二等。復置議,以一乘中,再乘下,皆副以加定法。以定法除。除已,倍下、並中從定法。復除,折下如前。開之不盡者,亦為不可開。若積有分者,通分內子為定實。定實乃開之,訖,開其母以報除。若母不可開者,又以母再乘定實,乃開之。訖,令如母而一。

 

北宋數學家賈憲發明增乘開立方法遞增三乘開四次方術

右圖為賈憲增乘開立方解九章算術第四卷少廣〔一九〕

今有積一百八十六萬八百六十七尺。問為立方幾何?

答曰:一百二十三尺。

 

聯立方程

 
聯立方程

九章算術 卷第八 方程: 〔一〕今有上禾三秉,中禾二秉,下禾一秉,實三十九斗;上禾二秉,中禾三秉,下禾一秉,實三十四斗;上禾一秉,中禾二秉,下禾三秉,實二十六斗。 問上、中、下禾實一秉各幾何?

答曰:

上禾一秉,九斗、四分斗之一,

中禾一秉,四斗、四分斗之一,

下禾一秉,二斗、四分斗之三。

有三捆上等穀物,兩捆中等穀物,一捆下等穀物,共39斗;有兩捆上等,三捆中等,一捆下等,共34斗;有一捆上等,兩捆中等,三捆下等,共26斗。分別找出上、中、下等穀物的數量。

方程術曰,置上禾三秉,中禾二秉,下禾一秉,實三十九斗,於右方。中、左禾列如右方。

質量 右行 中行 下行
上禾      
中禾      
下禾      
           

以右行上禾遍乘中行而以直除。又乘其次,亦以直除。然以中行中禾不盡者遍乘左行而以直除。左方下禾不盡者,上為法,下為實。實即下禾之實。求中禾,以法乘中行下實,而除下禾之實。餘如中禾秉數而一,即中禾之實。求上禾亦以法乘右行下實,而除下禾、中禾之實。餘如上禾秉數而一,即上禾之實。實皆如法,各得一斗。

  • 將中列乘以右上角的數字,即3。
  • 重複地從中列減去右列,直到中上角的數字為0。
  • 將左列乘以右上角的數字,即3。
  • 重複地從左列減去右列,直到左上角的數字為0。
  • 對中列和左列使用上述消除算法後,矩陣將簡化成三角形狀:
質量 右行 中行 下行
上禾  
中禾    
下禾       
           

一捆下等穀物的數量= 

一捆上等穀物= 

一捆中等穀物= 

行列式

日本數學家關孝和在《三部抄》的《解伏題之法》中,將線性方程組的系數縱橫寫成方陣的形式,發明了行列式。關孝和還提出了兩種計算行列式的值的方法:逐式交乘法和交式斜乘法。

高次方程

 

南宋數學家秦九韶賈憲增乘開方術推廣,以求解高次方程。右圖為秦九韶解下列四次方程式的程序。

 

程序:

  1. 置6262506.25 為實
  2. 置15245 為上廉
  3. 置1為益隅
  4. 上廉超二位,益隅超三位。
  5. 置商20步
  6. 以商乘益隅入下廉
  7. 以下廉乘商生負廉
  8. 以負廉與正廉相消得正上廉
  9. 以商乘上廉為方
  10. 以方乘商除實
  11. 又以商乘益隅入下廉
  12. 以下廉乘商生負廉
  13. 負廉與正廉相消
  14. 商與上廉生方
  15. 商隅相乘入下廉
  16. 商與下廉生負廉
  17. 負廉與正廉相消
  18. 商又與隅生下廉
  19. 下廉三退,隅四退
  20. 無商(商第二位為0),以上廉併入方,並益隅入下廉
  21. 益隅並負廉與正方廉相消,命為母
  22. 約分

 

四元高次方程

籌算的應用在朱世傑《四元玉鑒》中的四元術到達高峰。

三元術

今有股弦較除弦和與直積等。只雲勾股較除弦較和與勾同。問弦幾何?

答曰:五步。
術曰:立天元一為勾,地元一為股,人元一為弦,物元一為開數。

:得到 今式 

  
 
   


雲式: 

   
 
 

三元式: 

    
 
 

三元式與雲式相消,

人天易位 人弦-->天勾

得: 前式 

    
   
   

及 後式  

   
    
    

相消得  

 
 
 
 
 

解之得   天勾=5;

人天易位 天勾-->人弦

得弦=五步。

四元術
 
朱世傑《四元玉鑒·四象會元》四元術

今有股乘五較與弦冪加勾乘弦等。只雲勾除五和與股冪減勾弦同。問黃方帶勾股弦共幾何?

答曰:一十四0 步。
草曰:立天元0 一為勾,地元一為股,人元一為弦,物元一為開數。得四元方程[10][11]
1: 0 0  ;
2: 0 0  ;
3: 0 0  ;
4: 0 0  ;


消元,物易天位

 
   
 
 

解之,

物易天位,得 十四步。

參看

註釋

  1. ^ 筹算 - 《中国大百科全书》第三版网络版. www.zgbk.com. [2022-10-17]. (原始內容存檔於2022-10-17). 
  2. ^ 錢寶琮 《中國古代分數算法的發展》 《李儼.錢寶琮科學史全集》卷9 392頁
  3. ^ 吳文俊 《中國古代數學對世界文化的偉大貢獻》 《吳文俊文集》 2頁
  4. ^ 錢寶琮 《中國古代數學的偉大成就》 《李儼.錢寶琮科學史全集》卷9 383頁
  5. ^ 新加坡大學教授藍麗蓉:《阿拉伯數字體系起源於中國籌算的證據》,Fleeting Footsteps
  6. ^ 李約瑟 原著 柯林‧羅南改編《中華科學文明史》卷2 第一章 數學
  7. ^ Ho Peng Yoke, Li, Qi and Shu p58 ISBN 0-486-41445-0
  8. ^ Lam Lay Yong, p87-88
  9. ^ Abu al-Hasan Ahmad ibn Ibrahim al-Uqlidisi, The Arithematics of Al-Uqlidisi, tran. A.S.Saidan, P57 D.Reidel, Boston, USA 1978
  10. ^ 朱世傑原著 李兆華校正 《四元玉鑒》 153頁 ISBN 978-7-03-020112-6
  11. ^ 《李儼錢寶琮科學史全集》 第一卷 李儼 《中國算學史》 第435-439頁

參考文獻