筹算

筹算（英語：Rod calculus）是漢字文化圈古代使用算筹进行十进位制计算的程序。 筹算具体出现时间已然不可考，但根据典籍记录和考古发现，至少在战国初年筹算已然出现。它使用中国商代发明的十进位制计数，可以很方便地进行四则运算以及乘方，开方等较复杂运算，并可以对零、负数和分数作出表示与计算。 筹算在公元6世纪由中国传入韓國和日本。七世纪的印度数学，分数中的分子在上，分母在下，与中国同，分数的乘除法也和《九章算术》相同。古印度数学绝大部分来自中国。。一直到被珠算完全取代之前，筹算是東亞古代进行日常计算的方法，算筹是東亞古代数学家研究数学时常用的计算器具，是東亞古代各种重要数学发明的基础，开创了中国以至東亞古代以计算为中心的机械化数学体系，与古希腊以逻辑推理为中心的数学体系有所不同；机械化的数学体系是一千多年世界数学的主流 筹算的乘除法传入印度，成为土盘算法。9世纪初至10世纪，又经印度传入阿拉伯,这时期的阿拉伯阐述印度数学的数学著作，诸如《印度算术原理》，其土盘算式虽然用阿拉伯数字表示，但其十进位制概念，分数的表示法，以及加、减、乘、除四则运算的计算方法，和中国的筹算雷同，有的还用空格“0”表示“0”，和筹算一模一样。有学者认为，中国古代的筹算，通过丝绸之路传入印度、阿拉伯，促成印度－阿拉伯数字体系。 算筹数系是世界上唯一只用一个符号的方向和位置的组合，表示任何十进位数字或分数的系统。 单位数字：将筹棍竖排一根棍表示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；为了避免邻位误读，每隔一位交替使用竖码横码，即个位竖码，十位用横码，百位用竖码，千位用横码，如此类推，就可以完全避免误读了。 中国自有筹算起就有“0”，即以空位表示“0”。筹算中的零是位置零和运算结果的零，没有特定符号，这和阿拉伯数字专有一个符号0不同，阿拉伯数字0只是符号零，不是运算结果。[來源請求] 宋代数学家用红色筹码代表正数，用黑色筹码代表负数，也有一律用黑色筹码，但在數字最後一位加一根斜棍標示為负数。 孙子算经的度量衡已有十进位制概念，如尺、寸、分、厘、毫、丝、忽。七丈一尺二寸三分四厘五毫六絲，用现代表示方法为71.23456尺，用算筹排为 其中为十位数，为个位数，为十分之一位等等。 南宋秦九韶在《数书九章》中将小数推广到非度量衡，如 1.1446154日 表示为： 日 即在个位数1下记一“日”字。 算筹本身已经包含加法，因此用算筹进行加法运算十分方便快捷。筹算加法与阿拉伯数字加法最大的不同，在于算筹本身具有可加性，用算筹进行加法运算，只须机械地搬动筹棍，即可进行运算，不需要另外背诵加法表，这与阿拉伯数字不同，不可能将阿拉伯数字1和2机械地叠成3字，2和3叠成一个5字。 左图表示 3748 + 289 {\displaystyle 3748+289} 的运筹步骤： 将被加数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 {\displaystyle {\frac {309}{7}}} 的演示步驟： 将被除数309放中排，除数7放下排，上排留空。 将除数7右移一位，变横码，用九九表和减法运算30÷7：30除7得4剩2， 商4摆上排，2留中排。 将除数7右移一位，改竖码；再用九九表和减法运算29÷7：29除7得4余1， 商4放上排，除数不撤，最后得商44，余数1，故 309 7 = 44 1 7 {\displaystyle {\frac {309}{7}}=44{\frac {1}{7}}} 。 孙子除法在9世纪初最早由花拉子米从印度介绍到阿拉伯国家，十世纪阿拉伯数学家阿尔乌几里德《印度的算术》叙述的早期除法和十一世纪波斯数学家伊本·拉班《印度算术原理》叙述的除法，也是不折不扣的孙子除法： 同样上、中、下三行的布列格式 同样上为商数，中为被除数，下为除数 同样的左边对齐 同样的自左往右运算 同样算一步后将除数右移一位 同样除数后面以空格代0 同样的商和余数，以三行格式表示。 用筹算进行除法运算时，如留有余数，则必须保留除数和余数，形成一对筹码，一在上一在下。刘徽《九章算术注》中，在上的筹称“实”，为在下的筹称为“法”：《孙子算经》中，在上的筹称为“子”，（分子），而在下的称为“母”（分母）。如右图一对筹码一在上一在下，1是子，7是母，构成分数 1 7 {\displaystyle {\frac {1}{7}}} 。 这种筹算分数的表示法，在9世纪由花拉子米介绍到阿拉伯国家。 1 3 + 2 5 {\displaystyle {\frac {1}{3}}+{\frac {2}{5}}} 将分子1，2 摆放在算筹板的左边，将分母3，5摆放在算筹板的右边 将分子与分母交叉互乘，将所得的积代替相应的分子 将分母相乘，将乘积摆放在算筹板右下方 将新的分子相加，其和摆放在算筹板右上方 结果： 1 3 + 2 5 {\displaystyle {\frac {1}{3}}+{\frac {2}{5}}} = 11 15 {\displaystyle {\frac {11}{15}}} 8 9 − 1 5 {\displaystyle {\frac {8}{9}}-{\frac {1}{5}}} 将分子8，1的算筹摆放在算筹板的左边 将分母9，5 摆放在算筹板的右边 分子分母互乘，以乘积代替相应的分子。 分母相乘，其积摆放在算筹板右下方 新分子相减为差，将差数摆放在算筹板右上方 结果： 8 9 − 1 5 {\displaystyle {\frac {8}{9}}-{\frac {1}{5}}} = 31 45 {\displaystyle {\frac {31}{45}}} 3 1 3 × 5 2 5 {\displaystyle 3{\frac {1}{3}}\times 5{\frac {2}{5}}} 将 3 1 3 {\displaystyle 3{\frac {1}{3}}} 和 2 5 {\displaystyle {\frac {2}{5}}} 在算筹板上布置成商、实、法形式。 商乘法加入实。 3*3 + 1=10； 5*5 + 2=27 实乘实：10*27=270 法乘法：3*5=15 实除法: 3 1 3 × 5 2 5 {\displaystyle 3{\frac {1}{3}}\times 5{\frac {2}{5}}} =18 此算法的实质是将带分数先化成假分数，再行乘法。 将分数在算筹板上以商、实、法的三行格式排列。 将商乘法，并入实。 将除数分数的分子、分母互换。 分子、分母相乘。 约分。 此算法的实质是将带分数先化成假分数，并将除数取倒数相乘。 九章算术给出求两个数最大公约数的方法，即辗转相除，以至最后余数相等，即为最大公约数。 左图为求 32450625 59056400 {\displaystyle {\frac {32450625}{59056400}}} 的最大公约数，并进行约分。 最大公约数为25，约分得 1298025 2362256 {\displaystyle {\frac {1298025}{2362256}}} 。 何承天发明名为调日法的分数内插法，反复将弱值分数与强值分数的分子分母相加已求得更佳的近似值。祖冲之用此法求的著名的圆周率 约率 22 7 {\displaystyle {\frac {22}{7}}} 和密率 355 113 {\displaystyle {\frac {355}{113}}} 孙子算经卷中：“今有積，二十三萬四千五百六十七步。問：為方幾何？答曰：四百八十四步九百六十八分步之三百一十一。 術曰：置積二十三萬四千五百六十七步，為實，次借一算為下法，步之超一位至百而止。上商置四百于實之上，副置四萬于實之下。下法之商，名為方法；命上商四百除實，除訖，倍方法，方法一退，下法再退，復置上商八十以次前商，副置八百于方法之下。下法之上，名為廉法；方廉各命上商八十以除實，除訖，倍廉法，從方法，方法一退，下法再退，復置上商四以次前，副置四于方法之下。下法之上，名曰隅法；方廉隅各命上商四以除實，除訖，倍隅法，從方法，上商得四百八十四，下法得九百六十八，不盡三百一十一，是為方四百八十四步九百六十八分步之三百一十一”。 右图为筹算开方 234567 ≈ 484 311 968 {\displaystyle {\sqrt {234567}}\approx 484{\tfrac {311}{968}}} 。 算法如下： 把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。 答案： 234567 ≈ 484 311 968 {\displaystyle {\sqrt {234567}}\approx 484{\tfrac {311}{968}}} 十一世纪波斯数学家伊本·拉班的开平方术，与孙子基本上相同，唯最后分母加1，所以平方根的小数比真值略小，孙子算法所得，则比真值略大。 九章算术卷第四《少广》有数道开立方题，其开立方术为后世开立方术的基础。 〔二二〕又有積一百九十三萬七千五百四十一尺、二十七分尺之一十七。問為立方幾何？ 答曰：一百二十四尺、太半尺。 開立方術曰：置積為實。借一算步之，超二等。議所得，以再乘所借一算為法，而除之。除已，三之為定法。復除，折而下。以三乘所得數置中行。復借一算置下行。步之，中超一，下超二等。復置議，以一乘中，再乘下，皆副以加定法。以定法除。除已，倍下、并中從定法。復除，折下如前。開之不盡者，亦為不可開。若積有分者，通分內子為定實。定實乃開之，訖，開其母以報除。若母不可開者，又以母再乘定實，乃開之。訖，令如母而一。 1937541 17 27 3 = 124 2 3 {\displaystyle {\sqrt[{3}]{1937541{\frac {17}{27}}}}=124{\frac {2}{3}}} 北宋数学家贾宪发明增乘开立方法和递增三乘开四次方术。 右图为贾宪增乘开立方解九章算术第四卷少广〔一九〕 今有積一百八十六萬八百六十七尺。問為立方幾何？ 答曰：一百二十三尺。 ： 1860867 3 = 123 {\displaystyle {\sqrt[{3}]{1860867}}=123} 九章算術　卷第八　方程： 〔一〕今有上禾三秉，中禾二秉，下禾一秉，實三十九斗；上禾二秉，中禾三秉，下禾一秉，實三十四斗；上禾一秉，中禾二秉，下禾三秉，實二十六斗。 問上、中、下禾實一秉各幾何？ 答曰： 上禾一秉，九斗、四分斗之一， 中禾一秉，四斗、四分斗之一， 下禾一秉，二斗、四分斗之三。 有三捆上等穀物，兩捆中等穀物，一捆下等穀物，共39斗；有兩捆上等，三捆中等，一捆下等，共34斗；有一捆上等，兩捆中等，三捆下等，共26斗。分別找出上、中、下等穀物的數量。 方程術曰，置上禾三秉，中禾二秉，下禾一秉，實三十九斗，於右方。中、左禾列如右方。 以右行上禾遍乘中行而以直除。又乘其次，亦以直除。然以中行中禾不盡者遍乘左行而以直除。左方下禾不盡者，上為法，下為實。實即下禾之實。求中禾，以法乘中行下實，而除下禾之實。餘如中禾秉數而一，即中禾之實。求上禾亦以法乘右行下實，而除下禾、中禾之實。餘如上禾秉數而一，即上禾之實。實皆如法，各得一斗。 將中列乘以右上角的數字，即3。 重複地從中列減去右列，直到中上角的數字為0。 將左列乘以右上角的數字，即3。 重複地從左列減去右列，直到左上角的數字為0。 對中列和左列使用上述消除算法後，矩陣將簡化成三角形狀： 一捆下等穀物的數量= 99 36 = 2 3 4 {\displaystyle {\frac {99}{36}}=2{\frac {3}{4}}} 斗 一捆上等穀物= 9 1 4 {\displaystyle 9{\frac {1}{4}}} 斗 一捆中等穀物= 4 1 4 {\displaystyle 4{\frac {1}{4}}} 斗 日本数学家关孝和在《三部抄》的《解伏题之法》中，將线性方程组的係數縱橫寫成方陣的形式，发明了行列式。關孝和還提出了兩種計算行列式的值的方法：逐式交乘法和交式斜乘法。 南宋数学家秦九韶将贾宪的增乘开方术推广，以求解高次方程。右图为秦九韶解下列四次方程式的程序。 − x 4 + 15245 x 2 − 6262506.25 = 0 {\displaystyle -x^{4}+15245x^{2}-6262506.25=0} 程序： 置6262506.25 为实 置15245 为上廉 置1为益隅 上廉超二位，益隅超三位。 置商20步 以商乘益隅入下廉 以下廉乘商生负廉 以负廉与正廉相消得正上廉 以商乘上廉为方 以方乘商除实 又以商乘益隅入下廉 以下廉乘商生负廉 负廉与正廉相消 商与上廉生方 商隅相乘入下廉 商与下廉生负廉 负廉与正廉相消 商又与隅生下廉 下廉三退，隅四退 无商（商第二位为0），以上廉并入方，并益隅入下廉 益隅并负廉与正方廉相消，命为母 约分 得 x = 20 1298025 2362256 {\displaystyle x=20{\frac {1298025}{2362256}}} 筹算的应用在朱世杰《四元玉鉴》中的四元术到达高峰。 三元术 今有股弦较除弦和与直积等。只云勾股较除弦较和与勾同。问弦几何？ 答曰：五步。 术曰：立天元一为勾，地元一为股，人元一为弦，物元一为开数。 ：得到 今式 − y − z − y 2 × x − x + x y z = 0 {\displaystyle -y-z-y^{2}\times x-x+xyz=0} 太 云式： − y − z + x − x 2 + x z = 0 {\displaystyle -y-z+x-x^{2}+xz=0} 三元式： y 2 − z 2 + x 2 = 0 ; {\displaystyle y^{2}-z^{2}+x^{2}=0;} 太 三元式与云式相消， 人天易位 人弦-->天勾 得： 前式 − x − 2 x 2 + y + y 2 + x y − x y 2 + x 2 y {\displaystyle -x-2x^{2}+y+y^{2}+xy-xy^{2}+x^{2}y} 太 及 后式 − 2 x − 2 x 2 + 2 y − 2 y 2 + y 3 + 4 x y − 2 x y 2 + x y 2 {\displaystyle -2x-2x^{2}+2y-2y^{2}+y^{3}+4xy-2xy^{2}+xy^{2}} 太 相消得 x 4 − 6 x 3 + 4 x 2 + 6 x − 6 = 0 {\displaystyle x^{4}-6x^{3}+4x^{2}+6x-6=0} 解之得 x = 5 {\displaystyle x=5} 天勾=5； 人天易位 天勾-->人弦 得弦=五步。 四元术 今有股乘五较与弦幂加勾乘弦等。只云勾除五和与股幂减勾弦同。问黄方带勾股弦共几何？ 答曰：一十四0 步。 草曰：立天元0 一为勾，地元一为股，人元一为弦，物元一为开数。得四元方程 1： 0 0 − 2 × y + x + z = 0 {\displaystyle -2\times y+x+z=0} ; 2： 0 0 − y 2 × x + 4 × y + 2 × x − x 2 + 4 × z + x × z = 0 {\displaystyle -y^{2}\times x+4\times y+2\times x-x^{2}+4\times z+x\times z=0} ; 3： 0 0 x 2 + y 2 − z 2 = 0 {\displaystyle x^{2}+y^{2}-z^{2}=0} ; 4： 0 0 2 × y − w + 2 × x = 0 {\displaystyle 2\times y-w+2\times x=0} ; 消元，物易天位 4 x 2 − 7 x − 686 = 0 {\displaystyle 4x^{2}-7x-686=0} 解之， 物易天位，得 十四步。 增乘开平方法 蘇州碼子 筹算 - 《中国大百科全书》第三版网络版. 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