魯班鎖計算機分析的算法解析二_第1頁
魯班鎖計算機分析的算法解析二_第2頁
魯班鎖計算機分析的算法解析二_第3頁
魯班鎖計算機分析的算法解析二_第4頁
魯班鎖計算機分析的算法解析二_第5頁
已閱讀5頁,還剩3頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、魯班鎖計算機分析的算法解析.二三.進入整個分析程序的核心部分拆卸程序:拆卸程序是整個魯班鎖計算機分析程序的核心部分,它的主要思路是優先考慮拆出一根柱。當待拆的柱組拆出一根柱(或1組柱)時,下一步還是試拆一根柱。以下是我根據我在魯班鎖結構分析法用的思路做的拆卸程序的邏輯過程:1.1 開始拆卸,運行6柱組拆一柱的子程序,可拆出1柱,則進行步驟1.2 運行5柱組拆一柱的子程序;如任意1柱都不可拆出,則進行步驟2.1 運行6柱組拆一個2柱組的子程序。1.2運行5柱組拆一柱的子程序,可拆出1柱,則進行步驟1.3 運行4柱組拆一柱的子程序;如任意1柱都不可拆出,則進行步驟2.2 運行5柱組拆一個2柱組的子

2、程序。1.3運行4柱組拆一柱的子程序,可拆出1柱,則進行步驟1.4 運行3柱組拆一柱的子程序;如任意1柱都不可拆出,則進行步驟2.3 運行4柱組拆一個2柱組的子程序。1.4運行3柱組拆一柱的子程序,可拆出1柱,則此編碼表示的鎖有解(為5+1的拼合方式),拆卸程序結束,進入整個程序的下一步;如任意1柱都不可拆出,則此編碼表示的結構無解(為3柱的死疙瘩),拆卸也程序結束,同樣進入整個程序的下一步;。2.1 運行6柱組拆一個2柱組的子程序。可拆出1個2柱組,則進行步驟2.4 運行4柱組拆一柱的子程序;如任意一個2柱組都不可拆出,則進行步驟3.1運行6柱組分成2個3柱組的子程序2.2運行5柱組拆一個2

3、柱組的子程序??刹鸪?個2柱組,則進行步驟2.5 運行3柱組拆一柱的子程序;如任意一個2柱組都不可拆出,則此編碼表示的結構無解(為5柱的死疙瘩),拆卸程序結束,進入整個程序的下一步。2.3。運行4柱組拆一個2柱組的子程序??刹鸪?個2柱組,則此編碼表示的鎖有解(2+2+1+1的拼合方式),拆卸程序結束,進入整個程序的下一步;如任意一個2柱組都不可拆出,則此編碼表示的結構無解(為4柱的死疙瘩),拆卸程序結束,進入整個程序的下一步。2.4運行4柱組拆一柱的子程序,可拆出1柱,則進行步驟2.6運行3柱組拆一柱的子程序;如任意1柱都不可拆出,則進行步驟2.7運行4柱組拆一個2柱組的子程序。2.5運行3

4、柱組拆一柱的子程序,可拆出1柱,則此編碼表示的鎖有解(為3+2+1的拼合方式),拆卸程序結束,進入整個程序的下一步;如任意1柱都不可拆出,則此編碼表示的結構無解(為3柱的死疙瘩),拆卸也程序結束,同樣進入整個程序的下一步;。2.6運行3柱組拆一柱的子程序,可拆出1柱,則此編碼表示的鎖有解(為4+2的拼合方式),拆卸程序結束,進入整個程序的下一步;如任意1柱都不可拆出,則此編碼表示的結構無解(為3柱的死疙瘩),拆卸也程序結束,同樣進入整個程序的下一步;。2.7 。運行4柱組拆一個2柱組的子程序。可拆出1個2柱組,則此編碼表示的鎖有解(2+2+2的拼合方式),拆卸程序結束,進入整個程序的下一步;如

5、任意一個2柱組都不可拆出,則此編碼表示的結構無解(為4柱的死疙瘩),拆卸程序結束,進入整個程序的下一步。3.1運行6柱組分成2個3柱組的子程序。如果不能分成2個3柱組,則此編碼表示的結構無解(為6柱的死疙瘩),拆卸程序結束,進入整個程序的下一步。如果可以分成2個3柱組,則進入步驟3.2 :對2個3柱組各自進行3柱組拆一柱的子程序。3.2對2個3柱組各自進行3柱組拆一柱的子程序。只要有1個三柱組不能拆出任意一柱,則此編碼表示的結構無解(為3的死疙瘩),拆卸程序結束,進入整個程序的下一步;如果2個三柱組都可以拆出1根柱,則則此編碼表示的鎖有解(3+3方式),拆卸程序結束,進入整個程序的下一步;這個

6、拆卸程序只有1個入口,出口有12個。其中7個出口是以無解結束,5個出口是以有解結束。圖三是上述過程的流程圖。雖然不太規范,但是它對拆卸程序的流程應該表達清楚了。圖三拆卸程序完成,下面進入環節四。四. 拆卸分析后的數據處理,這個環節很簡單。就是對有解和無解兩種情況分別做不同的處理。1.對結果是無解的處理;將這個編碼所代表的結構的在所有不同位置時的不同編碼和它們鏡象結構的不同編碼全部放到 “已處理數據” 數據庫中。接著進行下一步:令I=I+1,處理下一個編碼:與“已處理數據” 數據庫中的數據比對;判斷程序是否運行完畢;返回環節二,進入斷柱判斷程序。2. 對結果是有解的處理;與對結果是無解的處理基本

7、相同。只是增加了一項工作:將此編碼和它的鏡象結構的不同編碼放到“有解結構”的數據庫中,等待輸出。(如果它的鏡象結構的12個編碼中,有與此編碼相同的,則只將此編碼一個放到“有解結構”的數據庫中)五.環節五:對全部有解數據綜合分析整理。這可以是分析程序以外的工作。對于6柱實心鎖的分析程序SCIAM,有解的的結果是119979個。從這119979個結果中篩選出6柱實心鎖的有用柱369個應該是必須做的。其余就沒有什么強制要求了。到這里關于6柱實心鎖的分析程序SCIAM的算法解析就算完成了。再次說明:我是計算機的程序盲。以上說法中如有不規范或錯誤之處,歡迎批評。對于其它三類鎖的三個程序:1.用可鋸柱,內

8、部無孔的JRM;2. 用可鋸柱,內部有孔的NOTC;3.用普通柱,內部有孔的HB6。簡述如下:1. 用可鋸柱,內部無孔的JRM:可以比較簡單得到,只是在6柱實心鎖的分析程序SCIAM的對有序的數組的編碼進行斷柱判斷的環節后,增加一個可鋸柱判斷的小程序,“是”,則進入下一步拆卸程序;“否”,則處理下一個編碼。2. 用普通柱,內部有孔的HB6:這是卡特的魯班鎖(孔明鎖)的計算機分析法所闡述的程序。它與在6柱實心鎖的分析程序SCIAM主要區別是:要處理的有序數組的不同.為了表示活動塊的空缺,引入虛擬的0#柱。如果一個活動塊空缺,那它就屬于虛擬的0#柱。這樣,每一個活動塊可以屬于的柱就成了表二。表二原

9、來的32位,2進制和3進制混合的有序數組。就變成了32位,3進制和4進制混合的有序數組。新的有序數組的不同的編碼數是324*48=18509302102818816個不同的數。它的第一個數是:00000000000000000000000000000000;它的最后一個數依然是:33334444445555556646645665666666。需要處理的編碼約是6柱實心鎖編碼的16.8萬倍。由此可知,HB6程序包含了SCIAM程序。整個分析程序的核心部分拆卸程序也將復雜很多。6柱實心鎖的拆解,絕大部分是只要柱(或柱組)可以移動,就可以拆出;只有極少的結構要先移動1根柱,才可以拆出另一根柱。而有

10、孔鎖會經常出現要多次的移動柱(或柱組)才可以拆出一根柱。由于有解的編碼也會多很多,同時會出現很多很多的垃圾解,例如有孔但難度系數依然是1的鎖。所以對可以進入“有解結構”的數據庫也會進行篩選。當然這個篩選條件沒有限定原則。3. 用可鋸柱,內部有孔的NOTC:同樣可以比較簡單得到,還是在6柱有孔鎖的分析程序HB6中對有序的數組的編碼進行斷柱判斷的環節后,增加一個可鋸柱判斷的小程序,“是”,則進入下一步拆卸程序;“否”,則處理下一個編碼。綜合以上對4個程序的分析,我以為HB6程序包含了其它三個程序。而用可鋸柱,內部無孔的JRM的程序是用來檢測HB6程序是否正確的試運行用品。因為JRM的程序運行時間最

11、短??ㄌ氐聂敯噫i(孔明鎖)的計算機分析法中還介紹了一些鎖,不過用的是LL碼,要讀者自己轉換。1. 說明關于鎖的對稱的11種情況的11個鎖。如下:各種對稱類型的裝配示例:   1      35355035043002251130443060223636 0  7 2 5 0 0 0   Bill's Baffling Burr   2MA    54541135410520221136410620226464 0  4 1 7

12、7 7 7   Basis for souvenir puzzle of IPP14   2MB    35355515543322221111443662666464 0  0 0 1 1 1 1   Notchable   2R     55555515543552556111143222266666 0  0 0 1 1 1 1   Notchable, Type 1 Partial Solution

13、   3R     05050000003004021100043004220666 0 17 3 2 2 5 5   Notchable Level-5   4MA    55555535543554551131143224226666 0  0 0 1 1 1 1   Notchable   4MB    55555535543224221131143664666666 0 

14、; 0 0 1 1 1 1   Notchable   4R     54351135543554221136643664223664 0  0 0 0 0 0 0   One of only Four 4R Assemblies   6MB    35355510543322221111443602666464 0  2 0 1 1 1 1   Notchable   8MB 

15、;   55551135543554221136643664226666 0  0 0 0 0 0 0   Only 8MB Assembly  24MB    55551130043004221130043004226666 0  8 0 0 0 0 0   Only 24MB Assembly還原著11個鎖,對魯班鎖(孔明鎖)的計算機分析法中極難理解的關于對稱的描述有很大的幫助。以下是18個難度系數為10的鎖,有拆解碼,可以照碼還原。1. 5554113304030022

16、0033440060200606    4    0 10 C 12 A-1 AAAA 672 541 282. 05051131540002220030040204226636    4    0 10 8 11 A-2 7A00 270 141 253. 54551133140350020030040300226666    5    0 10 6 10 A-1 A000 388 202 214. 0535113

17、0042044000030442062223606    1    0 13 C 11 A-1 6AAA 138 130 145. 35051103540204200113440222003606    1    0 10 6 10 A-1 A000  89  50 346. 35051103540204206113440222003606    1    0 10 6  9 A-1 A

18、000  30  11 187. 54551135403020221036402000066466    6    0 11 8  9 A-3 4A00  13   4 198. 54500030403350251131402002226466    1    0 13 C  9 A-1 45AA  40  22 379. 54500030402350251131403300226466

19、    4    0 12 C  9 A-1 45AA  38  11 4510. 54500530403350251131402022226466   11    9 14 8  7 A-1 5A00   2   1 2211. 54500530402350551131403302226466   35    9 12 C  7 A-1 59AA

20、   7   1 2712. 50541110003224221100143204226060   36    0 15 C  9 A-1 46AA  20   9 2313. 50541110003224221100143204006060    3    0 13 C 11 A-1 46AA  52  35 3014. 54541100003024221100143224226060

21、   68    0 16 C  9 A-1 44AA 112  77 3515. 50541110003224221100143224226060  139    0 16 C  8 A-1 46AA  10   4 1916. 54551135143202220036040002226060    1    0 10 6  9 A-1 A000  46 

22、 26 1617. 54551131143202221136040002226060   49    0 10 6  7 A-1 A000  40  13 1818. 50501131443520220031140002226060    4    0 13 C 10 A-1 AAAA 176 123 20- - - - - - - - - - -         &

23、#160;                    拆解碼     Move1  Move2  Move3  Move4  Move5  Move6  Move7  Move8  Move91. 112  * 1F6  * 2F4  * 314 

24、60;  1F1    211    315    214    1F23 *2. 112  * 211  * 1F5  * 214    122    2F4    115    2F1    3136 *3. 112  * 211  * 3145 

25、0; 114    3F5    2F1    326    116    3164. 112  * 211  * 315  * 2F23   3125   1F2    3F5    213    3F1465. 112    313  

26、  111  * 1F23 * 3F6  * 211    325    2F1    1F1  *6. 112    313    1F23 * 3F6    111  * 211    325    2F1    1F17. 114    314

27、    1F1    3E6    111    3F46   115  * 1F2  * 21368. 1146   325    1E2  * 2F35   3E5    1125 * 213  * 1F6    2136 *9. 1146   325 &

28、#160;  1E2  # 2F35   3E5    115  # 213  # 1F6  # 2136 *10. 1146   325    1F2    2F35   3E5    115    213    1F26   2F14511. 1146   325&

29、#160;   1F2    2F35   3E5    115    213  # 1F6  # 2136 *12. 116    21246  121    2F246  1F6    2E4  * 115    2F25 * 3125 *13. 116    21

30、246  121    2F246  1F6    2E4  * 115    2F5  * 312  *14. 116    21246  121  # 2F246  1F6  # 2F4    115    2E245* 3125 *15. 116    21246  121 

31、; # 2F246  1F6  # 2F4    115    2F245  3125 *16. 116    2F3    1E2    213    1F6    211  * 2F4  * 115    213617. 116    2F3  # 1E2 

32、;   213  # 1F6    2F4    115    2136 * 3F6  *18. 116    2F35   1E2    215    1125   213  * 1F6    2F245* 3F1  *以下是13個所謂“名聲顯赫”的鎖,有LL碼,拆解碼,要還原它還要動些

33、腦筋。幾個“名聲顯赫”的鎖: (LL Format of Rotated Assembly) 6-Piece Burr Puzzle Name L  H Lvs LTyp Asm Sol P m M  S St Ap50541131042042220633042002226466 Bill's Baffling Burr     6  7 5-1 5000  24   1 0 5 5  1  5  1545511311432022260311400

34、02226060 The Piston Puzzle        6  7 9-3 9000  10   1 0 9 9  1 11  155550130540004551133440602226060 Love's Dozen             6  9 C-3 C000 154  90 3 1 C 

35、 1 18  254545133402222221133400004226466 Diff. at Length 10 & 12  A  5 5-3 3350   1   1 0 5 5  1 16  235355533512054221131112644226464 Notchable 1-Hole Level-2 8  1 2-1 2222   4   4 0 1 2  1  2  150501135442002201133442622226060 L5 Notchable   &

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論