鲁班锁计算机分析的算法解析.二_第1页
鲁班锁计算机分析的算法解析.二_第2页
鲁班锁计算机分析的算法解析.二_第3页
鲁班锁计算机分析的算法解析.二_第4页
鲁班锁计算机分析的算法解析.二_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

鲁班锁计算机分析的算法解析 .二.进入整个分析程序的核心部分——拆卸程序:拆卸程序是整个鲁班锁计算机分析程序的核心部分,它的主要思路是优先考虑拆出一根柱。当待拆的柱组拆出一根柱(或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柱组的子程序。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柱组的子程序。。可拆出1个2柱组,则进行步骤2.5运行3柱组拆一柱的子程序;如任意一个 2柱组都不可拆出,则此编码表示的结构无解(为 5柱的死疙瘩),拆卸程序结束,进入整个程序的下一步。2.3。运行4柱组拆一个 2柱组的子程序。。可拆出1个2柱组,则此编码表示的锁有解(2+2+1+1的拼合方式),拆卸程序结束,进入整个程序的下一步;如任意一个2柱组都不可拆出,则此编码表示的结构无解 (为4柱的死疙瘩),拆卸程序结束,进入整个程序的下一步。2.4运行4柱组拆一柱的子程序,可拆出1柱,则进行步骤2.6一柱的子程序;如任意1柱都不可拆出,则进行步骤2.7运行

运行3柱组拆4柱组拆一个 2柱组的子程序。2.5运行3柱组拆一柱的子程序,可拆出1柱,则此编码表示的锁有解(为3+2+1的拼合方式),拆卸程序结束,进入整个程序的下一步;如任意1柱都不可拆出,则此编码表示的结构无解(为3柱的死疙瘩),拆卸也程序结束,同样进入整个程序的下一步;。2.6运行3柱组拆一柱的子程序,可拆出1柱,则此编码表示的锁有解(为4+2的拼合方式),拆卸程序结束,进入整个程序的下一步;如任意1柱都不可拆出,则此编码表示的结构无解(为3柱的死疙瘩),拆卸也程序结束,同样进入整个程序的下一步;。2.7 。运行4柱组拆一个 2柱组的子程序。可拆出 1个2柱组,则此编码表示的锁有解(2+2+2的拼合方式),拆卸程序结束,进入整个程序的下一步;如任意一个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方式),拆卸程序结束,进入整个程序的下一步;这个拆卸程序只有1个入口,出口有12个。其中7个出口是以无解结束,5个出口是以有解结束。图三是上述过程的流程图。虽然不太规范,但是它对拆卸程序的流程应该表达清楚了。图三拆卸程序完成,下面进入环节四。四. 拆卸分析后的数据处理,这个环节很简单。就是对有解和无解两种情况分别做不同的处理。对结果是无解的处理;将这个编码所代表的结构的在所有不同位置时的不同编码和它们镜象结构的不同编码全部放到“已处理数据”数据库中。接着进行下一步:令I=I+1,处理下一个编码:与“已处理数据”数据库中的数据比对;判断程序是否运行完毕;返回环节二,进入断柱判断程序。对结果是有解的处理;与对结果是无解的处理基本相同。只是增加了一项工作:将此编码和它的镜象结构的不同编码放到“有解结构”的数据库中,等待输出。(如果它的镜象结构的12个编码中,有与此编码相同的,则只将此编码一个放到“有解结构”的数据库中)五.环节五:对全部有解数据综合分析整理。这可以是分析程序以外的工作。对于6柱实心锁的分析程序 SCIAM,有解的的结果是 119979个。从这119979个结果中筛选出6柱实心锁的有用柱369个应该是必须做的。其余就没有什么强制要求了。到这里关于 6柱实心锁的分析程序 SCIAM的算法解析就算完成了。再次说明:我是计算机的程序盲。 以上说法中如有不规范或错误之处, 欢迎批评。对于其它三类锁的三个程序: 1.用可锯柱,内部无孔的 JRM;2. 用可锯柱,内部有孔的 NOTC;3.用普通柱,内部有孔的 HB6。简述如下:1. 用可锯柱,内部无孔的 JRM:可以比较简单得到,只是在 6柱实心锁的分析程序SCIAM的对有序的数组的编码进行断柱判断的环节后,增加一个可锯柱判断的小程序,“是”,则进入下一步拆卸程序;“否”,则处理下一个编码。用普通柱,内部有孔的HB6:这是卡特的《鲁班锁(孔明锁)的计算机分析法》所阐述的程序。它与在6柱实心锁的分析程序SCIAM主要区别是:①要处理的有序数组的不同 .为了表示活动块的空缺,引入虚拟的 0#柱。如果一个活动块空缺,那它就属于虚拟的 0#柱。这样,每一个活动块可以属于的柱就成了表二。表二原来的32位,2进制和3进制混合的有序数组 。就变成了 32位,3进制和4进制混合的有序数组。新的有序数组的不同的编码数是324*48=个不同的数。它的第一个数是: 00000000000000000000000000000000;它的最后一个数依然是: 33334444445555556646645665666666。需要处理的编码约是 6柱实心锁编码的 16.8万倍。由此可知,HB6程序包含了 SCIAM程序。②整个分析程序的核心部分——拆卸程序也将复杂很多。 6柱实心锁的拆解,绝大部分是只要柱(或柱组)可以移动,就可以拆出;只有极少的结构要先移动1根柱,才可以拆出另一根柱。而有孔锁会经常出现要多次的移动柱(或柱组)才可以拆出一根柱。③由于有解的编码也会多很多,同时会出现很多很多的垃圾解,例如有孔但难度系数依然是1的锁。所以对可以进入“有解结构”的数据库也会进行筛选。当然这个筛选条件没有限定原则。3.用可锯柱,内部有孔的NOTC:同样可以比较简单得到,还是在6柱有孔锁的分析程序HB6中对有序的数组的编码进行断柱判断的环节后,增加一个可锯柱判断的小程序,“是”,则进入下一步拆卸程序;“否”,则处理下一个编码。综合以上对4个程序的分析,我以为HB6程序包含了其它三个程序。而用可锯柱,内部无孔的JRM的程序是用来检测HB6程序是否正确的试运行用品。因为JRM的程序运行时间最短。卡特的《鲁班锁(孔明锁)的计算机分析法》中还介绍了一些锁,不过用的是LL码》,要读者自己转换。说明关于锁的对称的11种情况的11个锁。如下:各种对称类型的装配示例:1353550350430022511304430602236360725000Bill'sBafflingBurr2MA545411354105202211364106202264640417777BasisforsouvenirpuzzleofIPP142MB353555155433222211114436626664640001111Notchable2R555555155435525561111432222666660001111Notchable,Type1PartialSolution3R0505000000300402110004300422066601732255NotchableLevel-54MA555555355435545511311432242266660001111Notchable4MB555555355432242211311436646666660001111Notchable4R543511355435542211366436642236640000000OneofonlyFour4RAssemblies6MB353555105433222211114436026664640201111Notchable8MB555511355435542211366436642266660000000Only8MBAssembly24MB555511300430042211300430042266660800000Only24MBAssembly还原着 11个锁,对《鲁班锁(孔明锁)的计算机分析法》中极难理解的关于对称的描述有很大的帮助。以下是18个难度系数为 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. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论