经典证明:Conway的士兵

标签: 趣题 Brain Storm 惊奇数学事实 数列 证明 | 发表时间:2011-09-11 22:53 | 作者:Matrix67 欲望道人
出处:http://www.matrix67.com/blog

    今天听说了 Conway's Soldiers ,这是 Conway 大牛在 1961 年提出的一个数学谜题(似乎 Conway 的出镜率也太高了),我觉得非常有意思,在这里跟大家介绍一下。内容基本上来自于 Wikipedia 的相关页面

    假设有一个无限大的棋盘。棋盘上可以放置一些象征着士兵的棋子。一个棋子可以跳过并吃掉和它相邻的一枚棋子(就像孔明棋一样)。这是棋子的唯一一种移动方式。现在,在某个位置画一条无限长的水平线,你需要在水平线下面放置足够多的棋子,使得他们前仆后继地往水平线上方跳,最终能够跳到水平线以上 n 个单位的位置。

      

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


    我们还能让士兵们冲到更远吗?可以的。下图显示的就是 n = 4 的最少棋子摆布方案,它一共要用 20 枚棋子(看看你能不能看出具体的移动步骤)。有趣的是, Conway 证明了下面这个或许有些不可思议的事实:当 n = 5 时,这个问题就不再有解了。换句话说,无论用多少个初始棋子,我们都不可能冲到 5 个单位远的位置去。这个证明过程非常神奇,它竟然和黄金分割莫名其妙地扯上了关系。

      

    我们给每个格子标一个关于 x 的单项式。把目标格子标记为 x0 ,也就是 1 ;一个格子离目标格子有多少步(相当于 manhattan 距离),就给这个格子标上 x 的多少次方。于是,整个棋盘就变成了下面这样。棋盘上的若干棋子形成的布局,也就对应了一个关于 x 的多项式。例如,下图中的 6 枚棋子就对应了多项式 x4 + 3 · x5 + 2 · x6

      

    每次移动棋子,我们都会改变一个棋子的位置,同时从棋盘中拿掉另一个棋子,从而让整个多项式发生变化。我们把棋子的移动分成三类:正向移动、中性移动、背向移动(分别如上图中左、中、右三个棋子跳跃的例子)。所谓正向移动,也就是朝着目标点的方向跳跃,棋子落点处的指数比出发点的指数更小。假如棋子的出发点所在位置是 xn,那么这次跳跃给整个多项式带来的变化就是减去了一个 xn ,加上了一个 xn-2 ,并且还减去了一个 xn-1 。我们可以记作 xn-2 (1 - x - x2) 。中性移动就是指一个棋子从标有 xn 的格子跳到了另一个标有 xn 的格子,和目标点的距离并未变化,仅仅会让棋盘上少一个棋子 xn-1 。因此,这种移动给整个多项式带来的变化就是 - xn-1 。背向移动则是往远离目标点的方向跳跃,它给多项式带来的变化则是 - xn + xn+2 - xn+1 ,即 xn (x2 - x - 1) 。

    现在,我们需要选取一个适当的底数 x ,使得正向移动给多项式带来的变化为 0 。为此,我们需要让 x 满足 1 - x - x2 = 0 ,解得 x = (±√5 - 1) / 2 。我们选取其中的正数解 (√5 - 1) / 2 。出人意料的是,它正是神奇的黄金分割数 φ ≈ 0.618 。

    这样,棋盘的每个格子都对应了一个形如 φn 的正实数,其中目标点是 φ0 ,也就是 1 。定义一个棋局的价值为各个棋子位置上所对应的正实数之和。任何正向移动都不会改变布局的价值,其它形式的移动都会让价值变小。我们的目标就是把整个阵型的价值变成 1 (或者更大,如果最后还有残余棋子的话)。

    注意 φ 的一些有趣的性质。由于 φ2 = 1 - φ ,不断在等式两边乘以 φ ,我们还可以得到 φ3 = φ - φ2 ,φ4 = φ2 - φ3 , φ5 = φ3 - φ4 等等。把等式左边全部加起来,也就得到 φ2 + φ3 + φ4 + … = 1 了。

      

    当 n 等于 1 时,水平线以下第一行的格子的价值总和是 φ + 2 · φ2 + 2 · φ3 + 2 · φ4 + … ,第二行每个格子的价值分别是第一行对应格子的 φ 倍,第三行格子的价值则再乘以 φ ,以此类推。因此,水平线以下的所有格子的总价值为:

        (φ + 2 · φ2 + 2 · φ3 + 2 · φ4 + …) (1 + φ + φ2 + φ3 + …)
     = (φ + 2)(1 + φ + 1)
     = (φ + 2)2
     = φ2 + 4 φ + 4
     = 5 + 3 φ ,

    其中,最后一步再次用到了 φ2 = 1 - φ 。

    当 n = 2 时,水平线离目标点的距离增加一个单位,从而导致每个格子的价值都乘以了一个 φ ,于是水平线下的所有格子的价值总和就是 (5 + 3 φ) φ = 5 φ + 3 φ2 = 3 + 2 φ 。类似的, n = 3 时水平线下方的格子总价值为 (3 + 2 φ) φ = 3 φ + 2 φ2 = 2 + φ , n = 4 时这个值变为了 (2 + φ) φ = 2 φ + φ2 = 1 + φ , n = 5 时这个值变为了 (1+ φ) φ = φ + φ2 = 1 。这表明,当 n 等于 5 时,如果在水平线以下的所有格子里都放上棋子,总价值正好为 1 。当然,棋子的数量不可能是无限的,因而初始布局的价值是严格小于 1 的,我们不可能把它变为一个价值大于等于 1 的棋局。这就说明, n = 5 时问题是没有解的。

相关 [经典 证明 conway] 推荐:

经典证明:Conway的士兵

- 欲望道人 - Matrix67: My Blog
    今天听说了 Conway's Soldiers ,这是 Conway 大牛在 1961 年提出的一个数学谜题(似乎 Conway 的出镜率也太高了),我觉得非常有意思,在这里跟大家介绍一下. 内容基本上来自于 Wikipedia 的相关页面.     假设有一个无限大的棋盘. 棋盘上可以放置一些象征着士兵的棋子.

经典证明:1+2+3+...+(n-1) = C(n,2)

- hhx - Matrix67: My Blog
来源:MathOverflow.

经典证明:等边三角形内一点到各顶点的距离长可构成一个三角形

- Andy - Matrix67: My Blog
    这是初中平面几何的一个经典问题:等边三角形 ABC 内有任意一点 P,求证 PA 、 PB 、 PC 的长度一定能构成一个三角形.     这里给出两种证明方法. 传统的证明方法是,把 △CPA 绕着点 C 逆时针旋转 60 度,从而旋转后的 CA 将会和 CB 重合,同时 P 点落在了 P' 的位置.

经典证明:能否在平面上写下不可数个不相交的Y?

- Sosi - Matrix67: My Blog
    这篇文章收录了 Which Way Did the Bicycle Go 趣题集中一个非常有趣的问题:是否有可能在平面上画不可数个不相交的 8. 对于任意一个 8 字形,在两个洞里各取一个有理点 P 、 Q (由于平面上的有理点是稠密的,这是总能办到的),则称这个 8 字形圈住了有理点对 (P, Q).

证明题

- Kyle - 《槽边往事》---比特海日志
(图库流量超标,欢迎支持:点击注册Yupoo). 是安于现在的生活并且学着享受庸常,还是甘冒下坠的风险振翅飞往远方. 这是我最近在《树洞》里经常看到的问题. 说实话,我也觉得非常惊奇,竟然有那么多人觉得现实在一点点埋葬自己的梦想,同时又没有足够的勇气跨出一步. 每次说到看不到的山那头,海的那一端,总有无数颗小心在各个地方黯然破碎.

证明0.999...=1

- Zane - Solidot
数学中最妙不可言的部分是其简洁优美的陈述,它们常常会让人惊呼“这不是真的”,例如e^(iπ)+1=0. 在《蒙大拿州数学爱好者》杂志上,两位研究人员用了28页探讨了一个已经被深入讨论过的、但常常让学生感到困惑的问题:0.999...等于1(PDF). 众所周知,循环小数0.999…等于实数1,相关的证明很多,例如:设a= 0.999...,两边同乘以10得到10a=9.99...,等式两边再减去a得到10a-a=9,即9a=9,a=1;另一个证明,1/9 = 0.111...,9 x (1/9) = 0.999...于是1 = 0.999....

经典论文 — REST

- ripwu - kernelchina
牛人Roy Thomas Fielding的博士论文,此处可以访问到英文版,中文版可以google一下. HTTP1.0,1.1版本以及URI规范的主要作者,Apache的co-founder. 在写这篇论文之前已经很牛了,笔者不明白的是这种档次牛人还要读博士,文凭有这么重要吗. 文中没有任何令人眼花的数学公式和统计图表,实际上是一篇描述URI,HTTP设计经验教训总结的文章.

经典空姐照

- renwen - 东西

jstl标签经典

- - CSDN博客推荐文章
库 :Core(核心库). 描述 : 标签是一个最常用的标签,用于在   JSP   中显示数据.  它的作用是用来替代通过 JSP 内   置对象 out 或者 <%=%> 标签来输出对象的值. 用于指定在使用  标记输出诸如“ < ”、“ > ”、“ ’ ”、“” ”和“ & ”之类的字符(在  HTML  和  XML  中具有特殊意义)时是否应该进行转义.

sql经典语句

- - 数据库 - ITeye博客
3、说明:备份sql server. --- 创建 备份数据的 device. table tab_new like tab_old (使用旧表创建新表). DB2中列加上后数据类型也不能改变,唯一能改变的是增加. 注:索引是不可更改的,想更改必须删除重新建. 10、说明:几个简单的基本的sql语句.