说起来已将近三十年了,那时我还只八岁,常常随了我的祖父去会他的老友。有一次到一个小盐商家去,他一见了我们祖孙俩走到摊头,一边拉长板凳一边向祖父说:
——请坐,请坐,好福气,四孙少爷这般大了。
——什么福啊!奔忙福!
——哪里,哪里,四孙少爷在进学校了吧!
——不要这般叫,孩子们,今年已随着哥哥进学校了,在屋里淘气得很,还是去找个管头的好。祖父说了,微笑着抚摸我的头。盐老板和他说了一些古话,不知怎的,突然却转到了我的身上:
——在学校里念些什么书?
——国文、算术……我这样地回答。
——还学算吗?好,给你算一个题,算得出,请你吃晚饭。
这使我有点奇怪,我心里猜不透他是叫我算乘法还是除法。我有些惊恐,怕他叫我算四则问题,我目不转睛地看着他,他不慌不忙地说了出来:
——三个三个地数剩两个,五个五个地数剩三个,七个七个地数也剩两个,你算是几个?
我一听心里非常高兴,暗里还有点骄傲:“这样的题目,哪个不会算!”这时我正好学完公倍数公约数,而且不久前还算过这样的一个题目:
“某数以三除之余二,以四除之余三,以五除之余四,以六除之余五,问某数最小是若干?”
我把这两个题目看成是一样的,它们都是用几个数去除一个数全除不尽。这第二个题的算法我还记得十分清楚,所以我觉得很有把握。不但这样,我并且觉得这位老板的题目有些不通,他不曾只问我一个最小的答数。当我这样在肚里寻思的时候,祖父便问道:
——算得出吗?
——算得出,不止一个答数。我这样回答以后,那位老板就恭维起我来了,向着祖父说:
——真好福气!一想就想出来了,将来一定比大老爷还强。
祖父又是一阵客气,然后向着我说:
——你说一个答数看。
我所算过的题,是先求出三、四、五、六四个数的最小公倍数“六十”,然后减去“一”得“五十九”。我于是依样先求三、五、七三个数的最小公倍数,心里暗想着“三五一十五、七五三十五、一百零五”。再就是要减去一个数了。我算过的题因为“以三除之余二”是差个一(3-2=1)就除尽,所以要减去“一”。现在“三个三个地数剩两个”正是一样的,也只要减去“一”,所以我就从一百零五当中减去一,而立刻回答道:
——顶小的一个数是一百零四,还有二百零九(104+105=209)也是的。
我这时,在幼稚的心上感到得意,感到快乐,我期望着老板的夸奖。岂知大出我意料之外!他说:
——一百零四,五个五个地数剩的是四个不是三个。
这我怎么不曾想到呢?于是我想那么应当从一百零五当中减去二了(5-3=2),我就说:
——一百零三。
——三个三个的数只剩一了。
我窘极了,居然遭了这么大的失败。在我小时学数学,所遇到的窘迫,这是最大的两次当中的一次,我觉得当着人失败,非常害羞。我记得很清楚,我一只手扯了衣角,一只手捏紧拳头,脸上如火烧一般地热,低了头尽管在心里转念头,把我所算过的题目都想到。但是徒然,再和它相像的一个也没有了。我后来横了心,很胆大地说:
——恐怕题目出错了吧!
然而得到的是一个更加使我窘迫的回答:
——不错的。
连我的祖父也这样说。
穷极智生,我居然得到了一条新路,我想三个去除剩两个,五个去除剩三个,我可以先找三个去除剩两个的一些数再一个一个地拿五去除来试。这真是一条光明的路,第一个我想到“五”,这自然不对,用五去除并没有剩的。挨了下去再就想到“八”,正好用三去除剩二,用五去除剩三。我真喜出望外:
——八!
——还是不对,七个七个地数,只剩一个。
这真叫我走投无路了!那天的晚饭虽则仍是那位老板留我们吃,但当祖父答应留在那里的时候,使我非常难过,眼巴巴地只望他领了我回家,我真是脸上热一阵冷一阵的,哪有心肠吃饭!我想得头都胀了,总想不出这个方法来。羞愧,气闷,因而还有些恼怒,就满心充塞着这些滋味没精打采地在夜里随着祖父回家。我的祖父对我很慈爱,但督责也很严,他在外面虽不曾向我说什么,一到家里,他就教训我了:
——读书要用心!……在别人的面前不好夸口!……“宁在人前全不会,勿在人前会不全!”小小年纪晓得些什么?别人问到就说不知道好了……这时他的脸上严肃中还带得有几分生气的样儿。他给我这样的教训时,我的母亲、婶母、哥哥都在旁边的,他后来慢慢地将我的遭遇说给他们听,我的哥哥听他说完了题目便冲口而出地:
——二十三。
我非常不服气,
——别人告诉过你的!
——还这样不上进,祖父真生气了。
从那夜起,一直两三天,我见到祖父就怕,我没有一个时候不想这个题的算法,真弄得吃、玩、睡都是惝恍的。终于还是我的哥哥把算这个题目的秘诀告诉了我,而且说,这叫“韩信点兵”。这我才虽是十分懊丧,却慢慢地丢开了去。
现在想起来,那次的遭遇以及祖父所给我的教训实在是我的年龄所不应当受的。不过这样的硬教育,对于我也有很大的功劳,我对于数学能有较浓厚的兴趣,一半固然由于别人所给的积极的鼓励,而一半也由于这种差不多是我所担受不起的遭遇和教训。数学本来有时会叫人头痛的,然而经过一次头痛,总有一次的进益。这次的遭遇,对于本问题,我自己直接虽是一无所得,但对于思索问题的途径,确实得到了不少的启示。在当时,有些自以为有了理解的,虽也不免浮泛或错误,但毕竟增长了一些趣味和能力。因此我愿以十二分的诚意,将这段经过叙述出来,以慰勉一部分和我有相类的遭遇的读者。
现在我们言归正传。
所谓“韩信点兵”,就指的是那位盐老板所给我的问题的算法。“韩信点兵”这个名词虽是到了明时程大位的《算法统宗》才见到的,但这个问题在中国数学史上却很有些来历,到了卖盐老板都知道,也可以当得起“妇孺皆知”的荣誉了。
这题目最早是见于《孙子算经》,《孙子算经》确实是什么时候什么人所作的书,现在虽然难以考证,大约是二千多年前的作品确实是不容怀疑。在《孙子算经》上,这题目原是这样的:
“今有物不知其数。三三数之,剩二;五五数之,剩三;七七数之,剩二。问物几何?”
在原书本归在下卷中,到了宋时,周密的书中却有“鬼谷算”和“隔墙算”的名目,而杨辉又称为“剪管术”,在那时便有秦王暗点兵的俗名,大约韩信就是从秦王变来的,至于“明点”“暗点”那本没有什么多大关系。
原书上,跟着题目便有下面的一段:
“答曰二十三。”
“术曰:三三数之剩二,置一百四十;五五数之剩三,置六十三;七七数之剩二,置三十。并之,得二百三十三,以二百一十减之,即得。”
“凡三三数之剩一,则置七十;五五数之剩一,则置二十一;七七数之剩一,则置一十五;一百六以上,以一百五减之,即得。”
后一小段可以说是这类问题的基本算法,而前一小段却是本问题的解答,用现在的式子照写出来便是:
70×2+21×3+15×2=140+63+30=233
233-105×2=233-210=23
照前面的说法,自然是士大夫气很重,也可以说是讲义体,一般人当然很难明白,但到了周密的书,便有诗歌形式的说明,那诗道:
“三岁孩儿七十稀,五留廿一事尤奇。
七度上元重相会,寒食清明便可知。