你可能没有听说过《孙子算经》,但你一定听说过“鸡兔同笼”,这道小学奥数中常见题目的原型就出自《孙子算经》的一道算题:“今有雉兔同笼,上有三十五头,下有九十四足。问雉兔各几何?”用现代汉语表达就是:现在笼子里有鸡(雉)和兔子。从上面数一共有三十五个头,从下面数一共有九十四只脚,问一共有多少只鸡,多少只兔子?
鸡兔同笼Ⓢ
《孙子算经》上卷Ⓟ
《孙子算经》成书于约公元300年,在唐代被列为“算经十书”之一,我们不知道其作者为何方神圣,不过书中有“今有佛书”几个字,说明该书成于佛教传入中国以后,可见其作者与《孙子兵法》的作者绝非同一个人。
全书分为三卷,上卷叙述了筹算记数法和筹算乘除法则;中卷举例说明筹算分数算法,开平方和面积、体积计算;下卷是各种应用问题。
上卷的筹算是《孙子算经》留给我们的重要遗产之一,它第一次给出了筹算的布算规则:“凡算之法,先识其位,一从十横,百立千僵,千十相望,万百相当”,并说明用空位代表零。也就是在这本书里,我们知道了古代中国的十进制表示等内容。书中还详细介绍了利用筹算进行乘除的方法。
中卷主要是关于分数的应用题,其内容基本上都在《九章算术》的记述范围内。
《孙子算经》中最著名的是下卷的“物不知数”问题:“今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二。问物几何?”这个问题其实就相当于解现代数学中的同余式组: N ≡2(mod 3)≡3(mod 5)≡2(mod 7),其中 N ≡2(mod 3)表示 N 除以3余2,也就是 N 可以表示成3 k + 2( k 为整数)的形式,其余类似。《孙子算经》给出的答数是最小正数解 N = 23。“物不知数”问题的解答指明了解题方法,列成现代的算式就是:
《孙子算经》仿宋雕本Ⓟ
N = 70 × 2 + 21 × 3 + 15 × 2 -2 × 105。
不仅如此,《孙子算经》还将此法一般化,对任意余数 R 1 , R 2 , R 3 ,只要将上述算式中的2,3,2换成 R 1 , R 2 , R 3 ,并调整105的系数就行了(实际上70 × 2 + 21 × 3 + 15 × 2也是符合条件的解,因为它减去105(即3×5×7)的整数倍依然满足条件,所以减掉2×105就得到了最小的解)。这是现今关于一次同余式组一般解的剩余定理的特殊形式。
“物不知数”问题又称“孙子问题”,是中国数学史上最有创造性的成就之一,它在民间流传很广,还衍生出了“秦王暗点兵”“鬼谷算”“剪管术”“韩信点兵”等各种有趣的名称。特别重要的是,它引导宋代的秦九韶发明了求解一次同余式组的一般算法——大衍求一术。现在往往把这种算法的原理称为“中国剩余定理”,又称“孙子定理”。
《孙子算经》中的“物不知数”的问题Ⓟ