



|
2.1 “物不知数” |
《孙子算经》卷下第26题“今有物不知其数”即著名的“孙子定理”,也正是这一问题,使《孙子算经》成为载入世界数学史册的著名数学典籍。
其问是:
今有物不知其数。三三数之剩二,五五数之剩三,七七数之剩二。问物几何?
这是一个一次同余式组问題。用现代数学符号表示,即是:
N≡2(mod3)≡3(mod5)≡2(mod7)
求满足条件的最小正整数。答案是N=23。
《孙子算经》给出了这一问题的解法。术曰:
图2.1 《孙子算经》“物不知数”题
(取自《宋刻算经六种》,北京:文物出版社,1980年)
三三数之剩二,置一百四十;五五数之剩三,置六十三;七七数之剩二,置三十。并之,得二百三十三。以二百一十减之,即得。凡三三数之剩一,则置七十;五五数之剩一,则置二十一;七七数之剩一,则置十五。一百六以上,一百五减之,即得。
按术文的前半段,给出本题的解:
N=70×2+21×3+15×2-105×2=23
而术文的后半段,则给出这类一次同余式组的一般解法。即,设三个模数为3、5、7,相应的余数为R 1 ,R 2 ,R 3 ,满足下面同余式组N≡R 1 (mod3)≡R 2 (mod5)≡R 3 (mod7)的一般解是:
N≡70R 1 +21R 2 +15R 3 -105p;(p为正整数)
《孙子算经》所述术文简略,没有说明解法的原理,但从解的构造则能窥探出几分奥秘。术文中三个关键性数字70、21、15具有下述性质:如70被3除余1,被5、7整除;21被5除余1,被3、7整除;15被7除余1,被3、5整除。用记号R[M]表示R的整倍数,上述性质可表述为:
70=3[M]+1=5[M]=7[M]
21=3[M]=5[M]+1=7[M]
15=3[M]=5[M]=7[M]+1
各以所余R 1 ,R 2 ,R 3 乘之:
70R 1 =3[M]+R 1 =5[M]=7[M]
21R 2 =3[M]=5[M]+R 2 =7[M]
15R 3 =3[M]=5[M]=7[M]+R 3
三式相加:N * =70R 1 +21R 2 +15R 3
=3[M]+R 1 =5[M]+R 2 =7[M]+R 3
而 105=3[M]=5[M]=7[M]
选取适当的整数p,可使N=N * -105p=70R 1 +21R 2 +15R 3 -105p是满足同余式组(1)的最小正整数解。
《孙子算经》的解法实际上可以概括成更一般的情形(见本章第3节),故称此类问题为“孙子定理”。
“物不知数”题不见于《九章算术》而首载《孙子算经》并不是偶然的。中国古代历法自汉代起就重视上元积年的推算,而以各种天文周期(如回归年、朔望月、近点月)和相应的差数来推算上元积年,则构成了一个求解一次同余式组的问题。因此,《孙子算经》虽以“物不知数”的游戏形式设问造术,而本质上则是古历推求上元方法流行于民间的生动体现。
《孙子算经》提出的“物不知数”问题引起了后世学者的很大兴趣。人们从术文知道解题的关键是在找到三个与1同余的数的乘积,故作诗文以助记忆,“物不知数”遂以各种形式得以流传普及。其主要线索有:
(1)宋杨辉“剪管术”。《续古摘奇算法》(1275年)载孙子问题,其“解题”下注称:“俗名秦王暗点兵,犹覆射之术”,并将题术定名为“剪管”。杨辉又为此法另拟四道问题,兹引述如下:
第一题:用工不知其数,差人支犒,每三人支肉一斤,剩五两八铢,乃三数剩二;每五人支钱一贯,剩零四百,是五数剩三;每七人支酒一掇,恰撞成掇,是七数无剩。问总工所支几何?
答数:98人,钱19贯600文,酒14掇,肉32斤10两16铢。
注意,杨辉所拟问题并未直接给出“用工”所余。“总工”是人数,而余数是物零,需将物零折算每人份数,物零有几份便可折合人数。
如:3人分肉,剩余5两8铢,即1/3斤,是1人份,即已分2份,故折合人数2,即人数为“三数剩二”。
5人支钱1000文,是每人200文;剩400文,是2人份,即已分600文,是3人份,故人数“五数剩三”。
第二题:七数剩一,八数剩二,九数剩三。问本总数几何。
答数:498。
第三题:十一数余三,十二数余二,十三数余一。问元总。
答数:14。
第五题:二数余一,五数余二,七数余三,九数余四。问原总数几何。
答数:157。
(2)宋周密“鬼谷算”。《志雅堂杂钞》(1290年)卷下“阴阳算术”条将孙子题术变作“鬼谷算”,又名“隔墙算”,所记算法是“先将钱不拘多少三数数之,凡遇剩一则下七十,二则下百四十。次五数数之剩一则下二十一,二则下四十二。又七数数之剩一,则下十五,二则下三十。总计其数,然后退一百五,或多则二百十,之外余者即是见在钱数也。”并以诗隐括:
三岁孩儿七十稀,五留廿一事尤奇;
七度上元重相会,寒食清明便可知。
这里“上元”指正月十五元宵节,暗射15,“寒食”指清明节前一天,冬至后一百零五天是清明前后,暗射105.周密指出了解的构造“秘密”:“按此法取相乘之数也,如三则以五七相乘数,倍之。五则以三七相乘之数,七则以三五相乘,乘数合之得百零五。”
(3)明严恭“管数”。《通原算法》(1372年)载剩余问题称“此系管数”。
(4)明周述学“总分”。《神道大编历宗算会》(1558年)卷十“总分”条叙述剩余问题。所列五题与杨辉相同。
(5)明程大位“孙子歌”。《算法统宗》(1593年)卷五载“孙子歌”(又云“韩信点兵”)曰:
三人同行七十稀,五树梅花廿一枝;
七子团圆正半月,除百零五便得知。
诗里对4个数据不绕弯道,和盘托出。此歌在民间广为流传,曾传至日本,影响甚广。