今天听说了 Conway's Soldiers ,这是 Conway 大牛在 1961 年提出的一个数学谜题(似乎 Conway 的出镜率也太高了),我觉得非常有意思,在这里跟大家介绍一下。内容基本上来自于 Wikipedia 的相关页面。
假设有一个无限大的棋盘。棋盘上可以放置一些象征着士兵的棋子。一个棋子可以跳过并吃掉和它相邻的一枚棋子(就像孔明棋一样)。这是棋子的唯一一种移动方式。现在,在某个位置画一条无限长的水平线,你需要在水平线下面放置足够多的棋子,使得它们前仆后继地往水平线上方跳,最终能够跳到水平线以上 n 个单位的位置。

如图所示,当 n = 1 时,两个棋子就够了。当 n = 2 时,我们需要 4 个棋子。当 n = 3 时,最少需要 8 个棋子。


,其中n是一个任取的大于等于1的常数。可以想像,这个函数的分子部分展开后是一个关于x的整系数多项式,最低次数为n,最高次数为2n。我们将用到这个函数的两个性质:首先,当0<x<1时,显然有0 < f(x) < 1/n!;其次,函数f及其任意阶导数在x=0和x=1处都是整数。为了证明后一个结论,首先注意到当x=0时,不管是多少阶的导数,除了常数项以外其余项都是0;常数项只可能在n<=k<=2n时出现(k表示k阶导数),但此时它等于一个整系数乘以k!/n!,显然也是个整数。另外,由于f(x)=f(1-x),根据复合函数的微分法我们立即得到
对任意x都成立,当然也就有
。