万书网 > 文学作品 > 爸爸教的数学 > 第三十五章 孙子点兵

第三十五章 孙子点兵

    我们的古人在数论方面的成就是世界领先的,这种领先地位直到十八、十九世纪才被大数学家欧拉(1707—1783)和高斯(1777—1855)超过。

    妞妞很聪明,许多难题妞妞不但会解,有时候还能提出出乎爸爸意料的解法,可平时作业总是犯一些小的错误,这让爸爸和妞妞都很沮丧。每次爸爸提醒之后,妞妞又能很快找到错误之处,其实这还是粗心大意产生的毛病。【欢迎加入罗友书社,微信:15535237487,罗辑思维,得到APP,樊登读书会,喜马拉雅系列海量书籍与您分享】

    这一天妞妞写完数学作业,交给爸爸检查,爸爸又发现了两处非常明显的错误,爸爸有点恼火,对妞妞说:“15+8怎么成了33呢?两个分数的差,为什么需要用1来减它们的和呢?”

    妞妞讪讪地,低着头不说话。“拿回去自己改正吧!希望以后做完题之后,自己检查验算一下。爸爸的检查并不是必需的,如果你的题自己不检查,爸爸也不再给你检查了。”

    很快妞妞的更正完成了,还不错,全对了。“爸爸知道妞妞的作业有些多,但是越是这个时候越需要我们的心静下来。如果只图快,反而会误事的。”爸爸的话语重心长。

    妞妞点点头。爸爸接着说:“我们今天的趣味数学要讲一个古老的数学题‘有物不知其数’。这个题有多老呢?它最早出现在公元四世纪的数学著作《孙子算经》里面,也就是大约一千六百多年以前。”

    “哦,这么久呀!”妞妞的声调里露出许多的惊讶。

    “那个时候我们的古人在数论方面的成就是世界领先的,这种领先地位直到十八、十九世纪才被大数学家欧拉(1707—1783)和高斯(1777—1855)超过。今天我们就来讲讲数论中的一个问题。问题不难,你准能听懂。”

    数学家们解决的问题自己也能听懂?妞妞来了精神,两只眼睛亮亮地看着爸爸。

    “题目是这样的。‘有物不知其数,三个一数余二,五个一数余三,七个一数又余二,问该物总数几何?’意思是说有一样东西,不知道有多少个,三个三个来数,余二个;五个五个来数,余三个;七个七个来数,余二个。问它有多少个?”

    妞妞听完后思考了一会儿,说道:“这个问题我会做。”说着在纸上写下了下面的运算过程:

    3的倍数多2可以是:2,5,8,11,14,17,20,23,26,29,32,35。

    5的倍数多3可以是:3,8,13,18,23,28,33,38,43,48。

    7的倍数多2可以是:2,9,16,23,30,37,44,51,58,65。

    “注意到它们有共同的值23,所以23是满足这三个条件的最小的答案。”妞妞对爸爸说。

    “非常正确。这种问题在数学上叫不定方程组,所谓不定方程组就是未知数多于方程数,有无穷多个解的方程组。

    “比如,像刚才这个问题,我们可以设这个数字是N,这个方程组就是N=3×N1+2,N=5×N2+3,N=7×N3+2,其中N1,N2,N3都是整数。这个方程组有四个未知数,只有三个方程,有无数组解。比如,23、128、233都可以满足问题的要求,不信妞妞可以试一试。”

    妞妞用233分别除以3,5,7,结果确实就像爸爸说的。“还有什么样的数字可以满足这个问题的要求呢?”

    爸爸笑着说:“我们古人对这一个问题的研究直接就形成了现代数论中的剩余定理。古人有一首诗《孙子歌》就是说的对这个问题的解答。

    “‘三人同行七十稀,

    五树梅花廿一枝,

    七子团圆正半月,

    除百零五便得知。’

    “把数字藏在诗歌里面,‘七十稀’‘廿一枝’和‘正半月’,就是暗指三个关键的数字70,21,15。

    “三三数之,取数七十,与余数二相乘;

    五五数之,取数二十一,与余数三相乘;

    七七数之,取数十五,与余数二相乘。

    “将诸乘积相加,然后减去一百零五的倍数。能减多少个105就减多少个,这样就能获得最小解。列成算式就是:N=70×2+21×3+15×2-2×105=23。换句话说,23之后每隔105就有一个解。”

    “哦,这是因为105是3、5、7的最小公倍数吧!”妞妞的理解能力确实在加强。

    “对!余数其实还是可以变动的,《孙子算经》也说到只要把上面算法中的余数分别换成新的余数就行了。以R1、R2、R3表示这些余数,那么《孙子算经》给出了通用的公式:

    N=70×R1+21×R2+15×R3-P×105(N,P是整数)。

    “妞妞可以任意去试,绝不会有错。只是我们谁都会问这三个关键性的数字又是如何来的呢?这个标准公式又是如何获得的呢?”

    妞妞听得很认真,一言不发地点点头,聚精会神地看着爸爸。爸爸在纸上写下如下的算式:

    “也就是说,这三个数可以从最小公倍数M=3×5×7=105中各约去模数3、5、7后,再分别乘以整数2、1、1而得到。假令k1=2,k2=1,k3=1,那么整数ki(i=1,2,3)的选取使所得到的三个数70、21、15被相应模数除的时候余数都是1。由此出发,立即可以推出,在余数是R1、R2、R3的情况。”爸爸接着写道:

    “对呀!好奇妙耶!这就像是设计出来的!”妞妞拍了好几下手,兴奋得直想跳。

    “这个数字不能保证它是最小的解,所以就需要减掉它们的公倍数105,能减多少个就减多少个,直到结果比公倍数小为止。70×R1+21×R2+15×R3-P×105这就是这个解的构造过程。”

    “这就是剩余定理吗?”妞妞问道。

    “这还只是剩余定理的一个简本。假设有一数N,分别被两两互素的几个数a1,a2,…,an相除,得余数R1,R2,…,Rn。设M=a1×a2×…×an。我们首先需要求出一组数ki,i=1,2,…n,使它们满足除ai时余数是1。

    那么最小正整数解就是:

    “这就是现代数论中著名的剩余定理。也被世界上的数学家公称为‘中国剩余定理’,以纪念我们的祖先在这方面的卓越的贡献。”

    妞妞问:“这个公式看上去确实非常美,有一点我不太懂,什么是互素呢?”

    “互素就是他们彼此没有公约数(除了1之外),两两互素就是任何两个数字都没有公约数。只有这样才能保证公式的正确。妞妞能不能够用这个公式完成下面的一个题目呢?”爸爸交给妞妞一张纸,上面有这样一个题目:

    有一个数,除5余3,除7余2,除11余7,除13余6,请问这个数最小是多少?