在“韩信点兵”里为什么要3个一数,5个一数,7个一数

在“韩信点兵”里为什么用3、5、7这三个数?用其他的数可以吗?要回答这个问题,必须研究韩信点兵问题的解法。

我们把韩信点兵的问题写成纯粹的数学问题,就是:有一个数被3除余a,被5除余b,被7除余c。问这个数最小等于多少?(这里a、b、c,是可以任意选取的)

按照韩信点兵的计算方法,这个数应等于70a+21b+15c。那么,

第一步:求d=70a+21b+15c。

第二步:如果d比105大,就减去105;或者减去105的若干倍,直到使所得的结果比105小。

这就是韩信点兵问题的纯粹数学化。如果取a=1,b=2,c=2,就得到上面“什么叫做韩信点兵”一文中的例子。这个例子可以这样解:

d=70×1+21×2+15×2

=142。

142-105=37。

37就是所求的得数。

现在我们就用这个例子,来分析一下韩信点兵问题为什么可以这样解。这里的关键问题是70、21、15、105这四个数和3、5、7中间的关系:


(1)因为70=2×5×7,

所以,70是5与7的公倍数。

又因为

70=3×23+1,

所以,70被3除后余数是1(商是23)。

因此,70是5与7的一个公倍数,它被3除后余数是1。

(2)同样的道理,21是3与7的一个公倍数,它被5除后余数是1。

(3)15是3与5的一个公倍数,它被7除后余数是1。

(4)105是3、5、7的最小公倍数。

105=3×5×7。

根据上面的这些关系,d-105确实是所求的得数。理由如下,因为

d-105=(3×23+1)×1+(3×7×2)+(3×5×2)-(3×5×7)

=3×23×1+1×1+3×7×2+3×5×2-3×5×7

=3×(23×1+7×2+5×2-5×7)+1

所以,d-105被3除的余数是1。

同样的道理,可以看出,d-105被5除后的余数是2;被7除后的余数是2。

也许你会问:在这样的问题中,5与7的公倍数里为什么一定有一个被3除余数是1呢?如果没有这样的数,是不是就不能解了呢?同样,为什么3与7的公倍数里一定有一个被5除余1的呢?为什么3与5的公倍数里一定有一个被7除余1的呢?

这个问题,提得很好。这就是“韩信点兵”里为什么要用3、5、7这三个数的理由。

我们知道,3、5、7中的任意两个数都是互素的。也就是说3、5;3、7;5、7的最大公约数都是1。这样的三个数称为是两两互素的。在“韩信点兵”里采用的三个数,只要是两两互素的就可以,不是两两互素的就不可以。

譬如4、6、7三个数不是两两互素的,其中4与6都是偶数,它们的最大公约数等于2。那么,6与7的任何一个公倍数都是偶数,被偶数4除得到的余数,也一定是偶数,而不可能等于1,所以,在这种情况下就找不到和70、21、15、105相当的四个数,因此,4、6、7这三个数在韩信点兵里就不能用。

又如2、3、11是两两互素的,因此,在这三个数之间一定可以找到与70、21、15、105相当的四个数,这就是:33、22、12和66。

因为33是3与11的一个公倍数,它被2除后,余数是1;

22是2与11的一个公倍数,它被3除后余数是1;

12是2与3的一个公倍数,它被11除后余数是1;

66是2、3、11的最小公倍数。

因此,在“韩信点兵”问题里也可以用2、3、11这三个数来数。

例如:有一个数,被2除余1,被3除余1,被11除余8。问这个数最小等于多少?

根据2、3、11与33、22、12和66的关系,可得:

33×1+22×1+12×8=151。

151-66×2=19。

所以,这个数最小等于19。