最强大脑数字华容道背后的数学知识

4,653 阅读3分钟

segmentfault博客迁移:已经写了好久了。

大家如果看过最新一期的最强大脑的可能对数字华容道游戏留下了深刻的印象吧,反正我自己还挺感兴趣的,特意花时间研究了下,因为同年玩过类似的玩具,算是回忆下同年!

最强大脑里的挑战项目由简到难,需要的道具也是越来越纷繁复杂。由于数字华容道这个游戏手机里都可以下载,而且小时候也玩过类似的拼图游戏。所以我也下载一个叫做三国华容道的app。里面有一类叫最强大脑的游戏。选了其中的数字华容道就开始玩了,初始状态如下图:

initial

可是玩着玩着遇到了无解的情况。一开始真是要怀疑自己的智商了,怎么就还原不出来呢?

无解

后面自己还查了些资料,有人推荐用降阶法的,看了解法视频,开始觉得,额这解法不错啊,我要按着这套路肯定能解决我的问题。。。。。。

最后你懂的,真的是存在无解的情况的。说到这,正好有个故事:

注定无人能拿下的1000刀 19世纪90年代,自称是15-puzzle(4×4)的发明人的Sam Loyd 曾悬赏1000美金,征求能仅仅把14和15交换的方法,这也就是著名的重排十五问题。一千美金在当时非常吸引人,导致很多人不务 正业成了“赏金猎人”。但是很遗憾,谁也没有拿走这它,或者可以这样说,其实谁也拿不走这一千美金。 1-im.guokr.com/gkimage/tj/…

clipboard.png

所以我们接下来就来看看给定一个n*n初始状态的推盘矩阵,怎么判断它能否复原成正确的顺序呢? 首先我们需要判断n的奇偶性,其次再计算矩阵初始状态的逆序数,结合逆序数的奇偶性就可以判断出奇数阶的初始推盘游戏能否通关。 逆序数的概念解释请看这:[逆序数][3]

具体总结如下:

  1. N为奇数, 逆序数为偶数则可解。
  2. N为偶数: 2.1 空格在偶数行(从矩阵的倒数第一行开始往上数,如倒数第二行,倒数第四行等)并且逆序数为奇数则可解。 2.2 空格在奇数行(从矩阵的倒数第一行开始往上数,如倒数第一行,倒数第三行等)并且逆序数为偶数则可解。

最后回到我下载的游戏存在无解的情况说几点: 1.对于手机游戏来说这应该算是一个bug了,应在在生成矩阵的随机初始状态时计算其有解性,如无解应该重新生成直至初始状态是可解的。要是最强大脑出现这种bug,那就要坑人了。 2.对于上面4*4无解的那个矩阵其实可以将其排列成如下的状态:

mirror

试想一下,如果是实物道具,将整个推盘逆时针旋转90度,然后再将里面的每个数字块顺时针转90度,其实也成功了有木有。那前面说的1000刀岂不是赚到了,你说呢?