15数字华容道解法 图解_数字华容道有何解法?

有通法的。任意n阶数字推盘都有通法,而且不难。

以4阶数字推盘为例,复原分为3个阶段

第一阶段:复原前两行(n阶推盘为前n-2行)

第二阶段:将后两行排列为如下形式

第三阶段:全部复原

将推盘各位置命名

第一阶段:依照数字由小到大顺序依次复原1-8

一、复原1 2 3 4

数字1 2 3的复原比较简单,按照数字大小顺序从1开始,依次复原。在保持已复原较小数字位置不变的情况下,很容易把较大数字移到相应位置,没有什么技术含量。

数字4分为两种情况:

1、数字3复原后4恰巧移入相应位置,十分走运。(事实上在移动1、2、3过程中稍加留意,可以人为制造直接移入机会,省去下步笨办法)

2、大多数情况下4无法直接移入,在D1处有其他数字占位。这时很容易把4排列在D3的位置,即

依次移动D1→D2;C1→D1;C2→C1;D2→C2;D3→D2,推盘变为

这时通过使C1、C2、C3依次挪位,可把3、4逆时针转入C1、D1,完成。

二、复原5 6 7 8,与1 2 3 4同理。

第二阶段:保持前两行不动,复原后两行

1、将9移动至A3,并使A4不为空格,没有技术含量。

2、分两种情况

一、A4数字不是10:

保持A3、A4不动,很容易将10移至B3

二、A4数字是10:

保持9、10不动,将空格移至B4。依次移动A4→B4,A3→A4,B3→A3,保持A3、A4不 动,将10移至C3,得

依次移动A3→B3,A4→A3,B4→A4,B3→B4,C3→B3

两种情况最后均得到

之后将9、10依次逆时针转入A4、A3,完成。

3、将11、12移动至B4、B3

注意到移动9、10过程中只用到了A3:C4六格区域。所以保持9、10不变,利用B3:D4六格区域同理可以完成11、12的移动。

第三阶段:复原

在第二阶段基础上,即

移动C3:D4四格数字,可得

依次移动9-12与13-15,很容易复原(12→C3,11→B3,13→B4,14→C4,15→D4,如此依次)。

1、以上为四阶数字推盘通法,同理可推广至n 阶推盘。

2、数字推盘这种解法主要利用的是四格(3数字+1空格)、六格(5数字+1空格)的小区域旋转循环。注意到循环的最小区域为2*2四格,所以边角地区,如3和4需两列一起解决。最后两行通过将较小数字如9、10并列放置在最左侧一列,为之后复原提供空间。n阶最后两行即需要依次把较小数字并列放在最左侧,腾出右侧空间。

3、以上方法为考虑各种情况,适用n阶的最常规解法,略显繁琐。按照此法普通人一分钟内可以完成4阶复原。练熟后有些步骤可以省去。玩了两小时发现的个人解法,可能有更优解。

好多评论问到了无解的情况,补充一下相关讨论。

复原最后一步13 14 15时会遇到以下两种情况:

复原后为

不妨设空位为数字0(所设数字并不影响最终结论):

把推盘变为一阶排列Ⅰ:(1 2 3 … 12 13 14 15 0)与Ⅱ:(1 2 3 … 12 13 15 14 0)

这时每次移动可看作数字0与其它某一数字x的对换(设0所在序数为n,事实上是0与n±1、n±4位置上元素的对换)

Ⅰ为正常情况,现考虑如何复原Ⅱ:

复原排列Ⅱ等价于对排列Ⅱ进行对换(14,15),问题转化为对换(14,15)能否写成若干个(0,x)对换的乘积。

由于一次对换(14,15)改变原排列奇偶性,所以(0,x)对换个数必为奇数。而要将D4处数字0最终移回D4,移动次数必为偶数(上移次数等于下移次数,左移次数等于右移次数),所以排列Ⅱ无法还原为(1 2 3 … 12 13 14 15 0)。

也就是说,在保证其它数字位置不变的情况下,无法实现两个数字的位置互换。

由于数字1-13的复原只利用6或4小区域循环移动,只涉及位置调整,与其它位置的数字无关,所以无论原始推盘如何排列,最终都可变换为Ⅰ、Ⅱ两种情况。

设1-15全排列为A:A=B∪C,B中排列复原后为情况Ⅰ,C为情况Ⅱ。∀排列b∈B,作用对换(14,15),得排列c∈C,集合C同理。所以可以构造集合B到C的一一映射,即card(B)=card(C)。因此在数字推盘所有随机排列中,有1/2的排列无解。

另外大家都是从哪里找的APP,我在应用市场下的几个APP都没有遇到无解的情况。

你可能感兴趣的:(15数字华容道解法,图解)