几丁科一兵:全卷最朴素的一笔除法
一千五百万丁,出兵四十万,问几丁科一兵?答曰三十七丁五分。术文只有九个字——实如法,即得。这一讲讲的是一次大数除法,也是《孙子算经》里最短的术文。
原典
今有丁一千五百万,出兵四十万。问:几丁科一兵?
答曰:三十七丁五分。
术曰:置丁一千五百万为实,以兵四十万为法,实如法,即得。
白话翻译
全国有一千五百万丁,要出兵四十万。问:平均多少个丁摊得上一个兵?
答案是:三十七个半丁出一个兵。
术文给的算法是:把一千五百万丁放在「实」的位置上,把四十万兵放在「法」的位置上,实照着法除一次,答案就出来了。
示意图
古人的算法
这道题的术文短到不能再短,九个字,只说了三件事:谁是实,谁是法,怎么算。
「置丁一千五百万为实」——被除数放在实位。题干已经把两个数都写明了,这里不过是把上下的位置指出来。一千五百万是七位数,在没有阿拉伯数字的时代,这个数在算筹上要摆成一片:百万位千百十一,一层层下来。古人做这个题,摆筹的时间大概比算的时间还长。
「以兵四十万为法」——除数放在法位。「法」就是标准、准则,今天说的除数。这个词一直活到现代汉语里:法,就是拿来衡量别人的那把尺子。
「实如法,即得」——实照着法除一次,就得到了。「如」是依照、顺着的意思。「实如法」就是拿实去除以法。这句话在后世算书里反复出现,是整部中国古算里最高频的指令之一:凡是「照除一遍就完事」的题,术文都收在这几个字上。
方向千万不能反
题目问的是「几丁科一兵」,这个问法要当心。兵是被分出来的份数,三十七个半丁才凑出一份,所以丁在下面、兵在上面:
写成算式,必须让丁数在上面:
三十七丁五分,是三十七个整丁再加半丁。这里的「五分」指一丁分成十份取五份。
如果问的是「一丁出多少兵」,答案就不是 37.5,而是它的倒数 ,约等于 0.0267 个兵。三十七个半丁出一个兵,和一丁出三十七个半兵,差着天上地下。问句的主语是谁,谁就当分母,这是这道题唯一容易错的地方——算术本身毫无难度,难点全在读题。
在算筹上怎么除
古人在算盘和算筹上做的,和今天的竖式除法是同一件事,只是次序不同。
第一步先砍零:一千五百万和四十万都带零,各去掉三个零,式子缩成 ,再各去掉两个零,缩成 。
第二步验算:四十万乘三十七是一千四百八十万,一千五百万减它还余二十万;二十万正是四十万的一半,所以再添半个。。
零砍掉再算,剩下的才是要真做的除法。估商—试乘—看余数,这个节奏今天的学生做长除法时一模一样。
大数怎么读
一千五百万与四十万,量级差着几十倍。用今天的科学记数法写:
指数的减法替人算掉了量级。古人不讲指数,但「先除大数、再看尾巴」的做法,实质就是在处理量级——把能约掉的零先约掉,剩下的才是要真算的部分。
现代数学视角
用今天的眼光看,这是一道纯粹的整除题,但它至少踩在现代数学的三个关节上。
第一,它是一个比例常数。 一千五百万丁对四十万兵,一比就固定下来:
有了这个 ,以后不问丁数多少,一律拿丁数除以 就得出兵数。丁数降到一千二百万,出兵就是 ,还是个整数;丁数涨到三千万、要出兵五十万,一比是 60,比 37.5 摊得更薄。常数抓在手里,一类题就全解决了。
这里有个可以顺手体会的规律:两边同时放大或缩小同一个倍数,比值不变。四十万乘一是四十万,乘三是一百二十万;与之相配的丁数也该乘三。这就是为什么「约分」在除法里那么有用——一千五百万和四十万都能被五整除,先约掉,数小了,商不变:
约到最简, 已经小到一口能报出来。古人没有分数约分的系统记号,但「能砍的零先砍掉」是算术上的常识。
第二,答案是个分数。 三千七百五十乘四十万是一亿五千万,多了一个零;三十七点五乘四十万才是一千五百万。古人不写 37.5,写「三十七丁五分」——把一丁劈成十份,取五份。中国古算在《孙子算经》卷中第 11 讲前后已经建立了「几分之几」的分数记法,这里正好用上:。小数和分数在这里是一回事,只是记法不同。
顺便值得停一秒: 和 是相等的,但古人选的是后者。为什么不用「三丁七分五厘」这种更简的形式?因为「丁」下面分十等份最自然,跟十进制对齐; 要把一丁分成四份,切起来反而不顺。同一个数有不同的分数写法,工具要顺着现实的分割方式来选,这是古代算家接地气的地方。
第三,这是「带单位的量」的第一课。 37.5 后面跟着「丁/兵」,不能光写一个数。今天写物理公式,单位要跟着跑:
丁约掉了,兵留下来。量纲能对消,是检验列式对不对最快的办法——除完之后单位若不对,一定是分子分母挑反了。学生做题常常式子列对、答案算错,把单位写出来,错处自己就露头。
半个丁怎么落地,题目没说。 数学上一丁的十分之五清清楚楚;在征役里怎么执行,这道题给不出答案,也不该替它编。能说的是:正因为有除不尽的情形,分数才必须存在——如果每次都恰好除尽,古人也用不着发明「几分之几」了。
高中课本关联
比与比例:全题就一个比。一千五百万比四十万,可以反过来说「每 2 个兵背后站着 75 个丁」—— 与 是同一个比的两种说法。高中课本的正比例、反比例,原型就是这类记账题。
分数与小数互化:,一个整数加一个真分数就是带分数。古人的「五分」是分数思路,今人的「0.5」是小数思路,含义完全等价,只是写起来快慢不同。
近似与有效数字:37.5 是精确值,不是近似值。但若问「一丁出几个兵」, 除不尽,这时才需要取舍——保留几位、四舍五入到哪一位,是高中近似计算的内容。反过来说,凡是能除尽的题都不必谈近似,先判断有没有余数,再决定要不要近似,是个好习惯。
统计里的「率」:把一千五百万看成人次、四十万看成事件数,「每三十七点五丁出一兵」就是个发生率。今天说发病率、出勤率、命中率,结构跟这道题一模一样:事件数除以总数,再取倒数。高中课本里还有一条更直接的线——一次函数 。这道题的兵数 与丁数 的关系就是 ,,过原点的一条直线。正比例函数最朴素的来源,就是「按人头摊派」。
思考与拓展
-
换个方向问:一丁该出多少兵?与「几丁科一兵」是什么关系?两者相乘等于几?
-
改编一道:若全国丁数一千八百万,仍出兵四十万,问几丁科一兵?答案是整数还是分数?
-
反过来编题:若规定「三十六丁科一兵」,一千五百万丁能出多少兵?除不尽时你会怎么取整?
-
估一估就行:不动笔,估一下 大约是几百?算完可以拿真实值 800 对一对,看你的量级抓得准不准。(提示:把两边都看成「一百万除一万」,得一百;再多看一眼量级,别止步于一百。)
一句话总结
一千五百万除以四十万,答案是三十七个半丁出一个兵——全卷最短的术文配最长的被除数,中国古算的除法在这一题上干净利落地走完了全程。