9格拼圖最後一排兩個位置顛倒,如何能正確完成拼圖? - GetIt01

文章推薦指數: 80 %
投票人數:10人

很抱歉要吹噓一下自己的水平:3階5秒,4階17秒,平均。

不然你一定會覺得,我接下來說的,都是在扯淡:. 滑塊拼圖移動形式的本質,是 ... 標籤:拼圖遊戲網頁遊戲遊戲 9格拼圖最後一排兩個位置顛倒,如何能正確完成拼圖? 02-03 12345687□ 多圖預警我喜歡這個問題,可惜我來晚了。

能不用數學理論來解釋這玩意的,在知乎上前無古人,現在只有我,希望後有來者。

很抱歉要吹噓一下自己的水平:3階5秒,4階17秒,平均。

不然你一定會覺得,我接下來說的,都是在扯淡:滑塊拼圖移動形式的本質,是轉動。

我們先簡化題主的問題,看一個2*2:2*2是怎麼復原的?我們來看一個例子:上面的是原圖,下面開始復原: 你可以發現,復原的過程,其實就是做了逆時針的轉動。

而實際上,所有的2*2,都是通過也只能通過順/逆時針的轉動實現復原的。

你可能知道我想說什麼了,沒錯,如果把任意兩塊的位置顛倒,2*2是無法復原的。

結論似乎很明顯,想想就知道,是不是?因為轉動的移動形式,不可避免的會受到限制。

- 接下來,回到題主的問題,3*3:題主把它叫成9格拼圖,這不太好。

因為題主是以一格作為基本單元。

可在本人眼裡,3*3就是四個2*2的結合:【對原圖實行了下右(也就是順時針轉動2步)的處理,方便各位理解】同樣的,4*4就是9個2*2的結合,以此類推。

-(本人沒有如此拙劣的拼圖程序,大家就湊合著自動腦補7和8位置顛倒好了) 我們對題主的圖進行同樣的處理(下右):其他區域已全部復原(上左即可),左下角的2*2,把7和8顛倒,能復原嗎?不能。

--------------------------------------------------------------------------------------------------------------------------------------------題主的問題解決了,接下來是拓展內容:事實上,把復原好的任意一階拼圖,任意互換兩塊的位置,都不可能復原。

我們舉個例子,拿4*4來說,高大上一點:我們假設,9和15的位置互換,經過本人一番處理: 可以看到,其他區域完全復原,現在的15(原來的9)和11位置顛倒,2*2,無法復原。

因為任意兩塊,都能轉入同一個2*2,任意階的拼圖,本質上都是2*2的組合。

2*2做不到的事,就都做不到。

-結尾高能裝逼,留下我3*3的最佳紀錄:從http://www.15puzzle.tk截圖 這是無解的,被稱為不可還原拼圖。

參見不可還原的拼圖 有時候,拼圖進行到最後,只是剩餘2個拼圖沒有歸位且這2個拼圖位置剛好相反。

這時候拼圖無解。

為什麼會導致這種情況發生呢?這裡就要引入線性代數的一些概念。

逆序數:在一個排列中,如果一對數的前後位置與大小順序相反,即前面的數大於後面的數,那麼它們就稱為一個逆序。

一個排列中逆序的總數就稱為這個排列的逆序數。

逆序數為偶數的排列稱為偶排列;逆序數為奇數的排列稱為奇排列。

如2431中,21,43,41,31是逆序,逆序數是4,為偶排列。

簡而言之:當數列中較小的數字位置在較大數字的後方時,就是逆序由於0(空格)最後必然在最後,從打亂到還原的過程中0向上移動的次數和向下移動的次數必然相等,向左和向右的次數也必然相等,即0的移動一定是偶次數。

而當0的移動是偶次數時是不會改變數列的奇偶性的。

所以123456870的逆序是9為奇數列不可能通過滑動得到123456780的逆序數是8為偶數列 哈哈哈,最近玩的遊戲裡面多處內嵌這種小遊戲,不會玩,為了獎勵到處找攻略 推薦閱讀: TAG:遊戲|網頁遊戲|拼圖遊戲| 一點新知 GetIt01



請為這篇文章評分?