韩信点兵的故事,韩信每次集合部队,只要求部下先后按 1-3,1-5,1-7 报数(其实也不必报数,这么慢的方法,而是通过三人一行得除 3 得到的余数,再五人一行得除 5 得到的余数,最后七人一行得除 7 得到的余数),然后再根据报告一下各队每次报数的余数,就知道到了多少人。
这种巧妙算法,人们称为鬼谷算,也叫隔墙算,或成为韩信点兵,外国人称其为“中国剩余定理”(剩余大概就是余数的意思)。
到了明代,数学家程大位用诗歌概括了这一算法:
三人同行七十稀,
五树梅花廿一枝;
七子团圆正月半,
除百零五便得知。
这首诗的意思是,用 3 除所得的余数乘上 70,加上用 5 除所得余数乘以 21,再加上用 7 除所得的余数乘上 15,结果大于 105( 3×5×7 )就减去 105 的倍数,这样就知道所求的数了。
比如,一篮鸡蛋,三个三个地数余 1,五个五个地数余 2,七个七个地数余 3,问篮子有多少鸡蛋?
1×70+2×21+3×15=157157%105=52