韩信点兵
韩信是我国历史上著名的兵法家之一,“韩信点兵”说的是:某天扎营后,韩信为了弄清某营帐士兵的具体人数(大概人数他知道),却并不亲自点数,只是传令下去,让那个营帐的士兵分几次按不同人数列队,并把每次列队后的剩余人数①报上来。得知这几次列队的余数后,韩信马上就能把士兵的总数算出来。
韩信点兵的秘诀在哪里呢?为了便于讨论,设这些士兵先后按 3 、5 、7 人数列队,它们的余数分别为 a 、b 、c 。
解法 1 :由题意可立方程式
x = 3n1 + a,
x = 5n + b,
(1)
(2)
2
x = 7n3 + c。
(3)
因 3 、5、7 的最小公倍数是 105,故将(1)×35 、(2)×21、(3)×15,
得
35x = 105n1 + 35a,
21x = 105n + 21b,
(4)
(5)
2
15x = 105n 3 + 15c。
(5)+(6)-(4),得
(6)
x=-35a+21b+15c+(n3-n2-n1)·105
=105(n3+n2-a)+70a+21b+15c 。 令 70a+21b+15c=105n4+r,上式变为x=105(n4+n3+n2-n1-a)+r
=105n+r。
式(7)表明 x 有无穷解,r 是最小的一个正整数解。105 是 3 、5 、7 的最小公倍数,将式(7)代入(1)、(2)、(3)式后,无论 n 取任一正整数,三个余数 a 、b 、c 的值总不变。
如设 a = 1、b=2、c=3,由70a+21b+15c=157=105+52,
得 r=52。
再由式(7)得 x=105n+52。
即知士兵的总人数为 52 人、157 人、262 人,⋯⋯。
在有无穷解的情况下,韩信又怎能确定士兵总数呢?因为韩信已知士兵的大概人数(设有一、二百人),所以他能在得知几次列队的余数后(设 a=1、b=2、c=3),很有把握地算出
了这部分士兵的总人数(x=105+52=157 人)。
解法Ⅱ:我们首先引入一个概念:“同余”。如果 a、b 两数分别除以 m 后所得余数相同,就说:对数 m,a 和 b“同余”。
记作 a≡b(modm),m 称为模数,符号≡为同余。不难理解,如某数 a 除以 m 所得的余数为 r,
即 a=ma1+r,
① 如排成五列横队,剩余人数可能是 0、1、2、3、4 人。
则 a≡r(modm)。例 1.∵14=5×2+4,
∴14≡4(mod5)。例 2.∵11=5 ×2+1,
21=5 × 4+1,
∴11≡21(mod5)。例 3.∵26=8×3+2,
-14=8×(-2)+2,
∴26≡-14(mod8)。
如设 a≡b(modm);c≡d(modm),可得以下同余式的推理: a+c≡ b+d(modm); a-c≡ b- d(modm); lca≡kb(modm);ac≡bd(modm); an≡bn(modm)。
在分析一些有关的余数问题时,如运用同余式及其推理,将使问题得到简化。由上述韩信点兵问题的题意可得同余式:
x≡a(mod3), x≡b(mod5),x≡c(mod7)。以上三式可变换为:
35x≡35a(mod105), (1)
21x≡21b(mod105), (2)
15x≡15c(mod105)。 (3) (2)+(3)- (1),得
x≡21gb+15c-35a(mod105), x≡70a+21b+15c(mod105)① 。 令 70a+21b+15c=105m+r,上式变为x≡r(mod105),
即得 x=105n+r。
以上两种解法得到的结果相同。关于三、五、七列队的解法,在我国民间还流传有一首诗:“三人同行七十稀,五树梅花甘一支,七子团圆整半月, 除百零五便可知。”
(赵为禾)