版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
魯班鎖計算機分析的算法解析 .二.進入整個分析程序的核心部分——拆卸程序:拆卸程序是整個魯班鎖計算機分析程序的核心部分,它的主要思路是優(yōu)先考慮拆出一根柱。當待拆的柱組拆出一根柱(或1組柱)時,下一步還是試拆一根柱。以下是我根據(jù)我在《魯班鎖結(jié)構(gòu)分析法》用的思路做的拆卸程序的邏輯過程:1.1開始拆卸,運行6柱組拆一柱的子程序,可拆出1柱,則進行步驟1.2運行5柱組拆一柱的子程序;如任意1柱都不可拆出,則進行步驟2.1運行6柱組拆一個2柱組的子程序。1.2運行5柱組拆一柱的子程序,可拆出1柱,則進行步驟1.3運行4柱組拆一柱的子程序;如任意1柱都不可拆出,則進行步驟2.2運行5柱組拆一個2柱組的子程序。1.3運行4柱組拆一柱的子程序,可拆出1柱,則進行步驟1.4運行3柱組拆一柱的子程序;如任意1柱都不可拆出,則進行步驟2.3運行4柱組拆一個2柱組的子程序。1.4運行3柱組拆一柱的子程序,可拆出1柱,則此編碼表示的鎖有解(為5+1的拼合方式),拆卸程序結(jié)束,進入整個程序的下一步;如任意1柱都不可拆出,則此編碼表示的結(jié)構(gòu)無解(為3柱的死疙瘩),拆卸也程序結(jié)束,同樣進入整個程序的下一步;。2.1運行6柱組拆一個2柱組的子程序??刹鸪?個2柱組,則進行步驟2.4運行4柱組拆一柱的子程序;如任意一個2柱組都不可拆出,則進行步驟3.1運行6柱組分成2個3柱組的子程序2.2運行5柱組拆一個2柱組的子程序。。可拆出1個2柱組,則進行步驟2.5運行3柱組拆一柱的子程序;如任意一個 2柱組都不可拆出,則此編碼表示的結(jié)構(gòu)無解(為 5柱的死疙瘩),拆卸程序結(jié)束,進入整個程序的下一步。2.3。運行4柱組拆一個 2柱組的子程序。??刹鸪?個2柱組,則此編碼表示的鎖有解(2+2+1+1的拼合方式),拆卸程序結(jié)束,進入整個程序的下一步;如任意一個2柱組都不可拆出,則此編碼表示的結(jié)構(gòu)無解 (為4柱的死疙瘩),拆卸程序結(jié)束,進入整個程序的下一步。2.4運行4柱組拆一柱的子程序,可拆出1柱,則進行步驟2.6一柱的子程序;如任意1柱都不可拆出,則進行步驟2.7運行
運行3柱組拆4柱組拆一個 2柱組的子程序。2.5運行3柱組拆一柱的子程序,可拆出1柱,則此編碼表示的鎖有解(為3+2+1的拼合方式),拆卸程序結(jié)束,進入整個程序的下一步;如任意1柱都不可拆出,則此編碼表示的結(jié)構(gòu)無解(為3柱的死疙瘩),拆卸也程序結(jié)束,同樣進入整個程序的下一步;。2.6運行3柱組拆一柱的子程序,可拆出1柱,則此編碼表示的鎖有解(為4+2的拼合方式),拆卸程序結(jié)束,進入整個程序的下一步;如任意1柱都不可拆出,則此編碼表示的結(jié)構(gòu)無解(為3柱的死疙瘩),拆卸也程序結(jié)束,同樣進入整個程序的下一步;。2.7 。運行4柱組拆一個 2柱組的子程序。可拆出 1個2柱組,則此編碼表示的鎖有解(2+2+2的拼合方式),拆卸程序結(jié)束,進入整個程序的下一步;如任意一個2柱組都不可拆出,則此編碼表示的結(jié)構(gòu)無解 (為4柱的死疙瘩),拆卸程序結(jié)束,進入整個程序的下一步。3.1運行6柱組分成2個3柱組的子程序。如果不能分成 2個3柱組,則此編碼表示的結(jié)構(gòu)無解(為6柱的死疙瘩),拆卸程序結(jié)束,進入整個程序的下一步。如果可以分成 2個3柱組,則進入步驟 3.2 :對2個3柱組各自進行 3柱組拆一柱的子程序。3.2對2個
3柱組各自進行
3柱組拆一柱的子程序。只要有
1個三柱組不能拆出任意一柱,則此編碼表示的結(jié)構(gòu)無解(為 3的死疙瘩),拆卸程序結(jié)束,進入整個程序的下一步;如果2個三柱組都可以拆出1根柱,則則此編碼表示的鎖有解(3+3方式),拆卸程序結(jié)束,進入整個程序的下一步;這個拆卸程序只有1個入口,出口有12個。其中7個出口是以無解結(jié)束,5個出口是以有解結(jié)束。圖三是上述過程的流程圖。雖然不太規(guī)范,但是它對拆卸程序的流程應該表達清楚了。圖三拆卸程序完成,下面進入環(huán)節(jié)四。四. 拆卸分析后的數(shù)據(jù)處理,這個環(huán)節(jié)很簡單。就是對有解和無解兩種情況分別做不同的處理。對結(jié)果是無解的處理;將這個編碼所代表的結(jié)構(gòu)的在所有不同位置時的不同編碼和它們鏡象結(jié)構(gòu)的不同編碼全部放到“已處理數(shù)據(jù)”數(shù)據(jù)庫中。接著進行下一步:令I(lǐng)=I+1,處理下一個編碼:與“已處理數(shù)據(jù)”數(shù)據(jù)庫中的數(shù)據(jù)比對;判斷程序是否運行完畢;返回環(huán)節(jié)二,進入斷柱判斷程序。對結(jié)果是有解的處理;與對結(jié)果是無解的處理基本相同。只是增加了一項工作:將此編碼和它的鏡象結(jié)構(gòu)的不同編碼放到“有解結(jié)構(gòu)”的數(shù)據(jù)庫中,等待輸出。(如果它的鏡象結(jié)構(gòu)的12個編碼中,有與此編碼相同的,則只將此編碼一個放到“有解結(jié)構(gòu)”的數(shù)據(jù)庫中)五.環(huán)節(jié)五:對全部有解數(shù)據(jù)綜合分析整理。這可以是分析程序以外的工作。對于6柱實心鎖的分析程序 SCIAM,有解的的結(jié)果是 119979個。從這119979個結(jié)果中篩選出6柱實心鎖的有用柱369個應該是必須做的。其余就沒有什么強制要求了。到這里關(guān)于 6柱實心鎖的分析程序 SCIAM的算法解析就算完成了。再次說明:我是計算機的程序盲。 以上說法中如有不規(guī)范或錯誤之處, 歡迎批評。對于其它三類鎖的三個程序: 1.用可鋸柱,內(nèi)部無孔的 JRM;2. 用可鋸柱,內(nèi)部有孔的 NOTC;3.用普通柱,內(nèi)部有孔的 HB6。簡述如下:1. 用可鋸柱,內(nèi)部無孔的 JRM:可以比較簡單得到,只是在 6柱實心鎖的分析程序SCIAM的對有序的數(shù)組的編碼進行斷柱判斷的環(huán)節(jié)后,增加一個可鋸柱判斷的小程序,“是”,則進入下一步拆卸程序;“否”,則處理下一個編碼。用普通柱,內(nèi)部有孔的HB6:這是卡特的《魯班鎖(孔明鎖)的計算機分析法》所闡述的程序。它與在6柱實心鎖的分析程序SCIAM主要區(qū)別是:①要處理的有序數(shù)組的不同 .為了表示活動塊的空缺,引入虛擬的 0#柱。如果一個活動塊空缺,那它就屬于虛擬的 0#柱。這樣,每一個活動塊可以屬于的柱就成了表二。表二原來的32位,2進制和3進制混合的有序數(shù)組 。就變成了 32位,3進制和4進制混合的有序數(shù)組。新的有序數(shù)組的不同的編碼數(shù)是324*48=個不同的數(shù)。它的第一個數(shù)是: 00000000000000000000000000000000;它的最后一個數(shù)依然是: 33334444445555556646645665666666。需要處理的編碼約是 6柱實心鎖編碼的 16.8萬倍。由此可知,HB6程序包含了 SCIAM程序。②整個分析程序的核心部分——拆卸程序也將復雜很多。 6柱實心鎖的拆解,絕大部分是只要柱(或柱組)可以移動,就可以拆出;只有極少的結(jié)構(gòu)要先移動1根柱,才可以拆出另一根柱。而有孔鎖會經(jīng)常出現(xiàn)要多次的移動柱(或柱組)才可以拆出一根柱。③由于有解的編碼也會多很多,同時會出現(xiàn)很多很多的垃圾解,例如有孔但難度系數(shù)依然是1的鎖。所以對可以進入“有解結(jié)構(gòu)”的數(shù)據(jù)庫也會進行篩選。當然這個篩選條件沒有限定原則。3.用可鋸柱,內(nèi)部有孔的NOTC:同樣可以比較簡單得到,還是在6柱有孔鎖的分析程序HB6中對有序的數(shù)組的編碼進行斷柱判斷的環(huán)節(jié)后,增加一個可鋸柱判斷的小程序,“是”,則進入下一步拆卸程序;“否”,則處理下一個編碼。綜合以上對4個程序的分析,我以為HB6程序包含了其它三個程序。而用可鋸柱,內(nèi)部無孔的JRM的程序是用來檢測HB6程序是否正確的試運行用品。因為JRM的程序運行時間最短。卡特的《魯班鎖(孔明鎖)的計算機分析法》中還介紹了一些鎖,不過用的是LL碼》,要讀者自己轉(zhuǎn)換。說明關(guān)于鎖的對稱的11種情況的11個鎖。如下:各種對稱類型的裝配示例:1353550350430022511304430602236360725000Bill'sBafflingBurr2MA545411354105202211364106202264640417777BasisforsouvenirpuzzleofIPP142MB353555155433222211114436626664640001111Notchable2R555555155435525561111432222666660001111Notchable,Type1PartialSolution3R0505000000300402110004300422066601732255NotchableLevel-54MA555555355435545511311432242266660001111Notchable4MB555555355432242211311436646666660001111Notchable4R543511355435542211366436642236640000000OneofonlyFour4RAssemblies6MB353555105433222211114436026664640201111Notchable8MB555511355435542211366436642266660000000Only8MBAssembly24MB555511300430042211300430042266660800000Only24MBAssembly還原著 11個鎖,對《魯班鎖(孔明鎖)的計算機分析法》中極難理解的關(guān)于對稱的描述有很大的幫助。以下是18個難度系數(shù)為 10的鎖,有拆解碼,可以照碼還原。1.555411330403002200334400602006064010C12A-1AAAA672541282.050511315400022200300402042266364010811A-27A00270141253.545511331403500200300403002266665010610A-1A000388202214.053511300420440000304420622236061013C11A-16AAA138130145.350511035402042001134402220036061010610A-1A0008950346.35051103540204206113440222003606101069A-1A0003011187.54551135403020221036402000066466601189A-34A00134198.545000304033502511314020022264661013C9A-145AA4022379.545000304023502511314033002264664012C9A-145AA38114510.545005304033502511314020222264661191487A-15A00212211.5450053040235055113140330222646635912C7A-159AA712712.5054111000322422110014320422606036015C9A-146AA2092313.505411100032242211001432040060603013C11A-146AA52353014.5454110000302422110014322422606068016C9A-144AA112773515.50541110003224221100143224226060139016C8A-146AA1041916.54551135143202220036040002226060101069A-1A00046261617.545511311432022211360400022260604901067A-1A00040131818.505011314435202200311400022260604013C10A-1AAAA17612320------------------------------------------------------------拆解碼Move1Move2Move3Move4Move5Move6Move7Move8Move91.112*1F6*2F4*3141F12113152141F23*2.112*211*1F5*2141222F41152F13136*3.112*211*31451143F52112*211*315*2F2331251F23F52133F1465.112313111*1F23*3F6*2113252F11F1*6.1123131F23*3F6111*2113252F11F17.1143141F13E61113F46115*1F2*21368.11463251E2*2F353E51125*213*1F62136*9.11463251E2#2F353E5115#213#1F6#2136*10.11463251F22F353E51152131F262F14511.11463251F22F353E5115213#1F6#2136*12.116212461212F2461F62E4*1152F25*3125*13.116212461212F2461F62E4*1152F5*312*14.11621246121#2F2461F6#2F41152E245*3125*15.11621246121#2F2461F6#2F41152F2453125*16.1162F31E22131F6211*2F4*115213617.1162F3#1E2213#1F62F41152136*3F6*18.1162F351E22151125213*1F62F245*3F1*以下是13個所謂“名聲顯赫”的鎖,有《LL碼》,拆解碼,要還原它還要動些腦筋。幾個“名聲顯赫”的鎖:(LLFormatofRotatedAssembly)6-PieceBurrPuzzleNameLHLvsLTypAsmSolPmMSStAp50541131042042220633042002226466Bill'sBafflingBurr675-1500024105515154551131143202226031140002226060ThePistonPuzzle679-39000101099111155550130540004551133440602226060Love'sDozen69C-3C0001549031C118254545133402222221133400004226466Diff.atLength10&12A55-33350
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 新版五年級英語下冊教案
- 上課遲到檢討書(合集15篇)
- 行業(yè)調(diào)研報告匯編4篇
- 中考熱點素材集合15篇
- 電子公司實習報告匯編7篇
- 《呼蘭河傳》讀書筆記(15篇)
- 邊城讀書筆記(15篇)
- 喹諾酮類抗菌藥物合理使用的理性思考
- 七年級地理教學工作計劃范例(20篇)
- 入伍保留勞動關(guān)系協(xié)議書(2篇)
- 12S522-混凝土模塊式排水檢查井
- 4s店維修原廠協(xié)議書范文
- 2020-2021學年北京市西城區(qū)七年級(上)期末數(shù)學試卷(附答案詳解)
- DB13-T 5821-2023 預拌流態(tài)固化土回填技術(shù)規(guī)程
- 第四單元“家鄉(xiāng)文化生活”系列教學設(shè)計 統(tǒng)編版高中語文必修上冊
- 工業(yè)園區(qū)臨時管理公約
- GB/T 26527-2024有機硅消泡劑
- 形象與禮儀智慧樹知到期末考試答案2024年
- 化工建設(shè)綜合項目審批作業(yè)流程圖
- TSGD-(壓力管道安裝許可規(guī)則)
- 頸椎病的分型和治課件
評論
0/150
提交評論