数书九章
上QQ阅读APP看书,第一时间看更新

卷一

〔1〕卦发微

原文

问:易〔2〕曰,大衍之数五十〔3〕,其用四十有九〔4〕。又曰:分而为二以象两〔5〕,挂一〔6〕以象三〔7〕,揲〔8〕之以四,以象四时〔9〕。三变而成爻〔10〕,十有八变而成卦。欲知所衍之术及其数各几何。

注释

〔1〕蓍:用来作为占卜工具的一种草。1

〔2〕易:即儒家经典《周易》。儒家“五经”中的《易经》本包括《连山》《归藏》《周易》三个部分,又称“三易”,后前两者失传,后者加上战国时期的《易传》,统称为《周易》。“大衍之数……四十有九”“分而为二……以象四时”这两句出自《周易·系辞上传》。1

〔3〕大衍之数:衍,即“演”,推演,推导。“五十”是《周易》中的基本数字,是推演的基础。对于其来历,各家有许多不同说法,例如:邵雍认为“天数二十有五之倍数,合五十”;马融认为“太极生两仪,两仪生日月,日月生四时,四时生五行,五行生十二月,十二月生二十四气,合五十”;郑玄认为“天地之数五十有五,以五行通气,凡五行减五,合五十”;朱熹认为“盖以河图中宫天五乘地十而得之”,等等。1

〔4〕其用四十有九:卜筮之人用匣子装50根蓍草,合“大衍之数”。然后从中取出一根象征“太极”,不用于占卜。因此实际使用的只有49根。有:通“又”。1

〔5〕两:阴和阳,即“两仪”。1

〔6〕挂一:从其中一部分取出一根,挂在一边。1

〔7〕三:天、地、人,即“三才”。1

〔8〕揲:读shé,用手点数成捆的东西。这里指数蓍草。1

〔9〕四时:春、夏、秋、冬。1

〔10〕爻:卦的基本符号,一个“—”(阳爻)或一个“--”(阴爻)。三爻为一卦,卦两两组合又能得到六十四卦。1

译文

问:《周易》里说,(1)占卜时要取50根蓍草,其中任选一根不用,只用剩下的49根。(2)还说将这些蓍草任意分成两份,以象征两仪。(3)从其中一份里取出一根,这样就成了三部分,象征三才。(4)将不等于1的两份分别按照每次四根来数,象征着四季。(5)将余数和之前取出的一根放在一起。(6)剩下所有的蓍草重复(2)至(5)的过程两次。三次结束之后,所得总数有四种可能:24、28、32、36。将之再除以4,得到6、7、8、9,其中奇数为阳爻,偶数为阴爻,即得到了一“爻”。经过十八次,就能得到六爻组成的一卦。请问这一过程的推演方法和其中的得数。

□□太极八卦发生图

太极为阴阳二气的合抱体,为万物衍生前的氤氲状态。西汉马王堆出土的《易系辞传》记载有“古者伏羲氏之王天下也,仰则观象于天,俯则观法于地,观鸟兽之文与地之宜,近取诸身,远取诸物,于是始作八卦”的内容,描述成卦的过程:先是有太极,此时尚未开始分开蓍草,分蓍占后,便形成阴阳二爻,称作两仪。二爻相加,有四种可能的形象,称作四象。由它们各加一爻,便成八卦。

原文

答曰:

衍母〔1〕一十二。衍法三。一元衍数二十四。二元衍数一十二。三元衍数八。四元衍数六。

已上〔2〕四位衍数计五十。

一揲用数一十二。二揲用数二十四。三揲用数四。四揲用数九。

已上四位用数计四十九。

注释

〔1〕衍母、衍数、用数:将在下文“大衍总数术”中具体解释。1

〔2〕已上:即“以上”。1

译文

答:

衍母为12。共有三种计算方法。

四个衍数分别为24、12、8、6。它们的和为50(大衍之数)

四个用数分别为12、24、4、9。它们的和为49(其用为四十九)

原文

大衍总数术曰:

置诸问数〔1〕,类名有四。一曰元数〔2〕,谓尾位〔3〕见单零者。本门揲蓍、酒息、斛粜、砌砖、失米之类是也。

二曰收数〔4〕,谓尾位见分〔5〕〔6〕者。假令冬至三百六十五日二十五刻。欲与〔7〕甲子六十日,为一会而求积日之类。

三曰通数〔8〕,谓诸数各有分子母者,本门问一会积年〔9〕是也。

四曰复数〔10〕,谓尾位见十或百及千以上者。本门筑堤并急足之类是也。

注释

〔1〕问数:作为计算对象的数字。1

〔2〕元数:正整数。1

〔3〕尾位:一个数字末尾的一位或几位数。1

〔4〕收数:小数。1

〔5〕分:十分之一。1

〔6〕厘:百分之一。1

〔7〕与:相会,相遇。1

〔8〕通数:分数。1

〔9〕一会积年:本章下文将出现的问题。1

〔10〕复数:10的正整数倍。1

译文

大衍总数术内容如下:

所有要计算的数字可被分为四类。

第一类叫作元数,指的是末位是个位数的数字(正整数)。这一章中涉及揲蓍、酒息、斛粜、砌砖、失米等方面的问题都是使用这类数字。

第二类叫作收数,指的是末位有分、厘的数字(小数)。假设一年有365日25刻,要求冬至和甲子日(60天为一个循环)再次相会所需要的天数,那么就会出现这类数字。

第三类叫作通数,指的是有分子、分母的数字(分数)。这一章中求“一会积年”的问题就会用到这类数字。

第四类叫作复数,指的是末位是十、百、千的数字(10的正整数倍)。这一章中与筑堤、急足等有关的问题会使用这类数字。

译解

首先将需要计算的原始数字按照形式分为四类:正整数、小数、分数,以及10的倍数。各自在本卷不同的问题中使用。

原文

元数者,先以两两连环求等〔1〕。约〔2〕奇弗〔3〕约偶。或约得五,而彼有十。乃约偶而弗约奇。或元数俱偶,约毕可存一位见偶。或皆约而犹有类数〔4〕存,姑〔5〕置之。俟〔6〕与其他约徧〔7〕,而后乃与姑置者求等约之。或诸数皆不可尽类,则以诸元数,命曰复数,以复数格〔8〕入之。

注释

〔1〕连环求等:等,等数,即最大公约数。连环求等,即求最大公约数的“辗转相减法”,又称“尼考曼彻斯法”。1

〔2〕约:用等数去除元数。1

〔3〕弗:不。1

〔4〕类数:具有公约数的两个或以上的数字。1

〔5〕姑:姑且,暂且。1

〔6〕俟:等待。1

〔7〕徧:同“遍”,全部。1

〔8〕格:与每一种数字类型相应的运算方法。1

译文

对于元数,先将它们两两用辗转相减的方法求出最大公约数,然后用这个公约数去约这两个数,只约奇数不约偶数。如果两个数的末位一个是5,另一个是0,那就约偶数而不约奇数。如果元数都是偶数,约后的结果是保留一个偶数。如果约过之后两个数仍然有公约数,暂且将其中之一搁置。等到另一个数和其他数都遍求等约之后,再将搁置的数和其他各数求等约。如果两两遍求等约之后,其中仍然存在有公约数的两个或多个数,就将它们看作复数,用复乘求定的方法来处理(见下文)

译解

辗转相减法,例如求120和36的最大公约数,就用大数不断减去小数,120-36=84,84-36=48,48-36=12,此处将两数交换,仍用大数减去小数,36-12=24,24-12=12,12-12=0。因此12就是120和36的最大公约数。

约奇不约偶,例如21和14的公约数是7,21÷7=3,保留14不约,化约为3和14。

如果两个数是45和80,公约数为5,80÷5=16,保留45不约,得到45和16。

如果几个数都是偶数,例如8和10,公约数为2,应当保留8,10÷2=5,得到8和5,就没有公约数了。

如果其中两个数是245和350,公约数为35,保留245,350÷35=10。仍然有公约数,暂且不去管,将其中一个数,比如10保留,用245和其他各数求等化约结束后,再用10和其他各数求等化约。

□伏羲六十四卦方圆图

伏羲六十四卦为先圣伏羲所发明,卦辞可用于占卜。每卦均有其深刻意涵,依据卦意可推算世事的吉凶祸福,是古人管窥天命和时运的精算工具。

原文

收数者,乃命尾位分厘作单零〔1〕,以进〔2〕所问之数。定位讫〔3〕,用元数格入〔4〕之。或如意〔5〕立数为母,收进分厘,以从所问,用通数格入之。

注释

〔1〕单零:10的幂指数单位。1

〔2〕进:进位,指将某个数位向前提升,例如十分位进为个位,个位进为十位等。1

〔3〕讫:终了,完毕。1

〔4〕入:计算。1

〔5〕如意:令人满意的,这里指对原问数来说是合适的。1

译文

对于小数,可以将其小数点后的位数作为单位n,将小数乘以10n,以提升其位数来作为问数。数位转化完毕后,再用元数的方法去处理它。或者选择合适的数字作为分母,将小数部分转化为分数,作为新的问数,就可以用通数的方法去计算了。

译解

例如原数为6.28,小数后有两位,就用10的2次方100去乘,6.28×100=628,即进位得到628,就可以用元数(正整数)的方法去计算了。或者也可以将6.28转化为,用通数(分数)的方法计算。

原文

通数者,置问数,通分内子〔1〕,互乘之〔2〕,皆曰通数。求总等,不约一位,约众位,得各元法数,用元数格入之;或诸母数繁,就分从省通之者,皆不用元,各母仍求总等,存一位,约众位,亦各得元法数,亦用元数格入之。

注释

〔1〕通分内子:将带分数化为假分数。1

〔2〕互乘之:用每个分子遍乘其他分数的分母。1

译文

为了将分数化作问数,要先将其中的带分数都化为假分数,然后用每个分子遍乘其他分数的分母,得到的一组整数也叫作通数。求出这些通数的最大公约数,保留一个通数,用最大公约数约其他所有通数,得到的一组数叫作元法数,可以用元数的方法来计算。如果各分母都很大,计算起来麻烦,就在分别化为假分数之后,先不求元法数,而是求出各分母的最大公约数,仍然保留一个分母不约,去约其他分母,再进行上面的遍乘等步骤,也能够得到元法数,也就能用元数的方法去计算了。

译解

例如原数为

将其中的带分数化为假分数得到:

分子互乘分母:2×7×9=126;19×3×9=513;13×3×7=273。得到3个通数。它们有公约数3。保留126,513÷3=171,273÷3=91。得到元法数126、171、91。

原文

复数者,问数尾位见十以上者,以诸数求总等,存一位,约众位,始得元数。两两连环求等,约奇弗约偶,复乘偶;或约偶弗约奇,复乘奇。或彼此可约,而犹有类数存者,又相减以求续等,以续等约彼,则必复乘此,乃得定数〔1〕。所有元数、收数、通数三格,皆有复乘求定之理。悉可入之。

注释

〔1〕定数:两两之间都不再有公约数的一组数。1

译文

复数,也就是10的倍数,先求出它们的最大公约数,保留一个复数,用这一公约数去约其他复数,就能得到一组元数。再对这些数进行两两连环求公约数,每次都是用公约数约奇数而不约偶数,同时用这个公约数去乘偶数;或者相反地,用公约数约偶数,同时乘奇数。如果这样得到的一组数中,仍然有某两个数之间有公约数,就用辗转相减的方法求出它们的最大公约数,然后用这个公约数约其中一个数,同时乘另一个数。最后使得这一组数中,任意两个数之间都没有公约数,这样一组数就叫作定数。这种方法叫作“复乘求定”,是对于所有的元数、收数、通数都适用的计算方法。

译解

例如:有一个数字xx mod 120=3,x mod 150=33,x mod 180=123。求x。(本书以mod表示前数除以后数得到的余数)

这组元数为120、150、180,最大公约数30。保留120,约其他二数,150÷30=5,180÷30=6,得到元数:120、5、6。

先用120和5求公约数,得到5,120÷5=24,5×5=25,数组变为:24、25、6。

再用24和6求公约数,得到6,24÷6=4,6×6=36,数组变为:4、25、36。

再用25和36求公约数,得到1,两数均不变。

现在4和36仍然有公约数,辗转相减,得到公约数4,4×4=16,36÷4=9,数组变为:16、25、9,就是定数。

原文

求定数,勿使两位见偶,勿使见一太多,见一多则借用繁,不欲借,则任得一,以定相乘为衍母,各得衍数。或列各定为母于右行,各列天元一〔1〕为子于左行,以母互乘子〔2〕,亦得衍数。

注释

〔1〕天元一:即数字1,“天元”强调这个数字作为正整数的起始,在计算中的重要性。1

〔2〕母互乘子:对于每一个分数,用其他所有数的分母来乘本数的分子。1

□天元表示式

《测圆海镜》中的天元术是其最重要贡献之一。天元术就是设“天元一”为未知数,根据问题的已知条件,列出两个相等的多项式,经相减后得出一个高次方程(天元开方式)。其表示方法为:在一次项系数旁边记一“元”字,“元”以上的系数表示各正次幂,“元”以下的系数表示常数和各负次幂。图为方程2x2+18x+316=0的天元表示式。

译文

求定数的时候,其中不能有两个或以上的偶数,也不要有太多的1。1如果太多会使计算中“借用”(借用的计算方法见后文)太多。如果不想借用,可以任意得到一个1,然后将所有定数相乘,得数叫作“衍母”。再用各定数去约衍母,得到的各个数字叫作“衍数”。或者也可以把各定数在右侧排成一列作为“定母”,左侧先确定一列都为1的“子”,再用每个子去乘其他所有的分母,也能够得到衍数。

译解

定数中如果有两个或两个以上的偶数,说明至少还有公约数2,不满足定数的要求。

如果对于120、5、6,使用“复乘求定”的方法,120和5先化作600和1,600和6再化作3600和1,那么这一组定数就是:3600、1、1,其中的1太多了,影响后面的计算。

可以在第一次求等化约时得到24、25、6(过程见上文),第二次用24×6=144,6÷6=1,得到144、25、1,作为定数。

144×25×1=3600,是衍母。

3600÷144=25,3600÷25=144,3600÷1=3600。25、144、3600就是衍数。

或者也可以列下表:

定母
1 144
1 25
1 1

1×25×1=25,1×144×1=144,1×144×25=3600。也得到各衍数。

原文

诸衍数,各满〔1〕定母,去之,不满曰奇〔2〕。以奇与定,用大衍求一入之,以求乘率。或奇得一者,便为乘率。

注释

〔1〕满:这里指整数倍。1

〔2〕奇:和奇偶概念中的奇数不同,指的是减掉定母的整数倍之后剩下小于定母的部分,即相除之后的余数。本书后面这一意义的“奇”大量出现,应当注意区分。1

译文

从各衍数当中,减掉定母的整数倍,剩下小于定母的部分,叫作奇数。运用这个奇数和定数,使用大衍求一术来计算,就能求出乘率。如果奇数是1,那么乘率就是1。

译解

仍以16、25、9作为定数。衍母=16×25×9=3600。

衍数:25×9=225,16×9=144,16×25=400。

奇数:225 mod 16=1,144 mod 25=19,400 mod 9=4。

原文

大衍求一术云:

置奇右上,定居右下,立天元一于左上。先以右上除右下,所得商数与左上一相生〔1〕,入〔2〕左下。然后乃以右行上下,以少除多,递互〔3〕除之,所得商数,随即递互累乘,归〔4〕左行上下。须使右上末后奇一而止。乃验〔5〕左上所得,以为乘率。或奇数已具单一者,便为乘率。

注释

〔1〕相生:相乘。1

〔2〕入:放入,填入。1

〔3〕递互:递推,交互。1

〔4〕归:归入,放入。1

〔5〕验:验收。1

译文

大衍求一术这样计算:

将奇数置于右上,定数放在右下,1放在左上。先计算右上除右下,得到的商与左上的1相乘,结果放在左下,余数则代替右下。然后用右边上下的数字以小除大,反复这样除下去,每次都用余数代替右边的被除数,同时用所得商乘以除数在左侧的同行数并加上被除数在左侧的同行数,然后代替被除数在左侧的同行数,这样一直乘和累加下去。要让右上的奇数为1,才能停止。这时左上的数字就是乘率。或者奇数一开始就是1,那么乘率就是1。

译解

奇数1=1,乘率1=1。

1 19
0 25

25 mod 19=6,商1。

1 19
1 6

19 mod 6=1,商3。

1×3+1=4 1
1 6

右上=1,则乘率2=左上=4。

1 4
0 9

9 mod 4=1,商2。

1 4
2 1

4 mod 1=1,商3,这是为了得到余数1。

2×3+1=7 1
2 1

右上=1,则乘率3=左上=7。

原文

置各乘率,对乘衍数,得泛用。并泛用,课〔1〕衍母,多一者为正用;或泛多衍母倍数者,验元数,奇偶〔2〕同类者,损其半倍。或三处同类,以三约衍母,于三处损之,各为正用数。或定母得一,而衍数同衍母者,为无用数。当验元数同类者,而正用至多处借之。以元数两位求等,以等约衍母为借数,以借数损有以益其无,为正用。或数处无者,如意〔3〕立数为母,约衍母,所得,以如意子乘之,均借补之,或欲从省勿借,任之为空,可也。然后其余各乘正用,为各总,并总,满衍母去之,不满为所求率数。

注释

〔1〕课:按一定的标准检验。《管子·七法》:“成器不课不用,不试不藏。”1

〔2〕奇偶:这里偏指“偶”。1

〔3〕如意:任意。1

译文

得到各个乘率之后,分别去乘对应的衍数,得到的积叫作“泛用数”。将泛用数的和与衍母比较,其等于衍母加1时,这些数就叫作“正用数”。或者,如果泛用数之和是衍母的多倍,那么就须检查最初的一组元数,如果有两个元数有公约数,那么就从二者对应的泛用数里各自减去衍母的一半;有三个元数有公约数,就从三者对应的泛用数里各自减去衍母的。以上操作都能得到正用数。当某个定母为1时,衍母和衍数相等,就没有用数了,此时如果对应元数和另外一个元数之间有公约数,那么可以借用正用数。方法是求出这两个元数的公约数,然后用这个公约数去除衍母得到“借数”,将这个借数补充到没有用数的地方,作为正用数。如果多个地方都没有用数,也可以用衍母的任意一个因子去约衍母,用其结果任意乘一个分子,得到借数,没有用数的位置都用这个借数去补充。或者想要简化,不想用借数,也可以就让它们空着。然后用原题目中的各个余数与相应的正用数相乘,结果称作“各总”,它们的和称为“总数”。用衍母除总数,得到所求的结果。

译解

泛用数:225×1=225,144×4=576,400×7=2800。

225+576+2800=3601。3601 mod 3600=1,商为1。这三个数就是正用数。

各总:225×3=675,576×33=19008,2800×123=344400。

总数:675+19008+344400=364083。

x=364083 mod 3600=483。

原文

本题术曰:

置诸元数,两两连环求等,约奇弗约偶。遍约毕,乃变元数皆曰定母,列右行。各立天元一为子,列左行。以诸定母互乘左行之子,各得名曰衍数。次以各定母满去衍数,各余名曰奇数。以奇数与定母,用大衍术求一。(大衍求一术云:以奇于右上,定母于右下,立天元一于左上。先以有上下两位,以少除多,所得商数,乃递互乘内左行,使右上得一而止,左上为乘率。)得乘率。

译文

解答方法如下:

对于各元数,先用两两连环求等的方法,求出公约数之后,约奇数而不约偶数。用这种方法得到定数之后,就将它们变为定母,列在右行。左行相应位置各列一个1作为子。用左边的每个子去乘右边不同行的各个定母,得到的数字都是衍数。然后再用每个定母去除衍数,得到的余数就是奇数。利用奇数和定母,使用前文的大衍求一术(大衍求一术的具体做法见上文),就能得到乘率。

译解

本题的元数就是每次数出的蓍草根数1、2、3、4,它们连环求等化约之后得到定数1、1、3、4。

衍数:1×3×4=12、1×3×4=12、1×1×4=4、1×1×3=3。

奇数:12 mod 1=1,12 mod 1=1,4 mod 3=1,3 mod 4=3。

用前面的大衍求一术,得到乘率:1、1、1、3。

原文

以乘率乘衍数,各得用数。验次所揲,余几何〔1〕,以其余数乘诸用数,并名之曰总数。满衍母去之,不满为所求数,以为实〔2〕,易以三才为衍法〔3〕,以法除实,所得为象数。如实有余,或一或二。皆命作一,同为象数。其象数得一,为老阳;得二,为少阴;得三,为少阳;得四,为老阴。得老阳画重爻;得少阴画拆爻;得少阳画单爻;得老阴画交爻〔4〕。凡六画乃成卦。

注释

〔1〕几何:多少。1

〔2〕实:被除数。1

〔3〕法:除数。1

〔4〕重爻、拆爻、单爻、交爻:都是爻象的名称。1

译文

用各乘率去乘对应的各衍数,所得各积都是用数。检验每次将蓍草二分之后分别以1、2、3、4去除所得的余数是多少。用这些余数去乘各自的用数,所得结果之和就是总数。总数除以衍母所得余数为所求结果,小于衍母的总数自身便是得数。将得数作为被除数,按照《周易》,用3作为除数去除,得到的是“象数”。如果不能整除,余数是1或2,都将其规定为1,加入象数中。象数1是老阳,画成重爻的符号;2是少阴,画成拆爻;3是少阳,画成单爻;4是老阴,画成交爻。共六画成为一卦。

译解

用数:1×12=12、1×4=4、3×3=9。

余数取决于实际占卜中每次剩下的蓍草根数。余数×用数=各总。各总之和为总数。总数除以衍母所得的系数则为得数。

与普通计算问题不同的是,占卜问题求出得数后还要除以3得到“象数”,并据此得到卦象,即“爻”。

原文

草曰:

置一、二、三、四,列右行;立天元一,列左行〔1〕

以右行一、二、三、四互乘左行异子一,弗乘对位本子〔2〕,各得衍数。

乃并左行衍数四位,共计五十,故易曰大衍之数五十。算理不可以此五十为用,盖〔3〕分之为二,则左右手之数,奇偶不同。见阴阳之伏〔4〕数必须复求用数。先名此曰衍数,以为限率〔5〕,遂乃复以一二三四之元数,求等数,约定。按前术,以两两连环求等约之,先以一与二求等,一与三求等,一与四求等,皆得一,各约奇弗约偶,数不变。次以二与三求等,亦得一,约奇弗约偶,数亦不变。及以二与四求等,乃得二,此二只约副数〔6〕二,变为一,而弗约四。次以三与四求等,亦得一,约奇,亦不变。所得一、一、三、四,各为定数母,列右行。仍各立天元一为子,列左行。

注释

〔1〕右行,左行:《数书九章》原版为竖排,现依今人习惯横排,右为上,左为下,全书列表皆同于此。1

〔2〕对位本子:同一行左列相应位置的“子”。1

〔3〕盖:因为。1

〔4〕伏:潜伏,隐藏。1

〔5〕限率:计算的范围。1

〔6〕副数:第二个数,这里指位于第二位的元数2。1

译文

这一题目的演算过程如下:

把1、2、3、4放在右列,左列都放入1。用左列的1分别去乘右列与之不同行的各数,得到各个衍数:24、12、8、6。它们的和是50,所以《周易》说“大衍之数五十”。但这个“50”在算术中不能直接使用,因为将它分为两部分,不能满足两边一奇一偶的要求。所以要想得到其中隐藏的阴阳之数,必须再求出用数。先将这个“50”称作大衍之数,以它为“限率”。再将1、2、3、4作为元数,求出等数,约成定数。按照前面介绍的方法,将它们两两连环求等再化约,先用1和2、3、4求等,等数都是1,各自约奇数不约偶数,各数并不改变。再将2和3求等,也得到1,仍约奇数不约偶数,约毕,数也不变。用2和4求等时,等数是2,这个等数只约在前面的2,不约后面的4。再用3和4求等,也得到1,用它去约奇数3,也不变。得到的1、1、3、4都是定数,列在右边成为定母。仍然在左边放一列1作为子。

术解

衍数:2×3×4=24,1×3×4=12,1×2×4=8,1×2×3=6。

24+12+8+6=50。

各元数连环求等化约,得到1、1、3、4,为定数/定母。

原文

以右行定母一、一、三、四互乘左行各子一,惟不对乘本子,毕。左上得一十二,左副〔1〕得一十二,左次〔2〕得四,次下得三,皆曰衍数。

次以各母满去衍数,其上母去衍一十二,奇一。其副母一亦去副子一十二,亦奇一。其次母三去次衍四,亦奇一。其下母四,欲去下子三,则不满,便以三为左下奇数。

凡奇数得一者,便为乘率。今左下衍是三,乃与本母四,用大衍求一术入之,列衍奇三于右上,定母四于右下,立天元一于左上,空其左下。

先以右上少数三,除右下多数四,得一为商。以商一乘左上天元一,只得一,归左下,其右下余一。

次以右下少数一,除右上多数三,须使右上必奇一算乃止。遂于右行最上商二,以除右衍,必奇一。乃以上商,命右下定余一,除之,右衍余一。

次以商二与左下归数相乘,得二,加入左上天元一内,共得三。

今验右上衍余,得一当止。乃以左上三为乘率。与前三者乘率各一,与衍定图衍数对列之,通计三行。

注释

〔1〕左副:左列第二个。1

〔2〕左次:左列第三个。1

译文

分别用左行的1和右行定数1、1、3、4中不同行的数连乘后,左上得到12,左二得到12,左三得到4,左下得到3,都是衍数。

其次用每个定数除衍数,右上1除左上12,得到奇数1。右二1除左二12,奇数为1。右三3除左三4,奇数为1。右下4除左下3,因为不够除,所以奇数就是3。

凡是奇数为1的,乘率就是1。现在左下衍数被除后的奇数是3,相对的定母是4,用大衍求一术来计算,将3放在右上,4放在右下,1放在左上,左下为0。

先用右上较小的3除右下较大的4,得到的商是1。用这个商1去乘左上的1,也只能得到1,放在左下,余数1放在右下。

其次用右下较小的1除右上较大的3。必须让右上为1的时候计算才能停止,所以取商为2,才能将右上替换成奇数1。于是将商2写在右列最上方,规定右下的1除3之后的余数是1,写在右上。

再次用商2与左下刚才放入的1相乘,得数2与左上1相加,得3,放在左上。

现在检验发现右上衍数的余数已经是1了,于是计算停止,这时左上的3就是乘率。它和前面已经求出的三个为1的乘率,以及相应的衍数、定数共同排成三列。

术解

衍数:1×3×4=12、1×3×4=12、1×1×4=4、1×1×3=3。

奇数:12 mod 1=1,12 mod 1=1,4 mod 3=1,3 mod 4=3。

奇数为1的乘率也是1。需要求乘率4

1 3
0 4

4 mod 3=1,商1。

1 3
1 1

3 mod 1=1,为了得到奇数1,商2。

3 1
1 1

右上=1,乘率4=左上=3。

原文

以乘率对乘左行毕,左上得一十二,左副得一十二,左次得四,左下得九,皆曰泛用数。次以右行一、一、三、四相乘,得一十二,名曰衍母。

复推〔1〕元用等数二,约副母二为一,今乃复归之为二,遂用衍母一十二,益〔2〕于左副一十二内,共为二十四。

今验用数图,右行之一、二、三、四,即是所揲之数。左行一十二,并二十四,及四与九并之,得四十九,名曰用数,用为蓍草数,故易曰其用四十有九是也。

注释

〔1〕推:推想,回想。1

〔2〕益:增加,相加。1

译文

用各乘率去乘同行的衍数,左上得到12,左二12,左三4,左下9,这些都是泛用数。再用最右列的四个数相乘,得到12,就是衍母。

之前对元数进行求等的时候,用等数2将第二个元数2约成了1,现在重新将它回归为元数2,并将衍母12加入泛用数左二中,得到24,左列成为定用数。

现在检查上面的“用数图”,右行的1、2、3、4就是揲数的元数。左行的12、24、4、9相加,得到49,叫作“用数”,也就是用来占卜的蓍草数,所以《周易》说“其用四十有九”。

术解

泛用数:1×12=12、1×12=12、1×4=4、3×3=9。

定用数2=12×2=24。

用数图

用数=12+24+4+9=49。

原文

假令用蓍四十九,信手分之为二,则左手奇,右手必偶;左手偶,右手必奇。欲使蓍数近大衍五十,非四十九或五十一不可。二数信意分之,必有一奇一偶。故所以用四十九,取七七〔1〕之数始者,左副二十四扐〔2〕,益一十二,就其三十七泛为用数,但三十七无意义,兼蓍少太露,是以用四十有九。凡揲蓍求一爻之数,欲得一、二、三、四。出于无为〔3〕,必令揲者不得知,故以四十九蓍,分之为二,只用左手之数。假令左手分得三十三,自一一揲之,必奇一,故不繁揲,乃径挂一。故易曰:分而为二以象两,挂一以象三。此后,又令筮人以二二揲之,其三十三,亦奇一。故归奇于扐。又令之以三三揲之,其三十三,必奇三,故又归奇于扐,又令之以四四揲之,又奇一,亦归奇于扐。与前挂一,并三度揲,通有四扐,乃得一、一、三、一。其挂一者,乘用数图左上用数一十二;其二揲扐一者,乘左副用数二十四;其三揲扐三者,乘左次用数四,得一十二;其四揲扐一者,乘左下用数九。

挂一,得一十二;扐一,得二十四;扐三,得一十二;又扐一,得九,并为总数。

注释

〔1〕七七:来自佛教观念,认为人死后在六道轮回,以七日为一期寻求转生,如果七日不得则再延续七日,直到第七个七日结束,一定能够得到生缘。因此形成民间七日一祭奠,直到“七七”的习俗。1

〔2〕扐:音lè,在数蓍草占卜时,将草夹在手指之间。1

〔3〕无为:道家哲学观念,指顺应事物规律,不去刻意强求。这里指占卜的随机性。1

□战国时代的数字

中国最早的数字出现于商周时代的甲骨文。甲骨文在记数时常使用“言文”,即将两个字合起来写。如一百在“一”之下加上一横表示二百,再加上一横表示三百等,但其音读起来还是不同音。图中记录了战国时期的数字变化情况。

译文

假设用49根蓍草,任意分成两份,那么左手如果是奇数,右手一定是偶数;左手是偶数,右手一定是奇数。想要让蓍草数接近大衍术50,就必须是49或者51才行。这两个数随意分成两份,必定是一个奇数一个偶数。之所以开始用49,因为它是“七七”之数。上页图左列第二位是24,如果再增加12,就和泛用数37接近。但37没有特殊的意义,而且蓍草数也太少,所以使用49。但凡是以数蓍草来得到一个爻数的,都是想要得出1、2、3、4这几个数。占卜是随机的,要让算卦的人自己也不能知道结果,所以用49根蓍草,随意分成两份,只用左手的草数。假设左手分到33根,那么一根一根地数,余数必定是1,所以不再麻烦地去数,而是直接拿出一根来夹在手指之间。所以《周易》说:“分而为二以象两,挂一以象三。”然后再让占卜者两根两根地数,总数33,余数也是1,夹在手指间。再三根三根地数,因为总数是33,余数必定是3,也夹在手指间。再四根四根地数,又得到余数1,也夹在手指间。根据前面所述的这些“挂一”、三次数蓍草、四次夹在手指间的方法,能够得到1、1、3、1这四个数字。在用数图中,用“挂一”的1去乘左上的用数12;用第二个数1去乘左二的用数24;用第三个数3去乘左三的用数4,得到12;用第四个数1去乘左下的用数9。“挂一”得到12,数三次后各得到24、12、9,这四个数的和就是总数。

术解

用49根蓍草来占卜,任意分成两份,假设左手分到33根,右手就分到16根,一奇一偶。

33 mod 1=1,33 mod 2=1,33 mod 3=3,33 mod 4=1。

总数=1×12+1×24+3×4+1×9=57。

原文

并此四数总得五十七。不问所握几何,乃满衍母一十二去之,得不满者九。或使知其所握三十三,亦满衍母去之,亦只数九数,以为实。用三才衍法约之,得三。乃画少阳单爻。或不满得八得七为实,皆命为三。他皆仿此。

术意:谓揲二、揲三、揲四者,凡三度,复以三十三从头数揲之。故曰:三变而成爻;既卦有六爻,必一十八变。故曰:十有八变而成卦。

译文

将这四个数加起来,和是57。不管左手握有多少根蓍草,用衍母12去除57,得到的余数是9。或者已经知道左手握有33根蓍草,用衍母12去除,余数也是9,作为被除数。用3去除9,得到象数3。于是画出少阳单爻的卦象。如果不足9,就将余数8或7作为被除数,象数也都规定为3。其他的情况都仿照这样计算。

这一方法的含义是:用2根、3根、4根分别数过,共3次,而33则等于从头一一数过一次。所以《周易》说:“三变而成爻。”既然一卦有6爻,就必须要数18次。所以《周易》又说:“十有八变而成卦。”

术解

衍母=1×1×3×4=12。

57 mod 12=9。或33 mod 12=9。

9÷3=3,即“少阳”。

古历会积

原文

问:古历〔1〕冬至以三百六十五日四分日之一,朔〔2〕策以二十九日九百四十分日之四百九十九,甲子〔3〕六十日各为一周。假令至淳祐丙午十一月丙辰朔,五日庚申冬至,初九日甲子,欲求古历气〔4〕、朔、甲子一会〔5〕,积〔6〕年积月积日,及历过〔7〕未至〔8〕年数各几何。

答曰:一会积一万八千二百四十年,二十二万五千六百月,六百六十六万二千一百六十日。

历过,九千一百六十三年。

未至,九千七十七年。

□圭表之图

圭表,是古代中国用于度量日影长度的一种天文仪器,由“圭”和“表”两个部件组成。直立于地面以测日影的标杆或石柱,叫“表”;平置于地面以测定表影长度的石制刻板,叫“圭”。“圭”与“表”垂直,其一头连着表基,一头伸向正北。不同的季节,太阳的出没方位和正午高度不同,并有周期变化。在露天将圭平置于表的北面,根据圭上表影,测量、比较和标定日影的周日、周年变化,便可以测出时辰、求得周年常数、划分季节和制定历法。

注释

〔1〕古历:古代的历法,这里指殷商以来确定的历法。1

〔2〕朔:阴历每月的初一称为“朔”,最初古人是以新月初现为一月之始。1

〔3〕甲子:古历用干支法记日,即将十天干——甲、乙、丙、丁、戊、己、庚、辛、壬、癸,和十二地支——子、丑、寅、卯、辰、巳、午、未、申、酉、戌、亥一一配合,从甲子日起,到第二个甲子日之前,共60日,为1周。1

〔4〕气:古历将一年分为二十四个“气”,即今天所谓的“节气”。1

〔5〕会:指冬至、朔日、甲子日出现在同一天。1

〔6〕积:累积,这里指经过的时间。1

〔7〕历过:即上元积年。上元,古代历算所确立的一个基准点,取上古某一年甲子日的开始时刻(0时)同时也是冬至和朔日,即这一年中出现“日月合璧、五星连珠”(日月的经纬度相同,五大行星在同一方位)的时刻。上元积年,即上元到当前所经历的年数。1

〔8〕未至:到下一个上元还未经历的年数。1

译文

问:已知古历将两次冬至之间的日作为一年,日为一个朔月,60日为甲子一周。假设淳祐丙午年(淳六年)十一月初一为丙辰日,初五庚申为冬至日,初九为甲子日,求古历中气、朔、甲子两次出现在同一天的日期中间相隔多少年、多少月、多少天?淳祐六年的上元积年是多少,到下一个上元还有多少年?

答:气、朔、甲子两次相会间隔累积年数为18240年,累积月数为225600月,累积天数为6662160天。淳祐六年的上元积年是9163年。距离下一个上元还有9077年。

□四正卦与二十四节令图

《周易》记载有天象、物象、气象的时间节律。其中,最基本的时间节律为四正卦与二十四节令,即坎、兑、震、离每一卦与六个节令的对应组合。

原文

术曰:

同前置问数,有分者通之,互乘之得通数。求总等,不约一位,约众位,得各元法。连环求等,约奇弗约偶,各得定母。本题欲求一会,不复乘偶。以定相乘,为衍母,定除母,得衍数,满定去衍,得奇,以大衍入之,得乘率,以乘衍数,得泛用数。并〔1〕诸泛以课衍母,如泛内多倍者损之,乃验元数同类处,各损半倍。或三位同类者,三约衍母,损泛。各得正用。

注释

〔1〕并:相加,求和。1

译文

本题计算方法如下:

和前文一样先确定问数。如果有带分数就化为假分数,用每个分子去乘其他所有分母,得到通数。求出它们的公约数,保留一位不约,去约其他各数,得到各个元法数。使用连环求等的方法,用等数去约奇数,不约偶数,得到各个定母。这道题目求的是最小的正整数解,所以不需要再复乘。用各定数相乘得到衍母,再用每个定数除衍母得到衍数。用衍数除定数,余数为奇数。用大衍求一术计算,得到乘率。用乘率乘衍数,得到泛用数。将所有泛用数加起来,用衍母去除,设商为n,减去泛用数之和中衍母的n-1倍。然后检查各个元数,有公约数的就在它们的泛用数内各自减去衍母的1/2。如果有三个数同类且具有公约数,就在三者的泛用数内各自减去衍母的1/3。这样得到各个正用数。

译解

问数:、60。化为假分数:、60。

分子分母互乘得:气分=1373340,朔分=111036,纪分=225600。公约数12。

保留纪分,化约得元数:114445、9253、225600。

连环求等化约,得到定数:487、19、225600。

衍母=487×19×225600=2087476800。

衍数:2087476800÷487=4286400,2087476800÷19=109867200,2087476800÷225600=9253。

奇数:4286400 mod 487=313,109867200 mod 19=4,9253 mod 225600=9253。

乘率:473、5、172717。

泛用数:473×4286400=2027467200,5×109867200=549336000,172717×9253=1598150401。

(2027467200+549336000+1598150401)mod 2087476800=4174953601 mod 2087476800=1,商2。

4174953601-2087476800×(2-1)=2087476801。

元数中,114445和225600有公约数,在其泛用数中各减去衍母的,即2087476800÷2=1043738400。

正用数1=2027467200-1043738400=983728800;

正用数2=549336000;

正用数3=1598150401-1043738400=554412001。

原文

然后推气朔不及或所过甲子日数,乘正用,加减之,为总。满衍,去之,余为所求历过率,实如纪元法而一,为历过。以气元法除衍母,得一会积年。以气周日刻乘一会年,得一会积日。以朔元法除衍母,得一会积月数。

〔1〕本题,问气朔甲子相距日数,系开禧历〔2〕推到,或甲子日在气朔之间,及非十一月前后者,其总数必满母。赘〔3〕去之,所得历过年数,尾位虽伦〔4〕,首位必异,今设问以明大衍之理,初不计其前多后少之历过〔5〕

注释

〔1〕右:又及。1

〔2〕开禧历:开禧,南宋宁宗年号,1205—1207年。开禧历是开禧三年颁布的历法,由鲍澣之编定。一回归年为天,一朔望月为天。1

〔3〕赘:多余的。1

〔4〕伦:类,同类。1

〔5〕本题计算方法虽然正确,但操作过程中有谬误,故结果得数并不正确。1

译文

然后计算冬至、朔日距离甲子日相差或超过多少天。用这些数乘正用数,得数相加减,得到总数。用衍母除总数,余数就是要求的率。用甲子纪日对应的元数去除率,得到历过年数(上元积年)。用回归年对应的元数去除衍母,得到气、朔、甲子两次相会之间的累积年数。用回归年的天数乘累积年数,得到累积天数。用朔月对应的元数去除衍母,得到累积月数。

这道题还要注意,计算冬至、朔日、甲子相距的天数,依据的是开禧历,甲子日有可能在冬至和朔日之间,或者并不在十一月前后,这时计算出的总数必然大于衍母,此时要将其中多余的部分减掉,才能得到历过年数。其尾位虽然相同,但首位一定不同。这道题的设问是为了阐明大衍术的原理,先不去计算甲子日在前或在后较远的历过情况。

译解

本题相差天数相当于余数,余数1=9-5=4,余数2=9-1=8,余数3即甲子日当天为0。

各总:983728800×4=3934915200,549336000×8=4394688000,554412001×0=0。

总数=3934915200+4394688000+0=8329603200。

率数=8329603200 mod 2087476800=2067172800。

原文

草曰:

置问数冬至三百六十五日四分日之一,朔策二十九日九百四十分之四百九十九。甲子六十日。各通分内子,互乘之。列三等位,具图如后。

冬至得一千四百六十一。朔实得二万七千七百五十九。甲子无母,只是六十。列三行互乘之。具图如后。

以三行互乘。右得一百三十七万三千三百四十,为气分。中得一十一万一千三十六,为朔分。左得二十二万五千六百,为纪分。〔1〕先求总等,得一十二。乃存纪分,一位不约,只以等一十二约气分,得一十一万四千四百四十五。又约朔分,得九千二百五十三。皆为元法。乃以连环求等。次以纪元二十二万五千六百,与朔元九千二百五十三求等,得一,不约。又以纪元与气元一十一万四千七百四十五求等,得二百三十五。只约气元,得四百八十七。次以气元四百八十七,与朔元九千二百五十三求等,得四百八十七。只约朔元九千二百五十三,得一十九。约遍毕,得四百八十七为气定,得一十九为朔定,得二十二万五千六百为纪定。以三定相乘,得二十亿八千七百四十七万六千八百,为衍母。具图如后。

各以定数约衍母,各得衍数。气得四百二十八万六千四百,朔得一亿九百八十六万七千二百,纪得九千二百五十三,寄左行。各满定数去之,各得奇数。

气奇得三百一十三,朔奇得四,纪奇得九千二百五十三。各与定数,用大衍求一,各得乘率,列右行,对寄左行衍数。具图如后。

各以大衍入之。气乘率得四百七十三,朔乘率得五,纪乘率得一十七万二千七百一十七。对左行衍数,以右行乘率对乘左行衍数。气泛得二十亿二千七百四十六万七千二百,朔泛得五亿四千九百三十三万六千,纪泛得一十五亿九千八百一十五万四百一。具图如后。

右列用数并之,共得四十一亿七千四百九十五万三千六百一,为泛用数。与衍母二十亿八千七百四十七万六千八百验之,在验母以上,就以衍母除泛,得二。乃知泛内多一倍母数,当于各用内,损去所多一倍。按术,验法,元图内诸元数奇偶同类者,各损其半。今验法元图,气元尾数是五,纪元尾数是六百,为俱五同类。乃以衍母二十亿八千七百四十七万六千八百,折半,得一十亿四千三百七十三万八千四百。以损泛用图内气泛、纪泛毕,其朔泛不损,各得气、朔、纪正用数。其气正用得九亿八千三百七十二万八千八百,朔正用五亿四千九百三十三万六千,纪正用五亿五千四百四十一万二千一。列为正用图。在前。

注释

〔1〕气分、朔分、纪分:本题计算过程中新造的名词,代指与回归年、朔月、甲子日相对应的各个数字。后文“气定”“朔定”“纪定”等与此类似。1

译文

确定问数:两个冬至之间的天数为,一个朔望月的天数为,甲子一周为60天。将其化为假分数,进行分子分母互乘,结果排成三列。

化成假分数后,冬至间天数为,朔望月天数为,甲子天数没有分母,就是60。

用这三个数的分子分别乘其他两个分母,得到气分数1373340,朔分数111036,纪分数225600。先求它们的公约数,得到12。保留纪分数不约。用12约气分数,得到114445。用12约朔分数,得到9253。这些都是元法数。然后对它们进行连环求等。先用纪元数225600和朔元数9253求等,得到1,不约。再用纪元数和气元数114445求等,得到235,只用它约气元数,得到487。再用气元数487和朔元数9253求等,得到487,只约朔元9253,得到19。都约过之后,得到定数:气定数487,朔定数19,纪定数225600。用这三个定数相乘,得到2087476800,即衍母。

用各个定数去约衍母,得到衍数。气衍数为4286400,朔衍数为109867200,纪衍数为9253,写在左列。用定数去除各自的衍数,得到的余数就是奇数。气奇数为313,朔奇数为4,纪奇数为9253。将各自的定数一起用大衍求一术来计算,得到各自的乘率,写入右列,和左列的衍数相对应。

各自用大衍求一术计算后,气乘率为473,朔乘率为5,纪乘率为172717。对应左列的衍数,用右列的乘率去对乘左列的衍数,得到泛用数。气泛数为2027467200,朔泛数为549336000,纪泛数为1598150401。

将右列的泛用数加起来,和是4174953601,这是泛用数的和。同衍母2087476800相比较,大于衍母,就用衍母去除泛用数之和,得到的商是2。我们知道,泛用数的和比衍母多一倍,就要从各泛用数中减去这多的一倍。按照之前的方法去检查各个元数的奇偶,有同类的就各自减去一半。现在检查上图中的元法数,发现气元尾数是5,纪元尾数是600,都是5的倍数,于是将衍母减半,得到1043738400。将图中的气泛数、纪泛数都减去这一半,朔泛数不变,得到三者的正用数。其中气正用数983728800,朔正用数549336000,纪正用数554412001。列为正用数图。

术解

原文

〔1〕得正用数,次验问题。十一月朔日丙辰,冬至初五日庚申,初九日甲子。乃以初一减初九甲子,余八日,为朔不及〔2〕。次以初五亦减初九甲子,余四日,为气不及。以二不及,各乘正用,得数具图如后。

先以气不及甲子四日,以乘气正用数九亿八千三百七十二万八千八百,得三十九亿三千四百九十一万五千二百,为气总。次以朔不及甲子八日数,以乘其朔正用数五亿四千九百三十三万六千,得四十三亿九千四百六十八万八千,为朔总。并之,得八十三亿二千九百六十万三千二百,为总数。满母二十亿八千七百四十七万六千八百去之。不满二十亿六千七百一十七万二千八百,为所求率实。具图如后。

注释

〔1〕既:已经。1

〔2〕不及:不到。1

译文

得到正用数之后,再来看题目,十一月初一丙辰日,冬至是初五庚申日,初九是甲子日。于是用初一减去初九甲子日,差为8天,就是朔日距甲子的天数。再用初五减初九甲子日,差为4天,就是冬至距甲子的天数。用这两个相差的天数,各自去乘正用数,得数画图如下。

先用冬至和甲子的差距4天去乘气正用数983728800,得到3934915200,这是气总数。再用朔日和甲子的差距8天去乘朔正用数549336000,得到4394688000,这是朔总数。二者相加,得到8329603200,这是总数。用衍母去除总数,余数是2067172800,这就是所求的率实数。

术解

距甲子日天数 总数
4 3934915200
8 4394688000
合计总数 —— 8329603200

原文

置所得率实二十亿六千七百一十七万二千八百,如法元图纪元法二十二万五千六百而一,得九千一百六十三年,为历过年数。次置衍母二十亿八千七百四十七万六千八百为实,如法元图气元一十一万四千四百四十五为法而一,得一万八千二百四十年,为气、朔、甲子一会积年。内减历过九千一百六十三年,余九千七十七年,为未至年数。次以冬至周日三百六十五日二十五刻,乘一会积年一万八千二百四十,得六百六十六万二千一百六十日,为一会积日。又以衍母为实,如法元图朔元法九千二百五十三而一,得二十二万五千六百月,为一会积月。合问。

译文

把所得的率实数2067172800,用上图中的纪元法数225600去除,得到9163,就是所求的历过年数。然后用气元数114445去除衍母2087476800,得到18240,就是所求的一会积年。在这个数当中减去历过年数9163,得到9077,就是所求的未至年数。再用一个回归年365.25日去乘一会积年18240,得到6662160日,就是所求的一会积日。再用衍母作为被除数,用上图中的朔元法数9253去除,得到225600月,就是所求的一会积月。这样就解答了题目。

术解

历过年数=2067172800÷225600=9163。

一会积年=2087476800÷114445=18240。

未至年数=18240-9163=9077。

一会积日=18240×365.25=6662160。

一会积月=2087476800÷9253=225600。

推计土功

原文

问:筑堤起四县夫〔1〕,分给里步皆同齐,阔〔2〕二丈,里法〔3〕三百六十步〔4〕,步法五尺八寸,人夫以物力差定〔5〕。甲县物力一十三万八千六百贯〔6〕;乙县物力一十四万六千三百贯;丙县物力一十九万二千五百贯;丁县物力一十八万四千八百贯。每力〔7〕七百七十贯,科〔8〕一名,春程人功平方六十尺,先到县先给。今甲乙二县俱毕,丙县余五十一丈,丁县余一十八丈,不及一日,全功。欲知堤长及四县夫所筑各几何。

答曰:堤长一十九里二百三十五步五尺。

甲县夫筑一千二十六丈,乙、丙、丁同。

乙县夫筑一千七百六十八步五尺六寸,甲、丙、丁同。

丙县夫筑四里三百二十八步五尺六寸,甲、乙、丁同。

丁县夫筑同前三县数。

注释

〔1〕夫:民夫,征用百姓去参加工程。1

〔2〕阔:宽度。1

〔3〕法:动词,以……为规定。1

〔4〕步:长度单位,标准各朝代不同,周代为8尺,秦代为6尺。本题有自己的规定。1

〔5〕差定:用比例的方法确定多少。1

〔6〕贯:用绳索串起来的钱币,也作为货币单位,一千文为一贯。1

〔7〕力:劳动力,即一名工人。1

〔8〕科:法律条文。1

译文

问:现在要筑一段堤,由四个县出工人,分给各县的长度是平均的,这段堤宽2丈,1里=360步,1步=5尺8寸,每个县所出的工人数由该县财力决定。甲县财力138600贯,乙县财力146300贯;丙县财力192500贯;丁县财力184800贯。规定每770贯出一名工人。这一季工程每人平均要完成的工作量是60平方尺,先完成的县可以先领到报酬。现在甲、乙两县都完工了,丙县还剩下51丈,丁县还剩下18丈,不到一天也都能完成。问堤的长度,以及这四个县的工人各筑了多少长度。

答:堤长19里235步5尺。

甲县工人筑堤1026丈,乙、丙、丁县与此相同。

乙县工人筑堤1768步5尺6寸,甲、丙、丁县与此相同。

丙县工人筑堤4里328步5尺6寸,甲、乙、丁县与此相同。

丁县工人筑堤长度与前三县相同。

原文

术曰:

置各县力,以程功〔1〕乘为实,以力率〔2〕乘堤齐阔〔3〕为法,除之,得各县日筑复数,有分者通之,互乘之,得通数。求总等,不约一位,约众位,曰元数。连环求等,约奇,得定母。陆续求衍数、奇数、乘率、用数。

以丙丁县不及数乘本用,并为总数。以定母相乘为衍母。满母,去总数,得各县分给里步积尺数,以县数因之,为堤长。各以里法、步法约之,为里步。

注释

〔1〕程功:工作量。1

〔2〕力率:平均每个工人对应的财力。1

〔3〕齐阔:宽度。1

译文

本题计算方法如下:

将各县财力与工人每日筑堤的工作量相乘,作为被除数。用每个工人对应的财力和堤宽相乘,作为除数,进行除法运算,得到每个县每天所筑堤的长度。其中如果有分数,就先化成假分数,分子分母互乘,得到通数。再求出它们的公约数,保留一个数不约,约其他的数,得到元数。进行连环求等,约奇数不约偶数,得到定数。接连求出衍数、奇数、乘率、用数。

用丙县、丁县没有完成的长度乘各自的用数,并相加得到总数。用各定母相乘得到衍母。用衍母除总数,得到的余数就是各县分到的筑堤长度,乘县数,就得到总堤长。按照里、步的单位换算,就得到以里、步计的长度。

译解

甲县每日筑堤长度=138600贯×60平方尺÷770贯÷20尺=54丈。

依次计算,乙长=57丈,丙长=75丈,丁长=72丈,为各问数,公约数为3。

保留甲长,约得元数:54、19、25、24。

连环求等化约,得定数:27、19、25、8。用大衍求一术求解。

原文

草曰:

置甲县力一十三万八千六百贯,乙县力一十四万六千三百贯,丙县力一十九万二千五百贯,丁县力一十八万四千八百贯。以程功六十尺遍乘之,皆以贯默约之。甲得八百三十一万六千尺,乙得八百七十七万八千尺,丙得一千一百五十五万尺,丁得一千一百八万八千尺,各为实。次以力率七百七十贯,乘堤齐阔二十尺,亦以贯默约之,得一万五千四百尺,为法。遍除诸各实,甲得五十四丈,乙得五十七丈,丙得七十五丈,丁得七十二丈。各为四县筑夫每日筑长率。按大衍术,命曰复数,列右行。

以复数求总等,得三寸,以约三位多者,不约其少者。甲得五十四,乙得一十九,丙得二十五,丁得二十四,仍为元数。次以两两连环求等,各约之。

先以丁丙求等,又以丁乙求等,皆得一,不约。次以丁甲求等,得六,只约甲五十四,得九。不约丁。次以丙与乙求等,又以丙与甲九求等,皆得一,不约。后以乙与甲九求等,得一,不约。复验甲九与丁二十四,犹可再约,又求等,得三,以约丁二十四得八。复甲为二十七。

次以定母四位相乘,求得一十万二千六百,为衍母。各以定母约衍母,甲得三千八百,乙得五千四百,丙得四千一百四,丁得一万二千八百二十五,为衍数。

满定母,各去衍数,甲不满二十,乙不满四,丙不满四,丁不满一,各为奇数。

以各定母,与本奇数,用大衍求一术入之,各得乘率。甲得二十三,乙得五,丙得一十九,丁得一。

以右行乘率,对乘寄左行衍数。甲得八万七千四百,乙得二万七千,丙得七万七千九百七十六,丁得一万二千八百二十五。各为用数。

译文

本题演算过程如下:

现有甲县财力138600贯,乙县146300贯,丙县192500贯,丁县184800贯。用每人每天的工作量60尺去乘这几个数,都将贯这一单位去掉。甲县得到8316000尺,乙县8778000尺,丙县11550000尺,丁县11088000尺,都作为被除数。然后用平均每人的财力数770贯,乘堤的宽度20尺,也去掉贯这一单位,得到15400尺,作为除数,去除各个被除数。得到甲县54丈,乙县57丈,丙县75丈,丁县72丈。这些分别是四个县的工人每天筑堤的总长度。按照大衍术,将它们叫作复数,放到最右列。

用这些复数求公约数,得到3寸,用它约三个较大的数,不约最小的数。甲得到54,乙19,丙25,丁24,这些仍然作为元数。然后对它们两两连环求等,再各自化约。先对丁和丙求等,再对丁和乙求等,都得到1,不约。再对丁和甲求等,得到6,只约54,得9。不约丁。再对丙和乙求等,又对丙和甲(9)求等,都得到1,不约。最后对乙和甲(9)求等,得到1,不约。再去检查甲(9)和丁(24),还可以再化约,再求等,得到3,去约丁(24)得到8。将甲复原为27。

再用四个定母相乘,得到102600,是衍母。用每个定母去约衍母,得到甲3800,乙5400,丙4104,丁12825,这些是衍数。

用每个定数分别除衍数,得甲余20,乙、丙都余4,丁余1,这些都是奇数。

对每个定数和奇数采用大衍求一术去计算,得到各自的乘率。甲为23,乙5,丙19,丁1。

用右列的乘率,分别乘左边的衍数。得到甲87400,乙27000,丙77976,丁12825。这些是各自的用数。

术解

衍母=27×19×25×8=102600。

各衍数:102600÷27=3800,102600÷19=5400,102600÷25=4104,102600÷8=12825。

各奇数:3800 mod 27=20,5400 mod 19=4,4104 mod 25=4,12825 mod 8=1。

利用大衍求一术,得到各乘率:23、5、19、1。

各用数:23×3800=87400,5×5400=27000,19×4104=77976,1×12825=12825。

原文

次验四县所筑,有无不及零丈尺寸。今甲乙俱毕,为无。丙余五十一丈,丁余一十八丈,为有。以丙丁二县余丈,各乘丙丁二用数。其丙五十一,乘丙用七万七千九百七十六,得三百九十七万六千七百七十六丈,为丙总。以丁余一十八,乘丁用一万二千八百二十五,得二十三万八百五十丈,为丁总。并二总,得四百二十万七千六百二十六丈,为总数。亦以丈通衍母,得一十万二千六百丈,仍为衍母。满去总数,不满一千二十六丈,为所求长率。以四县因之,得四千一百四丈,为实。以步法五尺八寸除之,得七千七十五步五尺,为堤积步。以里法三百六十步约之,得一十九里二百三十五步五尺,为堤通长。置长率一千二十六丈,以步法约之,得一千七百六十八步五尺六寸。又以里法约之,得四里三百二十八步五尺六寸,为各县所给道里步尺数。

译文

然后去检查四个县,有没有未完成的长度。现今甲、乙都完成了,所以没有。丙县剩余51丈,丁县剩余18丈,都有零余。用丙、丁两县剩余的长度,各自去乘它们的用数。用丙零余的51,乘用数77976,得到3976776丈,这是丙的总数。用丁零余的18,乘用数12825,得到230850丈,这是丁的总数。将两个总数相加,得到4207626丈,是总数。也给衍母加上丈这个单位,得到102600丈,仍然是衍母。用衍母除总数,余数1026丈,就是所求的大堤长度。再乘县数4,共为4104丈,作为被除数。用步法5.8尺去除,得到7075步5尺,就是大堤的积尺长度。用里法360步去除,得到19里235步5尺,是大堤的总长。将每县长度1026丈用步法去除,得到1768步5尺6寸。再用里法去除,得到4里328步5尺6寸。这些就是每个县所分配到的长度用里、步、尺计算的结果。

术解

丙总=51×77976=3976776(丈)。丁总=18×12825=230850(丈)。

总数=3976776+230850=4207626(丈)。

得数=4207626 mod 102600=1026(丈)。

每县堤长=1026丈。总堤长=1026×4=4104(丈)。

1里=360步,1步=5尺8寸。

1026×10÷5.8÷360≈4.9138(里)。

1026×4×10÷5.8÷360≈19.6552(里)。

推库额钱

原文

问:有外邑〔1〕七库,日纳息足钱〔2〕适等,递年成贯整纳。近缘〔3〕见钱希〔4〕少,听〔5〕各库照当处〔6〕〔7〕〔8〕,准解旧会〔9〕。其甲库有零钱一十文,丁庚二库各零四文,戊库零六文,余库无零钱,甲库所在市陌,一十二文,递减一文,至庚库而止。欲求诸库日息元纳足钱展省〔10〕,及今纳旧会并大小月分各几何。

答曰:诸库元纳日息足钱二十六贯九百五十文,展省三十五贯文。

甲库日息旧会,二百二十四贯五百一十文,大月旧会,六千七百三十七贯五百文,小月旧会,六千五百一十二贯九百二文。乙库日息旧会,二百四十五贯文,大月旧会,七千三百五十贯文,小月旧会,七千一百五贯文。丙库日息旧会,二百六十九贯五百文,大月旧会,八千八十五贯文,小月旧会,七千八百一十五贯五百文。

丁库日息旧会,二百九十九贯四百四文,大月旧会,八千九百八十三贯三百三文,小月旧会,八千六百八十三贯八百八文。戊库日息旧会,三百三十六贯八百六文,大月旧会,一万一百六贯二百四文,小月旧会,九千七百六十九贯三百六文。己库日息旧会,三百八十五贯文,大月旧会,一万一千五百五十贯文,小月旧会,一万一千一百六十五贯文。庚库日息旧会,四百四十九贯一百四文,大月旧会,一万三千四百七十五贯文,小月旧会,一万三千二十五贯八百二文。

□交子

交子最初由商人自由发行,实为一种存款凭证。宋仁宗天圣元年(1023年),政府在成都设益州交子务,由京官一二人担任监官,主持交子发行,并“置抄纸院,以革伪造之弊”,严格其印制过程。这便是我国最早由政府正式发行的纸币——“官交子”。而会子,是南宋于高宗绍兴三十年(1160年)由政府官办、户部发行的货币,也称作“便钱会子”。

注释

〔1〕邑:古代行政区划名称,各朝代定义不同。也是县的别称。1

〔2〕足钱:一贯钱的成色、重量较足,整可以兑换一千文。1

〔3〕缘:因为。1

〔4〕希:同“稀”,少。1

〔5〕听:听任,允许。1

〔6〕当处:当地。1

〔7〕市:交易,买卖。1

〔8〕陌:通“佰”,一百文钱。1

〔9〕会:即“会子”,南宋发行的纸币。因每三年换发一次,所以“旧会”指的是之前发行的批次。1

〔10〕展省:省,即“省陌”,指的是官方规定不足一百文钱的按照百文来使用。省陌的具体数额各朝代、地区等均有所不同。本书中使用南宋的省陌标准为770文=1贯。展:转,这里指按照单位比例关系来换算。展省:即按照省陌的标准换算。1

译文

问:有7个外县的钱库,每天缴纳作为息钱的“足钱”数相等,而且每年都缴纳整贯的息钱。近来因为交息钱的县比较少,就允许各个钱库按照当地的标准,用陌钱来兑换旧会。现在甲库兑换余10文钱,丁、庚两库都余4文,戊库余6文,其他库没有余零钱。而甲库所在地的兑换标准是12文,其他库的标准依次递减1文,到庚库为止。想要求各钱库原本每天息钱应该缴纳足钱多少,展省后是多少,以及现在需要缴纳旧会多少,大小月各缴纳多少。

答:各库原本每天息钱应缴纳足钱26贯950文,合展省后35贯文。

甲库每天息钱合旧会224贯510文,大月旧会6737贯500文,小月旧会6512贯902文。

乙库每天息钱合旧会245贯文,大月旧会7350贯文,小月旧会7105贯文。

丙库每天息钱合旧会269贯500文,大月旧会8085贯文,小月旧会7815贯500文。

丁库每天息钱合旧会299贯404文,大月旧会8983贯303文,小月旧会8683贯808文。

戊库每天息钱合旧会336贯806文,大月旧会10106贯204文,小月旧会9769贯306文。

己库每天息钱合旧会385贯文,大月旧会11550贯文,小月旧会11165贯文。

庚库每天息钱合旧会449贯104文,大月旧会13475贯文,小月旧会13025贯802文。

原文

术曰:

同前,以大衍求之。置甲库市陌,以递减数减之,各得诸库元陌。连环求等,约奇弗约偶,得定母。诸定相乘为衍母,以定约衍母得衍数。衍数同衍母者,去之为无。无者,借之同类。其各满定母,去余为奇数。以奇、定,用大衍求乘率,乘衍数为用数。无者,则以元数同类者求等,约衍母,得数为借数。次置有零文库零钱数,乘本用数,并为总数。满衍母,去之,不满为诸库日息足钱。各大小月日数乘之,各为实,各以元陌约,为旧会。

译文

本题计算方法如下:

和前面的题目一样,用大衍法去求解。先确定甲库陌钱的兑换标准,再用减数去递减,得到各库的兑换标准。然后连环求等,约奇数不约偶数,得到定母。各个定数相乘得到衍母,用每个定数去约衍母得到衍数。衍数和衍母相同的,将其去掉,相当于没有用数。没有用数的,可以向同类的用数去借用。用定数去除衍数,得到的余数就是奇数。将奇数和定数利用大衍求一术去求乘率,再用乘率乘衍数,得到各个用数。没有用数的,就用元数和同类的元数求公约数,然后去约衍母,得到的就是借数。再用有余数的库的零钱数去乘各自的用数,将得数加起来得到总数。用总数除衍母,得到的余数就是各库每天应缴息钱的足钱数。用各个大小月的天数去乘,得数作为被除数,再用各自的兑换单位去除,就得到旧会数。

译解

元数:甲12、乙11、丙10、丁9、戊8、己7、庚6。

两两连环求等化约,得到定数:甲1、乙11、丙5、丁9、戊8、己7、庚1。

衍母:1×11×5×9×8×7×1=27720。

衍数:

甲:27720÷1=27720;

乙:27720÷11=2520;

丙:27720÷5=5544;

丁:27720÷9=3080;

戊:27720÷8=3465;

己:27720÷7=3960;

庚:27720÷1=27720。

奇数:

乙:2520 mod 11=1;

丙:5544 mod 5=4;

丁:3080 mod 9=2;

戊:3465 mod 8=1;

己:3960 mod 7=5。

乘率:乙1、丙4、丁5、戊1、己3。

泛用数:

乙:1×2520=2520;

丙:4×5544=22176;

丁:5×3080=15400;

戊:1×3465=3465;

己:3×3960=11880。

甲、庚没有用数,其元数和丙、戊的元数都是偶数,属于“同类”,而丙的用数更大,因此从丙借数。

对甲、丙、庚的元数12、10、6求公约数,得2。因此借用数为衍母的一半,即27720÷2=13860。又因甲、庚元数之比为2:1,因此泛用数变为:

甲:13860÷3=4620;

丙:22176-13860=8316;

庚:13860-4620=9240。

本题中各库零钱数就是余数,各自乘用数,得到各总:

甲:10×4620=46200;

乙:0×2520=0;

丙:0×8316=0;

丁:4×15400=61600;

戊:6×3465=20790;

己:0×11880=0;

庚:4×9240=36960。

总数=46200+0+0+61600+20790+0+36960=165550。

得数=165550 mod 27720=26950。

原文

草曰:

置甲库市陌一十二,递减一,得一十一为乙库陌,一十为丙库陌,九为丁库陌,八为戊库陌,七为己库陌,六为庚库陌,得诸库元陌。

以连环求等,约讫,甲得一,乙得一十一,丙得五,丁得九,戊得八,己得七,庚得一,各为定母。立各一为子。

先以诸定相乘,得二万七千七百二十,为衍母。次以诸定互乘诸子,甲得二万七千七百二十,乙得二千五百二十,丙得五千五百四十四,丁得三千八十,戊得三千四百六十五,己得三千九百六十,庚得二万七千七百二十,各为衍数。

次验诸衍数,有同衍母者,皆去之,为无衍数。次各满定母去各本衍,各得奇数。甲无,乙得一,丙得四,丁得二,戊得一,己得五,庚无。各为奇数。

次验有奇数者得一,并以一为乘率。或得二数以上者,各以奇数于右上,定母于右下,立天元一于左上,用大衍求一之术入之。验乘除至右上余一而止。皆以左上所得为乘率。甲无,乙得一,丙得四,丁得五,戊得一,己得三,庚无。各为乘率,列右行,以对寄左衍。

以两行对乘之,为用数。甲无,乙得二千五百二十,丙得二万二千一百七十六,丁得一万五千四百,戊得三千四百六十五,己得一万一千八百八十,庚无。

译文

本题演算过程如下:

设甲库陌钱兑换标准是12文,然后以1为差递减,得到乙库11文、丙库10文、丁库9文、戊库8文、己库7文、庚库6文,这样就得到了各库的元数。用它们进行连环求等,化约结束,得到甲库1,乙11,丙5,丁9,戊8,己7,庚1,各自作为定母。将它们的子都设为1。

先用各个定数相乘,得到27720,这是衍母。然后用各定数去乘其他各子,得到甲27720,乙2520,丙5544,丁3080,戊3465,己3960,庚27720,这些都是衍数。

再去检查这些衍数,如果有和衍母相同的就去掉,这里就没有衍数(也就没有用数)。然后用定数去除各个衍数,得到奇数。甲没有奇数,乙得到1,丙4,丁2,戊1,己5,庚也没有。这些就是奇数。

然后检查,奇数是1的,乘率就是1。如果奇数大于等于2,就将奇数写在右上方,定母写在右下方,将1写在左上方,用大衍求一术去计算。进行乘、除计算直到右上余数是1,才能停止。都将左上的数字作为乘率,甲没有乘率,得到乙1,丙4,丁5,戊1,己3,庚也没有。这些都是乘率,写在右行,和左行的衍数对应。

用这两行去对乘,得到用数。甲没有用数,乙得到2520,丙22176,丁15400,戊3465,己11880,庚也没有用数。

术解

以大衍求一术求乘率,以丙为例:

1 4
0 5

5 mod 4=1,商1。

1 4
1 1

4 mod 1=1,商3。

3×1+1=4 1
1 1

右上=1,乘率丙=左上=4。

原文

次以推无用者,惟甲、庚合于同类处借之。其同类,谓元陌列而视之。

今视甲一十二、庚六,皆与丙一十、戊八,俱偶,为同类。其戊用数三千四百六十五,其数少,不可借。唯丙一十之用数,系二万二千一百七十六,为最多,当以借之。

乃以甲一十二,丙一十,庚六,求等,得二。以等数二,约衍母二万七千七百二十得一万三千八百六十,为借数。乃减丙用二万二千一百七十六,余八千三百一十六,为丙用数。乃以所借出之数一万三千八百六十为实,以元等二为法,除之,得六千九百三十,为甲用数。以甲用数减借出数,余亦得六千九百三十,为庚用数。今不欲使甲、庚之借数同,乃验借出数一万三千八百六十,可用几约如意。乃立三,取三分之一,得四千六百二十,为甲用。取三分之二,得九千二百四十,为庚用。列右行。

乃视诸库有无零钱数,验得乙丙己三库,无,先去其用数,乃以甲丁戊庚四库零钱,列左行,对乘本用,甲得四万六千二百,丁得六万一千六百,戊得二万七百九十,庚得三万六千九百六十,各为总。

并此四总,得一十六万五千五百五十。满衍母二万七千七百二十,去之,不满二万六千九百五十,为所求率。以贯约为二十六贯九百五十文,为诸库日息等数。以官省七十七陌,展得三十五贯文。各以其库元陌纽计,各得旧会零钱。各以三十日乘,为大月息。以日息减大息,余为小月息。合问。

译文

再去计算没有用数的,只有甲和庚,二者可以从同类的元数借。所谓的同类元数,就是将所有元数排列起来看,发现甲12、庚6,和丙10、戊8,都是偶数,是同类。戊的用数3465太小,不能借用。只有丙10的用数是22176,最大,可以从这里借。

于是用甲12、丙10、庚6求公约数,得到2。用公约数2去约衍母27720,得到13860,这就是借数。它和丙原先的用数22176的差8316,那么8316就是丙的新用数。然后用借数13860作为被除数,用原等数2为除数去除,得到6930,作为甲的用数。用借数减去甲的用数,也得到6930,这就是庚的用数。现在不想让甲、庚的借数相同,就检查借数13680,可以用多少去约比较合适。于是选择3,取借数的,得到4620,作为甲的用数。取借数的,得到9240,作为庚的用数。所有用数都列在右行。

然后观察各库钱数是否有零余,发现乙、丙、己三个钱库都没有,先把它们的用数去掉。然后将甲、丁、戊、庚四个钱库的零钱列在算图左行,各自去乘自己的用数,甲得到46200,丁得61600,戊得20790,庚得36960,是各自的总数。

计算四个总数并且相加,得到165550。用衍母27720去除,余数26950,这就是所求的数。用贯作为单位换算,得到26贯950文,这就是各钱库每天缴纳的息钱数。用官方省陌的标准77陌去换算,得到35贯文。用各自的兑换标准去计算,得到各自的旧会数。各用天数30去乘,得到大月的息钱数。用总的日息钱数减去大月息钱数,余下的就是小月息钱数。这样就解答了题目。

术解

1贯=1000文。26950÷1000=26贯950文。

省陌1贯=770文。26950÷770=35贯。

计算甲库每日缴纳息钱折算旧会数:

(26950-10)÷12×100+10=224510(文)。

计算甲库每月缴纳息钱折算旧会数:

大月:224500×30+10×30÷12×100=6735000+2500=6737500(文)。

小月:224500×29=6510500(文);(10×29)mod 12=2,商24;

小月日息旧会=6510500+24×100+2=6512902(文)。

其他钱库日息旧会以此类推。