數字遊戲~幫幫忙想解答 - 拼圖

Table of Contents

小弟寫了個小程式(python)遞迴暴力找下去,
原始碼及程式執行結果請見此 http://pastie.org/4897546
需要的人請自行取用 (有什麼得意的結果願意的話請和我分享我會很爽,謝謝)
如果我邏輯沒寫錯的話以下為結果:










我是防(ㄆㄧㄢˋ)雷(ㄗˋ)頁(ㄕㄨˋ)












1. 三次以下 => 不可能
2. 四次的方法共有16種(詳見上面連結)




==============================================================================

另外,用推理方法試著證明這問題不可能三步解,說明如下:

主要考慮數列中"數字下降"發生的次數,
例如123456數字下降次數為0、654321為5
每次移動最多只能在其前後邊界上各創造出一個數字下降次數....................(1)

假設每次移動xyz三個數字,
並把xyz插入剩下三個數字前後或中間的第i格間隙 (0 <= i <= 3)
由123456開始,
由於這個起點是遞增的,第一次移動最多只能產生"1"的下降次數...............(2-1)
同理,從任意一組六個數字移動一次變成654321(遞減)時,
最多也只能產生"1"的下降次數.............................................(2-2)

也就是說除了第一和最後一次移動,中間的移動法總共要至少創造三個數字下降次數
由(1)、(2)可知中間至少要兩步
所以得證 "要完成123456 => 654321至少需要四步" #

以上論述的(1)、(2)應該都挺顯然,至少我以為是好證的
不知道大家覺得如何?




※ 引述《ewamfnni (小光頭)》之銘言:
: 標題: [問題]數字遊戲~幫幫忙想解答
: 時間: Mon Oct 1 04:44:08 2012
:
: 朋友出的題目
:
: 因為我們都想不出來
:
: 所以只能請各位大大幫忙想囉
:
: 問題"6個骰子或撲克牌排列為123456
:
: 每次移動三顆 只能移三次
:
: 三顆要連在一起移動
:
: 例如 123456 我選456這三顆把他插在1跟2中間
:
: 變成145623
:
:
: 也可以擺在1前面變成456123的玩法
:
: 反正移動後 要三顆相連一起移動自由穿插不能翻轉
:
: 讓123456移動三次變成654321
:
: ----------
: 目前我只想出
:
: 1)456移到12中間->145623
:
: 2)145移到23之間->621453
:
: 3)214移到53最後->653214
:
: 最後偷偷把321移到最後面...可是這樣就四次了 X(
:
: --

All Comments

Jessica avatarJessica2012-10-06
推!! 可是我的「洗牌」比喻害了你 對不起>_<
Wallis avatarWallis2012-10-06
因為移動的終點不限於最上面和最下面 還有任意兩張中間
Dinah avatarDinah2012-10-10
不過移到中間從實驗的角度看來 感覺就是不可能達成....
Audriana avatarAudriana2012-10-12
哦 你好像沒搞錯XDDD
Lily avatarLily2012-10-14
我原本想到的4步解是 #7
Skylar Davis avatarSkylar Davis2012-10-16
真是謝謝你的幫忙壓~ :)