筹算
历史
筹算具体出现时间已然不可考,但根据典籍记录和考古发现,至少在战国初年筹算已然出现。[1]它使用中国商代发明的十进位制计数,可以很方便地进行四则运算以及乘方,开方等较复杂运算,并可以对零、负数和分数作出表示与计算。
筹算在公元6世纪由中国传入韓國和日本。七世纪的印度数学,分数中的分子在上,分母在下,与中国同,分数的乘除法也和《九章算术》相同。古印度数学绝大部分来自中国。[2]。一直到被珠算完全取代之前,筹算是東亞古代进行日常计算的方法,算筹是東亞古代数学家研究数学时常用的计算器具,是東亞古代各种重要数学发明的基础,开创了中国以至東亞古代以计算为中心的机械化数学体系,与古希腊以逻辑推理为中心的数学体系有所不同;机械化的数学体系是一千多年世界数学的主流[3]
影響
筹算的乘除法传入印度,成为土盘算法[4]。9世纪初至10世纪,又经印度传入阿拉伯,这时期的阿拉伯阐述印度数学的数学著作,诸如《印度算术原理》,其土盘算式虽然用阿拉伯数字表示,但其十进位制概念,分数的表示法,以及加、减、乘、除四则运算的计算方法,和中国的筹算雷同,有的还用空格“ ”表示“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只是符号零,不是运算结果。[來源請求]
正负数
小数
孙子算经的度量衡已有十进位制概念,如尺、寸、分、厘、毫、丝、忽。七丈一尺二寸三分四厘五毫六絲,用现代表示方法为71.23456尺,用算筹排为
- 1.1446154日
表示为:
即在个位数1下记一“日”字。[8]
加法
算筹本身已经包含加法,因此用算筹进行加法运算十分方便快捷。筹算加法与阿拉伯数字加法最大的不同,在于算筹本身具有可加性,用算筹进行加法运算,只须机械地搬动筹棍,即可进行运算,不需要另外背诵加法表,这与阿拉伯数字不同,不可能将阿拉伯数字1和2机械地叠成3字,2和3叠成一个5字。
左图表示 的运筹步骤:
- 将被加数3748放上行,加数289放下行,位数对齐。
- 从左往右计算。
- 取出下行百位数的二竖棍,与上行7合并为9。
- 从上行十位的4,取出二根筹棍(上行剩2),与下行8合为10,进位1,与百位的9合为10,进一位。
- 将个位数的8,取出一根筹与下行9合为10,进位1,与十位的2合为3
- 答案4037。
上行被加数筹码,在运算过程中逐步变化;下行加数筹码,在运算过程中逐步消失。
减法
不需向上一數量級借位的情況下,只要从被减数中去掉与减数相同数目的筹棍,剩余的筹码就是答案。左圖為計算54-23的演示步驟。 右圖為計算4231-789的演示步驟,此情況即為需要向上一數量級借位:
- 将被减数4231放在上行,减数789放下行。从左往右逐位运筹。
- 从千位借1为百位10,减去下行该位的7,余数3与上行2合为5,下行本位的7被取去,留空白。
- 从百位5借1留4,百位所借1减十位下行8得2,与上行3合为5;至此上行筹码为3451,下行为9。
- 从上行十位的5借1余四,所借1(=10)减去下行9得1,搬往上行得2,至此下行筹码已全部减除,上行得3442即是运算结果。
乘法
夫乘除之法,先明九九,一丛十横,百立千僵,千十相望,万百相当。满六已上,五在上方。六不积算,五不单张。上下相乘,实居中央。言十自当。已法除之,宜得上商,横算相当。以次右行,极于左方。
《孙子算经》对筹算乘法有详细阐述。 左圖即為筹算38×76的演示步驟:
- 将被乘数放在上排(上位),乘数放在下排(下位),乘数的个位,对齐被乘数的最高位。如图:被乘数38在上排,乘数76在下排,其个位数6对齐被乘数38的3。上下排之间,留空几排,作中间积存放处。
- 运算规则:从左至右。
- 从被乘数的最高位开始运筹(例中即先運算30×76,再運算8×76)。在运算中必须运用九九表。据九九表「三七二十一」,将筹码21放在中间排,1对齐乘数的十位,即在7之上;然後「三六一十八」;(30×76得中间积2280),如图中排,至此被乘数的3已经完成运算,从筹板除去。
- 将乘数76的筹码,往右移动一位,7改横码,6改为竖码;
- 以下再運算8×76,運算「七八五十六」,撤乘数十位数筹码7;
- 運算「八六四十八」,4与上一步所得56的6合并为10,进位1,撤去被乘数个位8,撤去乘数个位6;
- 将中间积2280与608相加,得积2888,至此整條算式运算完毕。
P.S.:範例圖片是一邊乘一邊加而不是像文字描述所說乘完後才加。
除法
左圖為計算 的演示步驟:
- 将被除数309放中排,除数7放下排,上排留空。
- 将除数7右移一位,变横码,用九九表和减法运算30÷7:30除7得4剩2,
- 商4摆上排,2留中排。
- 将除数7右移一位,改竖码;再用九九表和减法运算29÷7:29除7得4余1,
- 商4放上排,除数不撤,最后得商44,余数1,故 。
孙子除法在9世纪初最早由花拉子米从印度介绍到阿拉伯国家,十世纪阿拉伯数学家阿尔乌几里德《印度的算术》[9]叙述的早期除法和十一世纪波斯数学家伊本·拉班《印度算术原理》叙述的除法,也是不折不扣的孙子除法:
- 同样上、中、下三行的布列格式
- 同样上为商数,中为被除数,下为除数
- 同样的左边对齐
- 同样的自左往右运算
- 同样算一步后将除数右移一位
- 同样除数后面以空格代0
- 同样的商和余数,以三行格式表示。
分数
用筹算进行除法运算时,如留有余数,则必须保留除数和余数,形成一对筹码,一在上一在下。刘徽《九章算术注》中,在上的筹称“实”,为在下的筹称为“法”:《孙子算经》中,在上的筹称为“子”,(分子),而在下的称为“母”(分母)。如右图一对筹码一在上一在下,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。
- 對中列和左列使用上述消除算法後,矩陣將簡化成三角形狀:
质量 | 右行 | 中行 | 下行 |
上禾 | |||
中禾 | |||
下禾 | |||
实 |
一捆下等穀物的數量= 斗
一捆上等穀物= 斗
一捆中等穀物= 斗
行列式
日本数学家关孝和在《三部抄》的《解伏题之法》中,將线性方程组的係數縱橫寫成方陣的形式,发明了行列式。關孝和還提出了兩種計算行列式的值的方法:逐式交乘法和交式斜乘法。
高次方程
南宋数学家秦九韶将贾宪的增乘开方术推广,以求解高次方程。右图为秦九韶解下列四次方程式的程序。
程序:
- 置6262506.25 为实
- 置15245 为上廉
- 置1为益隅
- 上廉超二位,益隅超三位。
- 置商20步
- 以商乘益隅入下廉
- 以下廉乘商生负廉
- 以负廉与正廉相消得正上廉
- 以商乘上廉为方
- 以方乘商除实
- 又以商乘益隅入下廉
- 以下廉乘商生负廉
- 负廉与正廉相消
- 商与上廉生方
- 商隅相乘入下廉
- 商与下廉生负廉
- 负廉与正廉相消
- 商又与隅生下廉
- 下廉三退,隅四退
- 无商(商第二位为0),以上廉并入方,并益隅入下廉
- 益隅并负廉与正方廉相消,命为母
- 约分
得
四元高次方程
- 三元术
今有股弦较除弦和与直积等。只云勾股较除弦较和与勾同。问弦几何?
- 答曰:五步。
- 术曰:立天元一为勾,地元一为股,人元一为弦,物元一为开数。
:得到 今式
云式:
三元式:
三元式与云式相消,
人天易位 人弦-->天勾
得: 前式
及 后式
相消得
解之得 天勾=5;
人天易位 天勾-->人弦
得弦=五步。
- 四元术
今有股乘五较与弦幂加勾乘弦等。只云勾除五和与股幂减勾弦同。问黄方带勾股弦共几何?
消元,物易天位
解之,
物易天位,得 十四步。
参看
註釋
- ^ 筹算 - 《中国大百科全书》第三版网络版. www.zgbk.com. [2022-10-17]. (原始内容存档于2022-10-17).
- ^ 钱宝琮 《中国古代分数算法的发展》 《李俨.钱宝琮科学史全集》卷9 392页
- ^ 吴文俊 《中国古代数学对世界文化的伟大贡献》 《吴文俊文集》 2页
- ^ 钱宝琮 《中国古代数学的伟大成就》 《李俨.钱宝琮科学史全集》卷9 383页
- ^ 新加坡大学教授蓝丽蓉:《阿拉伯数字体系起源于中国筹算的证据》,Fleeting Footsteps
- ^ 李约瑟 原著 柯林‧罗南改编《中华科学文明史》卷2 第一章 数学
- ^ Ho Peng Yoke, Li, Qi and Shu p58 ISBN 0-486-41445-0
- ^ Lam Lay Yong, p87-88
- ^ Abu al-Hasan Ahmad ibn Ibrahim al-Uqlidisi, The Arithematics of Al-Uqlidisi, tran. A.S.Saidan, P57 D.Reidel, Boston, USA 1978
- ^ 朱世杰原著 李兆华校正 《四元玉鉴》 153页 ISBN 978-7-03-020112-6
- ^ 《李儼钱宝琮科学史全集》 第一卷 李儼 《中国算学史》 第435-439页
参考文献
- 吴文俊主编 《中国数学史大系·第四卷》第一章 《孙子算经》 第三节 算筹与筹算 北京师范大学出版社 ISBN:7303049258
- 《九章算术白话译解》 重庆大学出版社 ISBN 7-5624-3848-X
- 李约瑟 原著 柯林·罗南改编《中华科学文明史》卷2 第一章 数学
- Lam Lay Yong(兰丽蓉) Ang Tian Se(洪天赐), Fleeting Footsteps, World Scientific ISBN 981-02-3696-4
- Ho Peng Yoke, Li, Qi and Shu ISBN 0-486-41445-0