數字的華容道怎麼玩
方法/步驟
1/6分步閱讀
首先,以4階數字推盤為例,復原分為3個階段第一階段:復原前兩行,n階推盤為前n-2行,第二階段:將後兩行排列為形式,第三階段:全部復原將推盤各位置命名。第一階段:依照數字由小到大順序依次復原1-8一、復原1 2 3 4數字1 2 3的復原比較簡單,按照數字大小順序從1開始,依次復原。在保持已復原較小數字位置不變的情況下,很容易把較大數字移到相應位置,沒有什麼技術含量。數字4分為兩種情況:數字3復原後4恰巧移入相應位置,十分走運。事實上在移動1、2、3過程中稍加留意,可以人為製造直接移入機會,省去下步笨辦法。
2/6
然後,大多數情況下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。
3/6
然後,依次移動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,如此依次)。
4/6
然後,以上為四階數字推盤通法,同理可推廣至n 階推盤。數字推盤這種解法主要利用的是四格(3數字+1空格)、六格(5數字+1空格)的小區域旋轉迴圈。注意到迴圈的最小區域為2*2四格,所以邊角地區,如3和4需兩列一起解決。最後兩行透過將較小數字如9、10並列放置在最左側一列,為之後復原提供空間。n階最後兩行即需要依次把較小數字並列放在最左側,騰出右側空間。以上方法為考慮各種情況,適用n階的最常規解法,略顯繁瑣。按照此法普通人一分鐘內可以完成4階復原。練熟後有些步驟可以省去。玩了兩小時發現的個人解法,可能有更優解。好多評論問到了無解的情況,補充一下相關討論。
5/6
然後,復原最後一步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)。也就是說,在保證其它數字位置不變的情況下,無法實現兩個數字的位置互換。@高世奇 的回答裡有更普遍的證明。
6/6
最後,由於數字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的排列無解。
數字的華容道怎麼玩
方法/步驟
1/6分步閱讀
首先,以4階數字推盤為例,復原分為3個階段第一階段:復原前兩行,n階推盤為前n-2行,第二階段:將後兩行排列為形式,第三階段:全部復原將推盤各位置命名。第一階段:依照數字由小到大順序依次復原1-8一、復原1 2 3 4數字1 2 3的復原比較簡單,按照數字大小順序從1開始,依次復原。在保持已復原較小數字位置不變的情況下,很容易把較大數字移到相應位置,沒有什麼技術含量。數字4分為兩種情況:數字3復原後4恰巧移入相應位置,十分走運。事實上在移動1、2、3過程中稍加留意,可以人為製造直接移入機會,省去下步笨辦法。
2/6
然後,大多數情況下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。
3/6
然後,依次移動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,如此依次)。
4/6
然後,以上為四階數字推盤通法,同理可推廣至n 階推盤。數字推盤這種解法主要利用的是四格(3數字+1空格)、六格(5數字+1空格)的小區域旋轉迴圈。注意到迴圈的最小區域為2*2四格,所以邊角地區,如3和4需兩列一起解決。最後兩行透過將較小數字如9、10並列放置在最左側一列,為之後復原提供空間。n階最後兩行即需要依次把較小數字並列放在最左側,騰出右側空間。以上方法為考慮各種情況,適用n階的最常規解法,略顯繁瑣。按照此法普通人一分鐘內可以完成4階復原。練熟後有些步驟可以省去。玩了兩小時發現的個人解法,可能有更優解。好多評論問到了無解的情況,補充一下相關討論。
5/6
然後,復原最後一步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)。也就是說,在保證其它數字位置不變的情況下,無法實現兩個數字的位置互換。@高世奇 的回答裡有更普遍的證明。
6/6
最後,由於數字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的排列無解。