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

pchu 2011-08-01 21:25:32

你小时候玩过华容道或者滑块拼图吗?作为那个年代最风靡的智力开发游戏,它们正在逐渐消失,如今的小孩们不再对它感兴趣了。让我们一起回忆属于那个时代的人的记忆吧。除了怀旧,死理性派还讲述了这个游戏中我们不曾留意的趣味数学。

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

http://img1.guokr.com/gkimage/ht/rw/tm/htrwtm.png

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

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

http://img1.guokr.com/gkimage/3m/iq/fd/3miqfd.png

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

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

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

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

http://img1.guokr.com/gkimage/6x/om/2x/6xom2x.png

注定无人能拿下的1000刀

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

http://img1.guokr.com/gkimage/tj/29/u0/tj29u0.png

滑块游戏可解性分析

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

http://img1.guokr.com/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)构成一个矩形时,三个方格的位置就可通过简单的操作任意互换,如图所示。

http://img1.guokr.com/gkimage/qp/ox/gl/qpoxgl.png

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

http://img1.guokr.com/gkimage/f1/ak/dp/f1akdp.png

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

68条评论

上一页  |  下一页

  • 1楼
    2011-08-01 21:30:54 湿湿手好翻书
    沙发
    引用
  • 2楼
    2011-08-01 21:56:25 武林
    虽然不太明白,但感觉好厉害

    板凳
    引用
  • 3楼
    2011-08-01 22:03:06 严酷的魔王 统计学专业本科生,数学控 ψ
    有一个与华容道类似的滑块游戏

    全都是2:1或者3:1的长方形,只能沿着长边进行移动,然后要求把指定的2:1长方块移到出口处。

    这个游戏有名字么?
    引用
  • 4楼
    2011-08-01 22:08:25 碟子
    引用严酷的魔王的回应:有一个与华容道类似的滑块游戏

    全都是2:1或者3:1的长方形,只能沿着长边进行移动,然后要求把指定的2:1长方块移到出口处。

    这个游戏有名字么?

    这个在解谜游戏里经常出现,感觉比华容道简单呀~~
    引用
  • 5楼
    2011-08-01 22:09:10 方弦 科学松鼠会成员,信息学硕... ψ
    终于把这文章勾搭出来了啊~~~
    引用
  • 6楼
    2011-08-01 22:12:27 Ekoms 数学/化学爱好者 ψ
    引用严酷的魔王的回应:有一个与华容道类似的滑块游戏

    全都是2:1或者3:1的长方形,只能沿着长边进行移动,然后要求把指定的2:1长方块移到出口处。

    这个游戏有名字么?


    iphone版的是停车场+汽车。。
    引用
  • 7楼
    2011-08-01 22:14:04 戏说乾隆
    深沉哥,玩游戏都玩成这样真佩服
    引用
  • 8楼
    2011-08-01 22:20:22 &#Science69 计算机科学爱好者 ψ
    记得以前貌似还会玩,现在记不清了……
    引用
  • 9楼
    2011-08-01 22:26:27 广西小散
    所有的目标状态的逆序数都是α=0,也就是说要想有解,初始状态的逆序数必须是偶数?以上的例子都是比较简单的,如果比较复杂的情况,比如【8,6,3,2,5,4,1,7】这个初始状态要怎么数逆序数是多少??
    引用
  • 10楼
    2011-08-01 22:30:39 Leo_z_Liu
    不愧为死理性派,佩服
    引用
  • 11楼
    2011-08-01 22:32:12 泰德邦德
    越大越难。是这个意思吧=?
    引用
  • 12楼
    2011-08-01 22:33:01 Leo_z_Liu
    引用广西小散的回应:所有的目标状态的逆序数都是α=0,也就是说要想有解,初始状态的逆序数必须是偶数?以上的例子都是比较简单的,如果比较复杂的情况,比如【8,6,3,2,5,4,1,7】这个初始状态要怎么数逆序数是多少??


    我觉得是[8,6][8,3][8,2][8,5][8,4][8,1][8,7][6,3][6,2][6,5][6,4][6,1][3,2][3,1][2,1][5,4][5,1][4,1] 逆序数=18
    引用
  • 13楼
    2011-08-01 22:40:23 Ekoms 数学/化学爱好者 ψ
    引用Leo_z_Liu的回应:

    我觉得是 逆序数=18


    我数出来是17?
    引用
  • 14楼
    2011-08-01 22:44:25 Ekoms 数学/化学爱好者 ψ
    另外,如果说3*3中往下移1格等价于往后移3位,等价于2次邻换,那么4*4就是移4位等于3次邻换,那么逆序数的奇偶性就改变了啊?
    引用
  • 15楼
    2011-08-01 22:46:55 广西小散
    【1,2】,【1,8】,【2,8】,【2,5】,【2,6】,【4,6】,【4,5】,【7,8】按照这样两两移动,逆序数得出的是8.我试了一下,这个应该是最小的逆序数。如果改变一些步骤,逆序数一样会是偶数,不会改变。不管是8,18,还是别的偶数,都可以证明这个排列是可解的。不知道我的理解对不对
    引用Leo_z_Liu的回应:

    我觉得是 逆序数=18

    引用
  • 16楼
    2011-08-01 22:51:56 吴师傅 果壳死理性派编辑 ψ
    引用Ekoms的回应:另外,如果说3*3中往下移1格等价于往后移3位,等价于2次邻换,那么4*4就是移4位等于3次邻换,那么逆序数的奇偶性就改变了啊?

    移4位 操作就会很复杂 不是3次邻换了 首先移三位 这相当于下移 之后和相邻的一个方块互换 那这个类似于重排15(14、15互换) 做不到了

    换句话说 有些移位 按规则 是操作不出来的

    另外是 那个逆序是18啊
    引用
  • 17楼
    2011-08-01 23:35:09 Dora_L
    14和15不可能在那两个原位置换边
    引用
  • 18楼
    2011-08-02 08:57:54 hcl67
    引用Ekoms的回应:另外,如果说3*3中往下移1格等价于往后移3位,等价于2次邻换,那么4*4就是移4位等于3次邻换,那么逆序数的奇偶性就改变了啊?


    我觉得也是,这里考虑奇偶性可能不行,可能需要考虑模3的余数啥的。

    引用吴师傅的回应:
    移4位 操作就会很复杂 不是3次邻换了 首先移三位 这相当于下移 之后和相邻的一个方块互换 那这个类似于重排15(14、15互换) 做不到了


    不是很理解“之后和相邻的一个方块互换
    引用
  • 19楼
    2011-08-02 08:59:58 子渊
    文科生完全云里雾里。。
    引用
  • 20楼
    2011-08-02 09:06:13 pondering
    来自matrix67.com。
    一天,数学家觉得自己已受够了数学,于是他跑到消防队去宣布他想当消防员。消防队长说:“您看上去不错,可是我得先给您一个测试。” 消防队长带数学家到消防队后院小巷,巷子里有一个货栈,一只消防栓和一卷软管。消防队长问:“假设货栈起火,您怎么办?”数学家回答:“我把消防栓接到软管上,打开水龙,把火浇灭。” 消防队长说:“完全正确!最后一个问题:假设您走进小巷,而货栈没有起火,您怎么办?”数学家疑惑地思索了半天,终于答道:“我就把货栈点着。” 消防队长大叫起来:“什么?太可怕了!您为什么要把货栈点着?” 数学家回答:“这样我就把问题化简为一个我已经解决过的问题了。”
    引用
  • 21楼
    2011-08-02 09:30:14 Alex520
    引用pondering的回应:来自matrix67.com。
    一天,数学家觉得自己已受够了数学,于是他跑到消防队去宣布他想当消防员。消防队长说:“您看上去不错,可是我得先给您一个测试。” 消防队长带数学家到消防队后院小巷,巷子里有一个货栈,一只消防栓和一卷软管。消防队长问:“假设货栈起火,您怎么办?”数学家回答:“我把消防栓接到软管上,打开水龙,把火浇灭。” 消防队长说:“完全正确!最后一个问题:假设您走进小巷,而货栈没有起火,您怎么办?”数学家疑惑地思索了半天,终于答道:“我就把货栈点着。” 消防队长大叫起来:“什么?太可怕了!您为什么要把货栈点着?” 数学家回答:“这样我就把问题化简为一个我已经解决过的问题了。”

    怎么感觉数学家的逻辑成了个定式
    引用
  • 22楼
    2011-08-02 09:51:36 馒头老妖 有机化学博士生,法学学士 ψ
    我怎么觉得,这个问题跟密码学有点相似哩?
    引用
  • 23楼
    2011-08-02 11:13:11 小郭GOGOGO
    文章没去涉猎。哈,我初一寂寞的时候就玩这个。上个月我有重新玩那个15-puzzle,因为习惯了,最快23秒搞定。
    引用
  • 24楼
    2011-08-02 11:38:33 齐柏林飞艇
    滑块拼图,大家有没有玩过?
    引用
  • 25楼
    2011-08-02 11:40:18 Cerberus
    啊,我也是用三角轮做的,但每次到最后都会有2个交换了的没转回来……那么初始始终为0(因为可以自己对每个块编码)的话,只有逆序数为偶数才能解?我见过有的玩具是10个格,即空格在九格之外,编号是1到9,这样一样麽?
    引用
  • 26楼
    2011-08-02 12:29:35 oz国的稻草人
    我一看见纯“数”的东西我就头疼~~
    引用
  • 27楼
    2011-08-02 12:35:01 sb
    逆序数到底怎么求啊。。
    引用
  • 28楼
    2011-08-02 12:37:15 sb
    8,6,3,2,5,4,1,7
    那么8有7对,6有5对,3有2对,2有1对,5有2对,4有1对,那总共18个?
    引用
  • 29楼
    2011-08-02 12:58:14 程序猿啊~
    引用Ekoms的回应:另外,如果说3*3中往下移1格等价于往后移3位,等价于2次邻换,那么4*4就是移4位等于3次邻换,那么逆序数的奇偶性就改变了啊?

    同意,这个证明不能推广到任何情况。证明写的不严谨,我觉得应该是这样:对于4*4(或者m*n)的情况,我们可以看作是空格在移动。由于开始和结尾空格的位置是不变的,所以空格水平移动的次数一定是偶数次,同时垂直移动也是偶数次。所以,无论一次垂直移动改变的逆序数是多少(比如是k),由于垂直移动次数是偶数(2n),所以逆序数改变也是偶数(2nk),所以15puzzle还是不可解。但是上面的证明不严谨。

    引用sb的回应:逆序数到底怎么求啊。。

    可以将每个数跟后面的所有数字比较求逆序数。如果想快点可以用归并排序求。



    引用sb的回应:8,6,3,2,5,4,1,7
    那么8有7对,6有5对,3有2对,2有1对,5有2对,4有1对,那总共18个?

    对,18对逆序对。

    引用
  • 30楼
    2011-08-02 13:13:13 吴师傅 果壳死理性派编辑 ψ
    引用程序猿啊~的回应:
    同意,这个证明不能推广到任何情况。证明写的不严谨,我觉得应该是这样:对于4*4(或者m*n)的情况,我们可以看作是空格在移动。由于开始和结尾空格的位置是不变的,所以空格水平移动的次数一定是偶数次,同时垂直移动也是偶数次。所以,无论一次垂直移动改变的逆序数是多少(比如是k),由于垂直移动次数是偶数(2n),所以逆序数改变也是偶数(2nk),所以15puzzle还是不可解。但是上面的证明不严谨



    是这样,但是Ekoms说的后移四位是不是做的到呢?后移四位首先方块要下移一格,这已经移三位了,之后要和相邻方块换位,这是改变奇偶性的做法,如同重排15一样,做不到的。

    你的证明是对的,你是从空白方块的角度来考虑的,文章从实际的操作来考虑,两种方法。
    引用
  • 31楼
    2011-08-02 13:37:10 Derek同学 软件工程硕士 ψ
    仙剑五里面在打炎舞之前就有个类似的迷宫^_^
    引用
  • 32楼
    2011-08-02 14:53:57 程序猿啊~
    引用吴师傅的回应:


    是这样,但是Ekoms说的后移四位是不是做的到呢?后移四位首先方块要下移一格,这已经移三位了,之后要和相邻方块换位,这是改变奇偶性的做法,如同重排15一样,做不到的。

    你的证明是对的,你是从空白方块的角度来考虑的,文章从实际的操作来考虑,两种方法。

    Ekoms同学的意思是说在4*4的puzzle中下移一格相当于四次移位,会改变奇偶性,所以文章中的证明不适用于这种情况,是这个意思吧~~吴师傅的意思怎么我感觉跟Ekoms不是同一个意思,你是指在3*3的puzzle中后移四位是否能做到?
    不知是不是我理解错你的意思了
    引用
  • 33楼
    2011-08-02 15:10:25 吴师傅 果壳死理性派编辑 ψ
    引用程序猿啊~的回应:
    Ekoms同学的意思是说在4*4的puzzle中下移一格相当于四次移位,会改变奇偶性,所以文章中的证明不适用于这种情况,是这个意思吧~~吴师傅的意思怎么我感觉跟Ekoms不是同一个意思,你是指在3*3的puzzle中后移四位是否能做到?
    不知是不是我理解错你的意思了

    没错。
    可以讲证明不适用于这种情况。Ekoms说的数列中移位四次确实改变了奇偶性。文章说的遵循游戏规则的移动方式不改变奇偶性。也就是说后移四位操作不出来,注意这是重排九宫,要考虑规则的。
    我理解的Ekoms的意思是,举例子表明某种操作改变了奇偶性。所以才会重点阐述这是操作不出来的。
    我们两理解的方向不太一样,所以相互的讨论有点没对接的感觉。
    引用
  • 34楼
    2011-08-02 15:57:23 anqin1995
    引用Diz的回应:
    这个在解谜游戏里经常出现,感觉比华容道简单呀~~


    梦之旅 阿扎达甚至仙剑里都有
    引用
  • 35楼
    2011-08-02 16:12:09 花田田 动漫控 ψ
    虽然不知道这好厉害, 但是觉得你在说什么!
    引用
  • 36楼
    2011-08-02 16:22:44 吴师傅 果壳死理性派编辑 ψ
    引用严酷的魔王的回应:有一个与华容道类似的滑块游戏

    全都是2:1或者3:1的长方形,只能沿着长边进行移动,然后要求把指定的2:1长方块移到出口处。

    这个游戏有名字么?

    unblock me
    引用
  • 37楼
    2011-08-02 17:47:18 Maxarrow
    MTK平台3乘3拼图2s求秒
    引用
  • 38楼
    2011-08-02 20:16:08 你好爱因斯坦
    逆序数的定义是,在某个数前面比他大的数的个数,8前面比他大的数有0个,6前面比他大的数有1个,依次类推,因此,总逆序数为:0+1+2+3+2+3+6+1=18.不知道说清楚了没?引用广西小散的回应:所有的目标状态的逆序数都是α=0,也就是说要想有解,初始状态的逆序数必须是偶数?以上的例子都是比较简单的,如果比较复杂的情况,比如【8,6,3,2,5,4,1,7】这个初始状态要怎么数逆序数是多少??

    引用
  • 39楼
    2011-08-02 23:14:16 广西小散
    原来逆序数是这样数,现在理解了谢谢。逆序数18,偶数,就是可以还原,我亲自试过了,这个排列的确可以还原。不过对那个三角形轮换法则不懂怎么运用,都是自己不停的试才还原的,没有章法可言。
    引用你好爱因斯坦的回应:

    引用
  • 40楼
    2011-08-03 00:57:43 Kam_芋頭
    拆掉Puzzle乱装=拆掉魔方乱装,结果相同:不一定能复原,极有可能要拆多一次...
    引用
  • 41楼
    2011-08-03 01:05:59 qswl1999
    我没学过“逆序数”(我是学法律的),我来说说我的理解,并提出疑问,大家多指教。

    啥叫逆序数?
    首先说说我对“逆序数”的理解,要是我理解错了,我下面写的可就完全错了...所以要是看到这一段就发现我错了,赶紧指出,别接着看了。
    按我的理解,逆序数的意思好像是,在一个数列里头,取第一个数,从排在它后面的数里头找和它“排反了”的一共多少个,再如此操作第二个数、第三个...最后求和,这个和就是这个数列的逆序数。





    关于“最小逆序数”
    按我的理解,一个数列只有一个“逆序数”,而不存在什么“最小的逆序数”。那么“广西小散”同学说的“最小逆序数”,其实是“实现标准排列所经过的最小的交换次数”的问题。我不讨论这个最小次数咋求了,不过确实,实现标准排列所经过的次数,与逆序数的奇偶性必然是相同的,这个问题需要详细解释一下(需要说明,这和本文关系不大...因为九宫格或16宫格里面不是两两对调交换位置,而是单方面的"跳着移动"...所以我写这个基本属于浪费时间...)。


    先要搞清的是,一个数列的标准顺序是从小到大排列,交换任意位置的两个数,对逆序数会产生的影响是怎样的呢?
    首先,这俩数自己会由正变逆或由逆变正,导致逆序数+1或-1。
    同时,这两个数的交换,还会改变这两个数本身与排在这俩数之间的数的顺序。
    设交换顺序的这俩数分别为A、B,A排在B的前面,A、B之间还有若干个数,其中的一个数是M。则当A>B或A<B时,分别有三种情况。
    在A<B时,可能有M<A,或M>B,或A<M<B。
    由于标准排列是由小到大,所以,若M<A,则容易看出AB交换后A与M由逆变正,B与M由正变逆,那么,仅仅就对M的影响而言,A、B交换使逆序数的变化为-1+1=0。
    同理,若A<M<B,则AB交换使逆序数变化的量为-2,若M>B,则变化量为0。
    由此可见,A<B时,对于AB间任意一个数来说,受其影响导致的逆序数变化都是偶数0或-2,加上AB本身由正变逆的影响(-1),则此时对逆序数的总影响必然是一个负的奇数。用同样的分析方式可知,A>B时,AB交换使得逆序数的总变化量必然是一个正的奇数(分析过程不赘)。
    综上,数列中任意两数的位置对调,都会对逆序数产生一个奇数的变化量。


    大家都知道奇数加奇数等于偶数,偶数加奇数等于奇数。实现标准排列的过程,就是使逆序数变成0的过程。0是一个偶数,而每次的变化量是奇数,所以如果逆序数本身是奇数,要变0就要经过奇数次变化;如果逆序数本身是偶数,要变0就要经过偶数次变化。而所谓“实现标准排列所需要的交换次数”问题,就是逆序数变化次数问题,也就是说,该交换次数的奇偶性与逆序数奇偶性相同。


    (我写得有点复杂,要是可以像当年答数学题时那样,都用符号写,大概就简明多了吧...)







    “重排十五”问题


    关于十五格问题,我觉得虽然和九格问题原理有可能类似,但实际分析应该是非常不同的,十五格问题似乎不能简单的用奇偶性来说明,而是复杂得多。详述如下:


    一,关于九格问题
    九格问题,向(上)下移动一次,相当于实现两次相邻项交换,这两次交换,分别都可能是正序变逆序,也可能是逆序变正序。如果是正序变逆序,那么逆序数+1;如果是逆序变正序,那么逆序数-1。因此,若两次交换导致的逆序数变化量为k,则经过两次交换,k的结果可能是:
    a. k=1+1=2
    b. k=-1-1=-2
    c. k=1-1=0
    d. k=-1+1=0
    由此可见,在所有情况中,k均为偶数,所以九格问题中,任意移动都不改变逆序数的奇偶性。但十五格问题是否相同呢?



    二,关于十五格问题
    在十五格问题中,纵向移动一次,相当实现了3次相邻项交换,那么,按照前面说的原理,理论上说,若逆序数变化量为k‘,则容易看出k’可能的值为:
    -3、-1、1、3
    而这些可能,都是改变奇偶性的,尤其-1、1两种可能,似乎使得十五格排序的逆序数可以任意变化...但既然“重排十五”已经被证明不可能,那么,在16宫格中的移动,一定对于数列项的移动产生了其他的限制...


    所以,本文没有彻底说清楚“重排十五”为啥不可能...我的问题是,16宫格中的移动,对数列项交换的限制到底是什么呢...?我的初步思路是,由于移动都可以看作四格中的移动,所以可以把十六宫格看成一个个的小四格。然后穷举四格可能出现的位置,分类讨论...但仔细想想这个思路太复杂,实施难度较大。


    ...哪位大侠有“重排十五”不可能的具体的证明过程,借我一观呗?




    我擦我怎么写了这么多,纯属闲大了......








    引用
  • 42楼
    2011-08-03 01:14:03 qswl1999
    另外,那个“华容道”可以划归成什么数学问题呢...?
    引用
  • 43楼
    2011-08-03 08:16:52 leee
    文科生理解不能。。
    今天下定决心要仔细的看死理性派。。。最后还是。。。。。拍案而起。。。。。。。。理性派!去死吧!!!
    完全看不懂的数学击中了我的罩门。。。
    引用
  • 44楼
    2011-08-03 11:15:47 切斯特 日语语言学硕士生,设计控 ψ
    引用Derek.Ye的回应:仙剑五里面在打炎舞之前就有个类似的迷宫^_^

    当时看到头就大了……不过没想到很快就解出来了。太凶狠。
    引用
  • 45楼
    2011-08-03 13:42:39 有机体
    引用广西小散的回应:所有的目标状态的逆序数都是α=0,也就是说要想有解,初始状态的逆序数必须是偶数?以上的例子都是比较简单的,如果比较复杂的情况,比如【8,6,3,2,5,4,1,7】这个初始状态要怎么数逆序数是多少??

    我觉得可以用组合方式来算:8,6。6,3。8,2。8,5。8,4。8,1。8,7。以8开头的逆序数有7个,再依次类推,分别相加,我算起有18个。
    引用
  • 46楼
    2011-08-03 14:14:17 敖逸明
    厉害,但是对于这种算数上的方法,是否真的行得通?
    引用
  • 47楼
    2011-08-03 15:11:14 Gin
    LZ 你写的我看不懂 T_T 但我小时候玩儿过华容道,会玩儿的T_T 不能算我智力低下吧 T_T
    引用
  • 48楼
    2011-08-03 15:28:54 宽吻海豚
    阿,这种问题很有意思~高中数学竞赛总有这样的题型~
    引用
  • 49楼
    2011-08-03 21:34:58 深的
    文中提到,若逆序是奇数,则不可解。是否逆序数为偶数的一定可解?如何证明?
    引用
  • 50楼
    2011-08-03 23:43:20 博弈
    想起来最优化这门课…………
    引用

登录 后发表评论,你也可以用以下帐号直接登录

新浪微博 人人网 QQ

本文来自

死理性派

死理性派主题站

201294人关注

文章作者

  • pchu

    pchu

    3人关注

    物理硕士生,略懂奥数科幻和天文

©2012果壳网 京ICP备09043258号-2 京公网安备1101052730