最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

靈魂潮汐16-1(迷失之芯)

2023-08-01 01:44 作者:velseine  | 我要投稿

解密內(nèi)容主要分為兩部分。第一部分---確定圖案的目標(biāo)位置:主要是數(shù)獨。第二部分---把圖案移動到目標(biāo)位置的方式:元素置換和二維二階魔方(實際上是兩個六階置換群和一個八階置換群)

第一張圖的最少步數(shù)9步(4步交換位置,3步旋轉(zhuǎn)),第二張圖是12步(2步交換位置,10步旋轉(zhuǎn)),其他的解密部分較簡單,大家應(yīng)該花的步數(shù)區(qū)別不大

第一張圖的具體步驟(從左上方開始標(biāo)號,第一個旋轉(zhuǎn)中心為a,第二個旋轉(zhuǎn)中心為b)

旋轉(zhuǎn):a

置換:[[3, 1, 1, 2, 2, 0], [1, 1, 3, 2, 2, 0], [1, 2, 3, 2, 1, 0]](列表中的每個元素的位置對應(yīng)可以交換的六個位置,按從左到右,從上到下的順序,0=雪花,1=太陽,2=楓葉,3=芽)

第二張圖的具體步驟:

旋轉(zhuǎn):abcbbabacc

置換:[0,2],[2,0]


解:寫個程序讓電腦跑。

第一階段:寫個自動填數(shù)獨的腳本sudoku.py,以確定圖案的目標(biāo)位置

將游戲中的數(shù)獨界面簡化為一個嵌套列表,可被移動的圖案留空,不能被移動(被旋轉(zhuǎn)或置換)的圖案簡化為數(shù)獨中預(yù)先固定的數(shù)字,旋轉(zhuǎn)節(jié)點簡化為數(shù)獨中的斷點(斷點的所在行的左右視作不連續(xù),斷點所在列的上下視作不連續(xù))。得到第一張圖的數(shù)獨列表:

[? ? ? ? ["$"? ? , None, None, None],

? ? ? ? ?[None, "$"? ? , None, "$"? ? ],

? ? ? ? ?[None, None, "$"? ? , None],

? ? ? ? ?[None, None, None, None]??

? ]

第二張圖的數(shù)獨列表:

?[? ? ? ?["$"? ? ?, 2? ? ? , 1? ? ? ?, None, 3? ? ? ?],

? ? ? ? ?[0? ? ? ?, 3? ? ? ?, None , "$"? ?, None],

? ? ? ? ?[None , None, "$"? ? ?, None, 2? ? ? ],

? ? ? ? ?[None, "$"? ? ?, None, 3? ? ? ?, 0? ? ? ?],

? ? ? ? ?["$"? ? , None, None, 1 , "$"? ? ]

]



有很多留空,第一張圖甚至所有的圖案的位置都不固定,此時讓sudoku.py去跑應(yīng)該會得到很多解。

同時要考慮到,每個數(shù)字的大小范圍和可使用的次數(shù)以及可能到達(dá)的位置都是確定的。

由于兩張圖數(shù)獨能被填入的數(shù)字被分為了獨立兩部分(置換部分和旋轉(zhuǎn)部分),需要分情況討論。

先看情況簡單的圖二,圖二中置換部分只有兩個空位,只有兩種不同的情況,分別考慮這兩種情況下可能的解,在游戲初始狀態(tài)

?[? ? ? ?["$"? ? ?, 2? ? ? , 1? ? ? ?, None, 3? ? ? ?],

? ? ? ? ?[0? ? ? ?, 3? ? ? ?, None , "$"? ?, None],

? ? ? ? ?[0? ? ? ?, None, "$"? ? ?, None, 2? ? ? ],

? ? ? ? ?[None, "$"? ? ?, None, 3? ? ? ?, 0? ? ? ?],

? ? ? ? ?["$"? ? , None,2? ? ? ? ?, 1? ? ? ? , "$"? ? ]

]


下無解,所以只需考慮

? ? ? ? [["$", 2, 1, None, 3],

? ? ? ? ?[0, 3, None, "$", None],

? ? ? ? ?[2, None, "$", None, 2],

? ? ? ? ?[None, "$", None, 3, 0],

? ? ? ? ?["$", None, 0, 1, "$"]]

的解,以此作為輸入,腳本輸出了一個解

Solution 1 :

$ 2 1 0 3?

0 3 2 $ 1?

2 1 $ 0 2?

3 $ 2 3 0?

$ 3 0 1 $?

自此,圖二中所有的圖案的目標(biāo)位置均已確定。


再看第一張圖,置換部分和旋轉(zhuǎn)部分都有6個空位,看起來情況沒差,我覺得都是我人腦考慮不全所有可能的情況的情況。

因為旋轉(zhuǎn)比較有趣我選擇了先分析旋轉(zhuǎn)的所有情況,寫一個模擬二維魔方的程序2d.py。

設(shè)置二維魔方的初始狀態(tài)與游戲中的狀態(tài)相同(matrix = [[3, 1], [0, 0], [3, 2]]),讓2d.py用dfs遍歷所有旋轉(zhuǎn)可能得到的情況輸出所有不同的結(jié)果。得到60種不同的旋轉(zhuǎn)結(jié)果。把60種結(jié)果分別填入嵌套列表,得到60張數(shù)獨游戲界面,讓自動解數(shù)獨程序依次解這60張數(shù)獨表,輸出所有有解的情況得到28個結(jié)果。自此得到了圖一中所有圖案的可能的共28種目標(biāo)位置。



第二階段,寫個計算各個移動方式花費最少步驟的程序2dbfs.py和trsbfs和,用以得到各種情況中步數(shù)最少的步驟

先看情況簡單的圖二,圖二中所有的圖案只有一種目標(biāo)位置,用2dbfs遍歷旋轉(zhuǎn)部分后得到最短操作步數(shù)為10步,步驟為“abcbbabacc”,與置換部分的兩步交換相加最少情況是12步。

再看圖一,用2dbfs依次遍歷28種目標(biāo)位置,得到24種最短旋轉(zhuǎn)操作步數(shù),從1到7步不等(28種目標(biāo)位置是所有圖案的目標(biāo)位置的不同情況,但在旋轉(zhuǎn)部分的圖案只有24種目標(biāo)位置,因為同一種旋轉(zhuǎn)部分的情況的數(shù)獨可能有不止一個解)。用trsbfs依次遍歷這24種目標(biāo)位置,得到24中最短的置換操作步數(shù),從(4到6步不等)。以相同序號連接兩張表,得到相加最短步數(shù)9步。

但是我沒考慮用雪花圖案開門的情況,最多有2步的誤差,如果有大佬感興趣可以從那24種最優(yōu)解中,考慮上開門計算最終的最優(yōu)解。


雖然得到了這個游戲的解,但是以后出現(xiàn)這樣旋轉(zhuǎn)的游戲(二維魔方)不憑借計算機(jī)要怎么玩呢,我們可以用魔方的通用公式“上順下逆”,舉個例子,我們想通過4和3交換使[1234]->[1243],已知某個操作“上”可以通過旋轉(zhuǎn)這四個元素的中心使這前四個元素輪流進(jìn)行換位即[1234]->[2341],又已知“順”使其中的第三個位置的元素和這個集合之外的元素交換(?代表任意數(shù)字)[1234]->[12?4],而下和逆是上和順的相反操作,因此有相反的效果,進(jìn)行一次旋轉(zhuǎn)“上”時,它滿足了我們的目的,將其中的一個元素移動到目標(biāo)位置,但產(chǎn)生了負(fù)面影響,破壞了其它三個我們想要保留的位置,此時進(jìn)行"下"時可以復(fù)原三個想要保留的位置,但也還原了我們想移動到位置,此時加兩個操作之間加人“順”它的作用是將“上”之后已經(jīng)到達(dá)目的地的那個元素移開,讓“下”進(jìn)行其他三個位置復(fù)原的時候不破壞我們要的那個元素,等完成"下"后,再進(jìn)行“逆”,把那個臨時移走的元素再移動回來,[1234]->[2341],[2341]->[23?1],[23?1]->[123?],[123?]->[124?](可能有人疑惑為什么不是[123?]->[1234],原因是元素的交換是在絕對坐標(biāo)系下的兩個固定位置的元素進(jìn)行交換,而不是交換某兩個特定的元素,看的是盒子而不是盒子里的東西),如果我們能找到一個合適的?(數(shù)字)--3,在臨時移動時替換到想要保留變化的那個位置上,就能實現(xiàn)[1234]->[2341]。在圖二中的(二維魔方)旋轉(zhuǎn)機(jī)關(guān)中,

[0 0

?1 1

?2 2

?3 3]

(bab')可以讓2的空穴到被1的空穴替換

[2 0

?0 1

?1 2

?3 3]

c 可以讓3的空穴被2的空穴替換

[0 0

?1 1

?3 2

?3 2]

于是(bab')c(ba'b')c',先使2到1的位置,3為了保護(hù)1臨時代替了1,3代替1回到了1原本的位置,1再回來2之前的位置

[0 0

?3 1

?1 2

?2 3]

如果會魔方公式的話,還可以直接使用其他的魔方公式。(說它是魔方是因為它和魔方都是置換群,都是每次轉(zhuǎn)動90度進(jìn)行一次四階置換,二維是因為它相較魔方的每個角塊只有一個面,二階是因為它是2*2的,比三階魔方少個十字-棱塊和中心塊)

上面的魔方萬能公式上順下逆來源于抽象代數(shù)中的交換子:g-1h-1gh,它是所有“置換群”進(jìn)行置換的萬能公式。第一張圖中的6個元素之間進(jìn)行兩兩交換的游戲也是置換群,6個元素之中實際上只有4個不同的元素,由于4階置換可以分為3個2階置換,所以最多3次兩兩交換就能得到那6個元素的所有排列情況

雖然得到了很好的解決辦法,但其實這游戲我也沒玩得很明白。首先這個游戲目標(biāo)我就沒看明白(讓相連的直線上不存在相同能量源),不應(yīng)該是讓元素所在的直線上的直線上不存在相同能量源嗎。還有就是第二張圖的二階魔方的中的8個元素可以被轉(zhuǎn)動到8個元素的所有排列情況,而第一張圖中的二階魔方中的6個元素的轉(zhuǎn)動卻遠(yuǎn)滿足不了6個不同元素的排列情況呢,希望會證明的大佬告知一下,有錯誤也請指出,多謝。

第一張圖的所有解和魔方步驟計算程序下載地址/39.106.13.71/


靈魂潮汐16-1(迷失之芯)的評論 (共 條)

分享到微博請遵守國家法律
夏津县| 乌拉特前旗| 荔浦县| 马山县| 奇台县| 蒙阴县| 黄石市| 离岛区| 东乡族自治县| 梅州市| 元谋县| 绍兴县| 二手房| 丹巴县| 叙永县| 商南县| 西贡区| 富顺县| 凤冈县| 山西省| 秦皇岛市| 乐陵市| 阳新县| 钟山县| 武汉市| 福州市| 马鞍山市| 贵州省| 清水河县| 屯昌县| 从化市| 资阳市| 饶平县| 保山市| 武宣县| 合山市| 武城县| 墨竹工卡县| 吉木萨尔县| 罗平县| 闽清县|