中国剩余定理的应用实例——韩信点兵_趣味数学 - 查字典数学网
数学中国剩余定理的应用实例...
首页>数学杂谈>趣味数学>中国剩余定...

中国剩余定理的应用实例——韩信点兵

2016-07-04 收藏

物不知其数问题出自一千六百年前我国古代数学名著《孙子算经》。原题为:"今有物不知其数,三三数之二,五五数之三,七七数之二,问物几何?"

这道题的意思是:有一批物品,不知道有几件。如果三件三件地数,就会剩下两件;如果五件五件地数,就会剩下三件;如果七件七件地数,也会剩下两件。问:这批物品共有多少件?

变成一个纯粹的数学问题就是:有一个数,用3除余2,用5除余3,用7除余2.求这个数。

这个问题很简单:用3除余2,用7除也余2,所以用3与7的最小公倍数21除也余2,而用21除余2的数我们首先就会想到23;23恰好被5除余3,所以23就是本题的一个答案。

这个问题之所以简单,是由于有被3除和被7除余数相同这个特殊性。如果没有这个特殊性,问题就不那么简单了,也更有趣儿得多。

我们换一个例子;韩信点一队士兵的人数,三人一组余两人,五人一组余三人,七人一组余四人。问:这队士兵至少有多少人?

这个题目是要求出一个正数,使之用3除余2,用5除余3,用7除余4,而且希望所求出的数尽可能地小。

如果一位同学从来没有接触过这类问题,也能利用试验加分析的办法一步一步地增加条件推出答案。

例如我们从用3除余2这个条件开始。满足这个条件的数是3n+2,其中n是非负整数。

要使3n+2还能满足用5除余3的条件,可以把n分别用1,2,3,…代入来试。当n=1时,3n+2=5,5除以5不用余3,不合题意;当n=2时,3n+2=8,8除以5正好余3,可见8这个数同时满足用3除余2和用5除余3这两个条件。

最后一个条件是用7除余4.8不满足这个条件。我们要在8的基础上得到一个数,使之同时满足三个条件。

为此,我们想到,可以使新数等于8与3和5的一个倍数的和。因为8加上3与5的任何整数倍所得之和除以3仍然余2,除以5仍然余3.于是我们让新数为8+15m,分别把m=1,2,…代进去试验。当试到m=3时,得到8+15m=53,53除以7恰好余4,因而53合乎题目要求。

我国古代学者早就研究过这个问题。例如我国明朝数学家程大位在他著的《算法统宗》(1593年)中就用四句很通俗的口诀暗示了此题的解法:

三人同行七十稀,

五树梅花甘一枝,

七子团圆正半月,

除百零五便得知。

"正半月"暗指15."除百零五"的原意是,当所得的数比105大时,就105、105地往下减,使之小于105;这相当于用105去除,求出余数。

这四句口诀暗示的意思是:当除数分别是3、5、7时,用70乘以用3除的余数,用21乘以用5除的余数,用15乘以用7除的余数,然后把这三个乘积相加。加得的结果如果比105大,就除以105,所得的余数就是满足题目要求的最小正整数解。

按这四句口诀暗示的方法计算韩信点的这队士兵的人数可得:

70×2+21×3+15×4=263,

263=2×105+53,

所以,这队士兵至少有53人。

在这种方法里,我们看到:70、21、15这三个数很重要,稍加研究,可以发现它们的特点是:

70是5与7的倍数,而用3除余1;

21是3与7的倍数,而用5除余1;

15是3与5的倍数,而用7除余1.

因而

70×2是5与7的倍数,用3除余2;

21×3是3与7的倍数,用5除余3;

15×4是3与5的倍数,用7除余4.

如果一个数以a余数为b,那么给这个数加上a的一个倍数以后再除以a,余数仍然是b.所以,把70×2、21×3与15×4都加起来所得的结果能同时满足"3除余2、用5除余3、用7除余4"的要求。一般地,

70m+21n+15k(1≤m<3,1≤n<5,1≤k<7)

能同时满足"用3除余m、用5除余n、用7除余k"的要求。除以105取余数,是为了求合乎题意的最小正整数解。

我们已经知道了70、21、15这三个数的性质和用处,那么,是怎么把它们找到的呢?要是换了一个题目,三个除数不再是3、5、7,应该怎样去求出类似的有用的数呢?

为了求出是5与7的倍数而用3除余1的数,我们看看5与7的最小公倍数是否合乎要求。5与7的最小公倍数是5×7=35,35除以3余2,35的2倍除以3余2,35的2倍除以3就能余1了,于是我们得到了"三人同行七十稀".

为了求出是3与7的倍数而用5除余1的数,我们看看3与7的最小公倍数是否合乎要求。3与7的最小公倍数是3×7=21,21除以5恰好余1,于是我们得到了"五树梅花甘一枝".

为了求出是3与5的倍数而用7除余1的数,我们看看3与5的最小公倍数是否合乎要求。3与5的最小公倍数是3×5=15,15除以7恰好余1,因而我们得到了"七子团圆正半月".

3、5、7的最小公倍数是105,所以"除百零五便得知".

依照上面的思路,我们可以举一反三。

例如:试求一数,使之用4除余3,用5除余2,用7除余5.

解我们先求是5与7的倍数而用4除余1的数;5与7的最小公倍数是5×7=35,35除以4余3,3×3除以4余1,因而35×3=105除以4余1,105是5与7的倍数而用4除余1的数。

我们再求4与7的倍数而用5除余1的数;4与7的最小公倍数是4×7=28,28除以5余3,3×7除以5余1,因而28×7=196除余5余1,所以196是4与7的倍数而用5除余1的数。

最后求是4与5的倍数而用7除余1的数:4与5的最小公倍数是4×5=20,20除以7余6,6×6除以7余1,因而20×6=120除以7余1,所以120是4与5的倍数而用7除余1的数。

利用105、196、120这三个数可以求出符合题目要求的解:

105×3+196×2+120×5=1307.

由于4、5、7的最小公倍数是4×5×7=140,1307大于140,所以1307不是合乎题目要求的最小的解。用1037除以140得到的余数是47,47是合乎题目的最小的正整数解。

一般地,

105m+196n+120k(1≤m<4,1≤n<5,1≤k<7)

是用4除余m,用5除余n,用7除余k的数;(105m+196n+120k)除以140所得的余数是满足上面三个条件的最小的正数。

上面我们是为了写出105m+196n+120k这个一般表达式才求出了105这个特征数。如果只是为了解答我们这个具体的例题,由于5×7=35既是5与7的倍数除以4又余3,就不必求出105再乘以3了。

35+196×2+120×5=1027

就是符合题意的数。

1027=7×140+47,

由此也可以得出符合题意的最小正整数解47.

《算法统宗》中把在以3、5、7为除数的"物不知其数"问题中起重要作用的70、21、15这几个特征数用几句口诀表达出来了,我们也可以把在以4、5、7为除数的问题中起重要作用的105、196、120这几个特征数编为口诀。留给读者自己去编吧。

凡是三个除数两两互质的情况,都可以用上面的方法求解。

上面的方法所依据的理论,在中国称之为孙子定理,国外的书籍称之为中国剩余定理。

查看全部
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读

分类
  • 级别
  • 年级
  • 类别
  • 版本
  • 上下册
学习阶段
小学
初中
高中
不限
年级
一年级 二年级
三年级 四年级
五年级 六年级
初一 初二
初三 高一
高二 高三
小考 中考
高考
不限
类别
数学教案
数学课件
数学试题
不限
版本
人教版 苏教版
北师版 冀教版
西师版 浙教版
青岛版 北京版
华师大版 湘教版
鲁教版 苏科版
沪教版 新课标A版
新课标B版 上海教育版
部编版
不限
上下册
上册
下册
不限