而另一版本的韩信点兵是这样说得:据说秦朝末年的时候,战火四起,楚汉相争。在一次战斗中,韩信率领着1500名将士同楚军将领李锋的军队交战。
战役非常惨烈,双方全都拼死作战,得知死了四五百人,在韩信的带领下,汉军大败楚军,楚军仓惶地逃回了营地,韩信也整理了兵马返回营地。然而当韩信率领剩下的士兵返回营地时,后军来报说楚军追来。这下汉军可炸开了锅,本来就已经身心疲惫的士兵都慌乱不已。
韩信骑马来到坡顶,见追兵不足500人,便急速点兵迎敌。他命令士兵3人一排,结果多出2名;接着韩信又命令士兵5人一排,结果多出3名;他又命令士兵7人一排,结果又多出2名。于是韩信马上说道:"我军有1073名兄弟,追兵不过区区500人,我们一定能打败敌人。"听了韩信的话,兵士们士气大振,一鼓作气打败了追来的敌军。
韩信如何快速得知自己士兵的人数呢?这个问题转化成数学问题就是一个数除以3余2,除以5余3,除以7余2,求符合条件的数。下面提供2中解题思路:
1)筛法
1,3,5,7,9,11,13,15,17,19,21,23,25,… ( 用2除余1)
5, 11, 17, 23, … ( 用3除余2)
11, 23,… ( 用4除余3)
再从中挑"用5除余4"的数,… 一直筛选下去,舍得下功夫,就一定可得结果。并且看起来,解,还不是唯一的;可能有无穷多个解。
化繁为简的思想:当问题中有很多类似的条件时,我们先只看其中两三个条件,这就是化繁为简。一个复杂的问题,如果在简化时仍然保留了原来问题的特点和本质,那么简化就"不失一般性"。学会"简化问题"与学会"推广问题"一样,是一种重要的数学能力。
寻找规律的思想:把我们的解题方法总结为筛法是重要的进步,是质的飞跃,找到规律了。
筛法是一般性方法,还可以用来解决其他类似的问题。
2)公倍数法
①化繁为简 ,我们还是先看只有前两个条件的简化题目。
1,3,5,7,9,11,13,15,17,19,21,23,25,… ( 用2除余1)
5,11,17,23,… ( 用3除余2)
上述筛选过程的第一步,得到:1,3,5,7,9,11,13,15,17,19,21,23,25,…其实是列出了"用2除余1"的数组成的数列。这个数列实际上是用带余除法的式子得到的。
所谓"带余除法",是指整数的如下:对任意 b≠0,被除数a,除数b , 必唯一存在商 q和余 数 r ,使a=bq r,0≤r<b. 回到求"用2除余1的数"的问题。设这样的数为 x ,则 x= 2n 1 。这里x 是被除数,2是除数,n是商,1是余,且 0≤1<2 。当取 n=0,1,2,3,4,…… 时,用上式求得的x 正好组成上述数列1,3,5,7,9,11,13,15,17,19,21,23,25,…
接着从中筛选出"用3除余2"的数,就是挑出符合下面"带余除法"表达式x=3n 2
的数,这里n可取0,1,2,3,4,… 再继续做下去. 对整个问题寻找规律,: 今有物不知其数,二二数之剩1,三三数之剩2,四四数之剩3,五五数之剩4,六六数之剩5,七七数之剩6,八八数之剩7,九九数之剩8,问物几何?
②寻找规律,设问题中,需要求的数是x,则x被2,3,4,5,6,7,8,9去除,所得的余数都是比除数少1,于是我们把被除数x再加1,则x 1就可被2,3,4,5,6,7,8,9均整除。也就是说,x 1是2,3,4,5,6,7,8,9的公倍数,从而是其最小公倍数[2,3,4,5,6,7,8,9]的倍数。X 1=2520k,k=1,2,3….
怎么解决韩信点兵问题呢?设士兵为x人,则x=3a 2,x=5b 3,x=7c 2,a、b、c为正整数,观察可得x-2=21n,n为正整数,当n=1,2,3,…,x=23,44,65,…,23被5除余3,所以满足条件的最小人数为23人,x=[3,5,7]k 23=105k 23,因为已经伤亡四五百人,所以1000<105k 23<1100,k=10,x=1073.
牛气的韩信熟知余数问题,所以快速统计出自己队伍的人数然后迅速制定作战策略,小伙伴们,你的数论知识现在能不能快速帮你解决些实际问题呢?
1. 一个数在200与400之间,它被3除余2,被7除余3,被8除余5,求该数。
(解:112×2+120×3+105×5+168k,取k=-5得该数为269。)
2. 一个数除以5余4,除以7余1,除以3余2,这个数不超过100,求这个数?
(解:(3*7)*4 (3*5) (5*7)= 134。这个数小于100,134— 105= 29。)
古代的算法在我国有许多名称,如"韩信点兵","鬼谷算","隔墙算","剪管术","神奇妙算"等等,题目与解法都载于我国古代重要的数学著作《孙子算经》中。著作中首次提到了同余方程组问题,以及以上具体问题的解法,一般认为这是三国或晋时的著作,比刘邦生活的年代要晚近五百年,算法口诀诗则载于明朝程大位的《算法统宗》,诗中数字隐含的口诀前面已经解释了。
《孙子算经》中是这样给出这类问题的解法:"三三数之剩二,则置一百四十;五五数之剩三,置六十三;七七数之剩二,置三十;并之得二百三十三,以二百一十减之,即得。凡三三数之剩一,则置七十;五五数之剩一,则置二十一;七七数之剩一,则置十五,一百六以上,以一百五减之,即得。
1247年南宋的数学家秦九韶把《孙子算经》中"物不知其数"一题的方法推广到一般的情况,得到称之为"大衍求一术"的方法,在《数书九章》中发表。这个结论在欧洲要到十八世纪才由数学家高斯和欧拉发现。所以世界公认这个定理是中国人最早发现的,被称为"孙子定理"或"中国剩余定理"。
对于我国古代数学名著《孙子算经》中有"物不知数":今有物不知其数,三三数之剩2,五五数之剩3,七七数之剩2,问物几何?如何解析?
首先使用单因子构件凑成法,我们作两个方面的简化:一方面是每次只考虑"一个除式"有余数的情况(即另两个除式都是整除的情况);另一方面是把余数都简化为最简单的1。这样得到三组方程:
1 x=3a 1,x=5b,x=7c,
2 y=3a,y=5b 1,y=7c,
3 z=3a,z=5b,z=7c 1, (a、b、c为正整数),
①式意味着,在5和7的公倍数中(35,70,105,…)寻找被3除余1的数;②式意味着,在3和7的公倍数中(21,42,63,…)寻找被5除余1的数;③式意味着,在3和5的公倍数中(15,30,45,…)寻找被7除余1的数。 对①式而言,这个数可以取70,对②式而言,这个数可以取21,对③式而言,这个数可以取15。于是①式两边同减70变为这样:第二式右边仍是5的倍数,第三式右边仍是7的倍数,而第一式右边因为减的70是"用3除余1"的数,正好原来也多一个1,减没了;第一式右边也成为了倍数,是3的倍数。由①得x-70=3( a-23),x-70=5(b-14),x-70=7(c-10);x-70= [3,5,7 ]k=105k,k为正整数,x=105k1 70;由②式两边同减21变得y-21=3 ( a-7 ),y-21=5 ( b-4 ),y-21=7 ( c-3), y=105k2 21; ③式两边同减15变得z=105k3 15;现在重复一下:所得的x是被3除余1,被5和7除余0的数;y是被5除余1,被3和7除余0的数;z是被7除余1,被3和5除余0的数。那么,凑出s=2x 3y 2z, s不就是我们需要求的数吗?
s=140 63 30 105 (2k1 3k2 2k3 )=233 105k;k=-2,-1,0,1,2,3….
这就是《孙子算经》中"物不知其数"一题的解,有无穷多解,最小的正整数解是23(k=-2 时)。
所以,上述方法叫"单因子构件凑成法"解决"由几个平行条件表述的问题"的方法最大优点是可以任意改变余数加以推广:题:有物不知其数,三三数之剩a,五五数之剩b,七七数之剩c,问物几何? 答:解为s=70a 21b 15c 105k,k为整数应该使s为正。
要注意的是,前面的问题中,3,5,7是两两互素的,所以"三三数,五五数,七七数"得余数后可用此公式。但"四四数,六六数,九九数"得余数后就不能用此公式,因为4、6、9并不是两两互素的。
有趣的应用:某单位有100把锁,分别编号为1,2,3,…,100。现在要对钥匙编号,使外单位的人看不懂,而本单位的人一看见锁的号码就知道该用哪一把钥匙。
能采用的方法很多,其中一种就是利用中国剩余定理,把锁的号码被3,5,7去除所得的三个余数来作钥匙的号码(首位余数是0时,也不能省略)。这样每把钥匙都有一个三位数编号。例如23号锁的钥匙编号是232号,52号锁的钥匙编号是123号。8号锁——231 19号锁——145,45号锁——003 ,52号锁——123 因为只有100把锁,不超过105,所以锁的号与钥匙的号是一一对应的。如果希望保密性再强一点儿,则可以把刚才所说的钥匙编号加上一个固定的常数作为新的钥匙编号系统。甚至可以每过一个月更换一次这个常数。这样,仍不破坏锁的号与钥匙的号之间的一一对应,而外人则更难知道了。