标签:
杂谈 |
作者:@中科大胡不归
【作者按:《中国古代数学思想》,孙宏安著,大连理工大学出版社2008年4月第一版,编入《数学科学文化理念传播丛书》。上一篇见http://weibo.com/p/1001603899233064324586。欢迎在微博上通过在私信页面点击“订阅文章”或输入“DY”订阅我的群发。在电脑上点击我的置顶微博中的标签可以完全列出与分类阅读我的文章。推荐关注@秋秋和丫丫的小五
第五章:数学思想的持续发展。本篇记录此章第1节的第2部分,并给出我对中国剩余定理的详细解释。
5.1 数学名著中典型的数学思想
2、《孙子算经》
可能作于公元400年前后。全书分为三卷。按:卷下“今有佛书”一问,说明这位孙子和《孙子兵法》的孙子是不同的人,因为春秋时还没有传入佛教。
在该书的序中表述了如同刘徽那样的万物皆数的数学观,继承了《周易》之后的数学观传统,不过表述得更为细致一些。
卷上:筹算制度及方法,以及度量衡的制度。前面说的关于算筹的排法和运筹方法,现在仅见于《孙子算经》。
卷中:分数应用题,包括面积、体积、等比数列等,大致不出《九章算术》范围的“实用问题”。
卷下:第31题是鸡兔同笼问题。按:许多人小学的噩梦!
第26题“物不知数”问题:“今有物,不知其数。三三数之,剩二;五五数之,剩三;七七数之,剩二。问物几何?答曰:二十三。”此题是著名的“大衍求一术”乃至“中国剩余定理”的起源,也是中国古代数学中最具创造性的成果之一。按:中国剩余定理可能是许多外国人所知的唯一的中国古代数学成果。这反映了一个基本事实,世界数学的大框架是古希腊人以及文艺复兴后继承他们的欧洲人创立的,其他文明的数学家只是在这座雄伟的大厦上增添一些个别的、孤立的成果,虽然也有价值,但不能相提并论。
《孙子算经》同时给出求解的术。术又引出其他许多问题,引起人们不断的探讨,直到宋代秦九韶(1247)才给出比较合理的解。按:果然,又是刚出来没多久别人就看不懂了!
用现代数学语言表述,则是求数x,使得
x ≡ 2 (mod 3) ≡ 3 (mod 5) ≡ 2 (mod 7)。
《孙子算经》中该题的术文给出解法:
x = 70 × 2 21 × 3 15 × 7 - 2 × 105 = 23。按:术文是:“术曰:三三数之,剩二,置一百四十;五五数之,剩三,置六十三;七七数之,剩二,置三十。并之,得二百三十三,以二百一十减之,即得。凡三三数之,剩一,则置七十;五五数之,剩一,则置二十一;七七数之,剩一,则置十五。一百六以上,以一百五减之,即得。”
其中关键是这3个数:70(对于3),21(对于5),和15(对于7)。术文中直接给出这3个数,没有说明来源——它们就是后来秦九韶说的“乘率”。对这个解法民间别称:秦王暗点兵、韩信点兵、剪管术、孙子算、鬼谷算、隔墙算、隔壁笑等。人们用歌诀的形式帮助记忆。周密《志雅堂杂钞》记载:
“三岁孩儿七十稀,
五留廿一事尤奇。
七度上元重相会,
寒食清明便得知。”
上元节是正月十五。寒食清明的意义在于,从元宵节到清明正好是105天。按:太拽文,绕的圈子太多,谁能记住这么个105?《射雕英雄传》第31回《鸳鸯锦帕》里黄蓉教瑛姑这个算法:“三人同行七十稀,五树梅花廿一枝。七子团圆正半月,余百零五便得知。”这才是适合传诵的口诀。
褚人获《坚瓠集》内引《挑灯集异》歌诀:
“三人逢零七十稀,
五马沿盘廿一奇。
七星约在元宵里,
一百零五定为除。”
推广《孙子算经》问题的解法,我们有中国剩余定理。
设(mi, mj) = 1 (1 ≤ i ≤ j ≤ n), M = m1m2…mn。按:(mi, mj)是mi和mj的最大公因数,(mi, mj) = 1就是mi和mj互质。
则同余式组
x ≡ ri (mod mi) (i = 1, 2, …, n)
的解为
x ≡Σi=1n ki (M /mi) ri(mod M)
其中ki满足
ki (M /mi) ≡ 1 (mod mi) (i = 1, 2, …, n)
这里mi称为“定母”,M称为“衍母”,M /mi称为“衍数”,ki称为“乘率”。关键在于乘率的求法。宋代秦九韶解决了求乘率的问题。
【按:以最初的题目x ≡ 2 (mod 3) ≡ 3 (mod 5) ≡ 2 (mod 7)为例,M = 3 × 5 × 7 = 105。M /m1 = m2m3 = 5 × 7 =35,现在要求k1使得35k1 ≡ 1 (mod 3),显然k1 = 2,35k1 = 70 = 3 × 23 1,这就是70的来历。M /m2 = m1m3 = 3 × 7 = 21,求k2使得21k1 ≡ 1 (mod 5),显然k1 = 1,21k1 = 21 = 5 × 4 1,这就是21的来历。M /m3 = m1m2 = 3 × 5 = 15,求k3使得15k1 ≡ 1 (mod 7),显然k3 = 1,15k3 = 15 = 7 × 2 1,这就是15的来历。
70r1必然除3余r1,而除5、除7都余0。21r2必然除5余r2,而除3、除7都余0。15r3必然除7余r3,而除3、除5都余0。三者相加,70r1 21r2 15r3必然除3余r1,除5余r2,除7余r3。由于105对3、5、7都整除,从70r1 21r2 15r3减去105的任何整数倍必然也满足除3余r1,除5余r2,除7余r3。
解法中的关键,是对每一个i,都必然能够找到ki,使得ki (M /mi) ≡ 1 (mod mi)。为什么呢?M /mi和mi互质,所以对于从1到mi - 1的整数x,xM /mi都不能被mi整除,而且它们除以mi的余数必定不重复。这可以用反证法证明。如果有两个相差Δx的x对应的余数相同,Δx (M /mi)就被mi整除了。既然M /mi和mi互质,那只能是Δx被mi整除。但是Δx < mi,所以不可能被mi整除,矛盾,得证。对于从1到mi - 1的整数x,xM /mi除以mi的余数不重复,那么这mi - 1个余数必然取遍1、2、3、…mi - 1这mi - 1个可能的值,每个值刚好取一次。这其中必然有一个余1的,就是所需的“乘率”。
这个问题特别适合用构造法来解,构造法又刚好是中国古代数学的长项,所以成为中国剩余定理,绝非幸致。】