回忆经典,讲述滑块游戏背后的数学故事

标签: 回忆 经典 讲述 | 发表时间:2011-08-02 10:37 | 作者:(author unknown) 风行水上
出处:http://www.guokr.com/

华容道作为80后和部分90一代的启蒙玩具,其经典度和怀旧感不逊李雷和韩梅梅。

/gkimage/ht/rw/tm/htrwtm.png

它号称“古老的中国游戏,与七巧板、九连环等中国传统益智玩具一起是中国难题的代表作”。实际上,据死理性派考据,华容道其实可不是什么传统中国游戏,它由英国人弗莱明发明,在上世纪30年代传入中国,是重排九宫的简化版。

重排九宫,又称八数字推盘(8-puzzle),是和华容道一样的滑块游戏(sliding puzzle)。今天死理性派就来讲述这个流行全球的游戏背后的数学故事。

/gkimage/3m/iq/fd/3miqfd.png

所有的重排九宫都可解吗?

在一个带框的木板上放入标有1到8的八个方块,在有限的空间内,怎样让这八个方块各归其位呢?最简单的做法当然是把方块都倒出来,然后放回去。当然这样有些无厘头,而且没有技术含量。不过如果真的把八块方块全倒出来再乱放回去,这样的8-puzzle还一定能重新复原吗?恐怕一些人早就听说过,对一个任意乱排的8-puzzle只有一半的可能性能够解开。有的人凭数学直觉可能就说了,这恐怕是奇偶性的问题吧。没错,当面对一个任意状态的8-puzzle时,我们可以根据其方块的排列方式算出一个整数,凭这个数的奇偶性就能断言8-puzzle可不可解。

而如何计算出这个数呢?这就要把方块排列方式“化归”到一个抽象的数学对象上,这样一来游戏规则(每步所允许的走法)就“化归”成了这个数学对象的某个属性,比如说奇偶不变性。所谓“化归”,是指在解决问题的过程中,数学家往往不是直接解决问题,而是对问题进行变形、转化,直到把它化归为某个(些)已解决,或容易解决的问题。

关于“化归法”有这样一个生动的解释,假设你能够用一个空水壶烧一壶热水。那如果所有条件不变,只是水壶中已有足够的水,该怎么办呢?通常人们会去进行下一个步骤。而数学家不这样,他们会倒去壶中的水,并且声称他们已经把这个问题化归成先前面已解决的的问题了。这虽是一个略带揶揄味道的笑话,不过至少说出了化归的基本特征。

/gkimage/6x/om/2x/6xom2x.png

注定无人能拿下的1000刀

前面已经说过,8-puzzle的各种可能的初始排法里面,只有一半的排列方式能被解开。19世纪90年代,自称是15-puzzle(即8-puzzle的4×4扩展版)的发明人的Sam Loyd 曾悬赏1000美金,征求能仅仅把14和15交换的方法,这也就是著名的重排十五问题。一千美金在当时非常吸引人,导致很多人不务正业成了“赏金猎人”。但是很遗憾,谁也没有拿走这它,或者可以这样说,其实谁也拿不走这一千美金。

/gkimage/tj/29/u0/tj29u0.png

滑块游戏可解性分析

其实早在1879年,Johnson 和 Story 两位数学家就证明了“重排十五”是不可解的。而他们使用的方法正是计算前文提到的那个整数——方块初始排列状态的逆序数。如果用数字9标识空白位置 ,那么下面这种情况方块的排序状态就可以记作 [2 3 1 4 5 6 7 8 9]。

/gkimage/z0/st/57/z0st57.png

容易看出[2,1],[3,1]是逆序的,即这里α=2(注意始终9表示空白方块,实际是不存在的,所以不在考察范围内)。逆序数在这里的实际意义是,如果上述这个状态的puzzle要回到自然状态[1 2 3 4 5 6 7 8 9],则需交换第二格和第三格,再交换第一格和第二格,共计步数为2。根据逆序数的奇偶性,Johnson 和 Story把方块的排列状态分为偶状态和奇状态。自然你也可以多余的随便交换别的两格再交换回来(在实际游戏过程中你确实可能出现这样的反复操作),不过我们只关心α的奇偶性。而奇妙之处正在于,遵循游戏规则的移动方式不可能改变方块排列状态的奇偶性!因为数字左右移动时状态对应的数列没有变化,故逆序数不变;而当数字从上往下(或者从下往上)移动时,例如方块 a i 下移时,相当于往后挪动了三个位置,即[ a 1 … a i a i+1 a i+2 … a 8 ]→[a 1 … a i+1 a i+2 a i … a 8 ],实际上就是 a i 与 a i+1 , a i 与 a i+2 依次进行邻换(数列中相邻两个数码相互交换),根据代数中的定理可知,一个数列经过偶数次的邻换,产生的新数列与原数列的逆序数奇偶性相同。因此重排九宫中,方块的移动不会改变其逆序数的奇偶性。说到这里问题就变得明了了,通过判断初始状态与目标状态的α值就能判定这个puzzle是否可解。而这个结论则可以推广到任意m×n型的滑块游戏中去。

回到重排十五问题,这个puzzle的初始状态[1 2 3 4 5 6 7 8 9 10 11 12 13 15 14 16]的逆序数是1([15 14]),与目标状态[1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16]的逆序数α=0奇偶性不同,所以必然不可解。

8-puzzle的操作攻略

前面已经细述如何判断任意状态的滑块游戏的可解性。那当面对一个的确可解的重排九宫时,又怎样移动方块,排列出目标状态呢?

这里提供一个三角轮换法则。仍用9代表空白方格,当它和三个方格(比如abc)构成一个矩形时,三个方格的位置就可通过简单的操作任意互换,如图所示。

/gkimage/qp/ox/gl/qpoxgl.png

而8-puzzle里任何三个字块只要能组成一个三角形,它们的位置都可以互换,因为空白方格总是可以先移动到指定位置与这个三角形构成矩形,在执行完互换后再原路返回,而其他格子的位置不会有变。比如我们现在要轮换abe三个方块之间的位置:

/gkimage/f1/ak/dp/f1akdp.png

这样一来,问题就化归为如何用这种三角形轮换来把8-puzzle解开了,这恐怕就不是什么难题了。

相关 [回忆 经典 讲述] 推荐:

回忆经典,讲述滑块游戏背后的数学故事

- 风行水上 - 果壳网 guokr.com - 果壳网
华容道作为80后和部分90一代的启蒙玩具,其经典度和怀旧感不逊李雷和韩梅梅. 它号称“古老的中国游戏,与七巧板、九连环等中国传统益智玩具一起是中国难题的代表作”. 实际上,据死理性派考据,华容道其实可不是什么传统中国游戏,它由英国人弗莱明发明,在上世纪30年代传入中国,是重排九宫的简化版. 重排九宫,又称八数字推盘(8-puzzle),是和华容道一样的滑块游戏(sliding puzzle).

80后难忘的经典童年回忆(三)

- 小郭 - 无聊哦
作为80后的人,童年虽然已离我们远去,当记忆逐渐变成碎片,当年的景象趋于模糊,这些,是否能唤醒你心中的那份纯真. 31、塑料皮笔记本,记歌词,贴贴画 呵呵. 35、BP机,也叫BB机,寻呼机. 36、竹蜻蜓、比谁转的远,那时我会做竹板的,哈哈. 37、上学能有个这个,很让同学羡慕的~~. 38、当年的文具盒都有乘法口诀表.

80后难忘的经典童年回忆(二)

- kaletoppest - 无聊哦
2、小时候都会把这个盖在头上胳膊上,哈哈. 5、这种贴画粘的好结实,小时候同学都粘胳膊上,被老师臭骂,刮都刮不掉. 6、忘记这个叫什么了,反正以前我老拿它往别人脸上甩,然后就粘住了. 8、初中花一百块学了几天电脑,就是介个样子滴. 那时天天打开文具盒陶醉地闻,嘿嘿. 11、跳跳糖,吃多了舌头会痛. 12、当年为了集这种飞镖卡,有点零钱全砸方便面上了.

仙剑奇侠传 – 永恒的经典 一个时代的回忆 | 小众软件 > 游戏

- Sepher - 小众软件
对于仙剑奇侠传这样一款经典, root 已经不想再说什么了,下面引用两段话吧@Appinn. “在16年前,一款名为《仙剑奇侠传》的DOS游戏的出现让无数玩家热泪盈眶,当时的感动相信很多人都还会记得. 作为国内最经典的RPG游戏 (没有之一),仙剑承载着游戏玩家们太多的回忆和感情. 对很多80后70后玩家来说,仙剑已经不仅是一款游戏,而是一个时代的烙印……”.

封存回忆

- 任笑 - Terry, Life, Images
    在日本横滨,有一家有趣的博物馆. 早在我去日本之前就已经从各种资料上熟知,变成了必去景点之一. 奇怪的是,我的日本朋友们居然都没有听说过这家博物馆,他们听说之后都觉得很有意思. 看来商家的广告是先做到了中国吧.      我说的就是日本横滨的拉面博物馆. 好吃的拉面当然是原因之一,另外的一个原因是这里的装修完全仿照了日本战后昭和时代的街景,还营造出日落时分的调调,让人仿佛置身机器猫故事的那个年代.

[视频]讲述诺基亚历史

- Woooon - cnBeta.COM
从造纸到橡胶,从电缆到手机,诺基亚拥有一个辉煌的成长史. 我们知道,1865年,工程师弗雷德里克・艾德斯坦在芬兰北部的一条河边建立了一家木浆工厂. 而这家造纸厂就是诺基亚的鼻祖. 经过150年的岁月洗礼,诺基亚已从一个默默无闻的造纸厂发展成了世界闻名的手机制造商.

淳朴的民风 远去的回忆

- 若风 - FeedzShare
来自: 乐淘吧-淘快乐 - FeedzShare  . 发布时间:2011年06月28日,  已有 2 人推荐. 剃头匠 没有焗油机电剪等等, 纯手工的. 小时候不管男生女生,理的发都是一式的,除了长辫子女生. (印象最深的,理发剪扯起头发很疼,所以那时最怕理发). 祭祖 祭祖时很庄重的仪式 主持祭祖的是家中最长者 祭祖过程中不能碰祭品 不能碰桌椅 最重要的是不能喧哗 更不能笑 (经常憋不住).

经典论文 — 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  中具有特殊意义)时是否应该进行转义.