鲁班锁计算机分析的算法.二概要.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
鲁班锁计算机分析的算法解析.二 三.进入整个分析程序的核心部分——拆卸程序: 拆卸程序是整个鲁班锁计算机分析程序的核心部分,它的主要思路是优先考虑拆出一根柱。当待拆的柱组拆出一根柱(或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运行3柱组拆一柱的子程序;如任意1柱都不可拆出,则进行步骤2.7运行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个出口是以有解结束。图三是上述过程的流程图。虽然不太规范,但是它对拆卸程序的流程应该表达清楚了。 图三 拆卸程序完成,下面进入环节四。 四. 拆卸分析后的数据处理,这个环节很简单。就是对有解和无解两种情况分别做不同的处理。 1.对结果是无解的处理;将这个编码所代表的结构的在所有不同位置时的不同编码和它们镜象结构的不同编码全部放到 “已处理数据” 数据库中。接着进行下一步:令I=I+1,处理下一个编码:与“已处理数据” 数据库中的数据比对;判断程序是否运行完毕;返回环节二,进入断柱判断程序。 2. 对结果是有解的处理;与对结果是无解的处理基本相同。只是增加了一项工作:将此编码和它的镜象结构的不同编码放到“有解结构”的数据库中,等待输出。(如果它的镜象结构的12个编码中,有与此编码相同的,则只将此编码一个放到“有解结构”的数据库中) 五.环节五:对全部有解数据综合分析整理。这可以是分析程序以外的工作。对于6柱实心锁的分析程序SCIAM,有解的的结果是119979个。从这11

文档评论(0)

***** + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档