中国人应知的古代科技常识
上QQ阅读APP看书,第一时间看更新

数学·物理

1 “韩信点兵”是怎样一个数学问题?

韩信是汉初名将,民间流传一句歇后语“韩信点兵,多多益善”,用来形容韩信的军事才能。有意思的是,“韩信点兵”也是一个流传很广的数学问题。据说韩信在点兵的时候,会先让士兵3人站成一排,记下最后多出的人数;再让士兵5人站成一排,又记下最后多出的人数;最后让士兵7人站成一排,同样记下最后多出的人数。这样他就能算出自己部队的总人数了。

韩信像

在我国,“韩信点兵”问题最早出现在南北朝时期的数学著作《孙子算经》中,叫作“物不知数”问题:“一个整数除以三余二,除以五余三,除以七余二,求这个整数。”这个问题因此也被称为“孙子问题”。此类问题在现代数学中叫作“一次同余问题”,其解法称为“中国剩余定理”或“孙子定理”。

宋代数学家秦九韶在《数书九章》中对这个问题做出了完整系统的解答,称为“大衍求一术”。明代数学家程大位则在《算法统宗》中将它的解法编成易于上口的《孙子歌诀》:“三人同行七十稀,五树梅花廿一支,七子团圆正半月,除百零五使得知。”它的意思是:将除以3得到的余数乘以70,除以5得到的余数乘以21,除以7得到的余数乘以15,全部加起来后减去105(或者105的倍数),得到的余数就是最后的答案。按照这个方法,《孙子算经》中“物不知数”问题的最小答案是23。