鲁班锁的编码解析
- 格式:doc
- 大小:691.00 KB
- 文档页数:7
鲁班锁的编码解析
为了便于鲁班锁研究的交流和记录,一般都将鲁班锁和鲁班锁的用柱用数字编码的方式表示。
然而在现今鲁班锁的研究界中,一些资深人士有意无意将鲁班锁的编码和鲁班锁的用柱的编码混淆在一起,使得人们对鲁班锁的进一步研究产生了相当大的误导。
为此我觉得有必要对鲁班锁的编码和鲁班锁的用柱的编码做一个明确的界定。
(以6柱锁为例)
一.鲁班锁的编码:截止本文写作的时间为止,已有的对于鲁班锁的编码只
有2种。
卡特的《LL编码》和我的《W编码》。
卡特的《LL编码》,他是用一个32位数表示6柱锁中的32个活动块对6根柱的归属。
加上与其配合的拆解码。
就完整的表示了一个6柱锁的所有信息。
这是史上第一个对鲁班锁的编码。
因为是从无到有,《LL编码》对鲁班锁研究的意义是巨大的。
但是它的缺点是太过抽象。
要将32位数表示的6根柱转换为直观的6根柱的过程相当麻烦。
当然用计算机程序转换非常方便。
因为《LL编码》就是卡特用计算机程序分析6柱鲁班锁得到的。
这样的转换程序就嵌在总的对鲁班锁分析的程序中。
有关《LL编码》,详见咕咚先生的译文《鲁班锁(孔明锁)的计算机分析介绍5》。
另一种关于鲁班锁的编码就是本人创造的《W编码》,也就是《威编码》。
它对每一根鲁班柱都用可以表示这根柱在锁中的位臵,柱的方位编码和拆卸次序等3个部分组成。
有关《W编码》,详见我的《鲁班锁的新编码——W编码》的一,二,三。
除上述2种编码外还没有见到过其它的关于鲁班锁的整体的编码。
二. 鲁班锁的用柱的编码:说到鲁班锁的用柱的编码当以美国数学家和著名的数学科普作家马丁·加德纳(Martin Gardner,1914年11月21日-2010年5月22日)的编码为代表。
我将其称为《马丁编码》。
《马丁编码》只是对单独的鲁班柱编码,从数学的角度评价,堪称完美。
1.本人玩锁不久(大概就三个月左右),就对《马丁编码》做了个验证计算。
历时三四个月,完成了验证工作。
写了个帖子《一个空间的排列组合题》,后来也作为博文发表了。
这次验证与《马丁编码》的起点一致:对12个活动块的组合计算;结果一致:可以组成837个不同的柱;中间的节点一致:有4096个不同的组合,其中有2225个可以成柱,另外1871个组合为断柱。
有了这次验证,明白了《马丁编码》的实质。
马丁编写《马丁编码》实际上就做了2件事:1.史无前例的解了一道空间的排列组合题;2.也是史上第一个提出了给鲁班锁的用柱的编码方法,并给837根柱做了编码。
837根柱的详细描述是一个日本人发表的,有图,有编码。
详见
/Burrs/list.html
必须指出的是:《马丁编码》只是给柱编码,与锁无关。
理由有三:
1.《马丁编码》的形成过程中根本没有涉及锁。
我在《一个空间的排列组合题》一文中详述了《马丁编码》的形成过程,全部过程与锁无关。
事实上我那时还不懂鲁班锁的结构。
如果《马丁编码》的形成过程与锁有关,我就无法做完这个验证。
2.鲁班锁与鲁班锁的用柱有关的唯一纽带是在837根柱中只有369根可用柱,
在《马丁编码》的形成过程中根本无法得到369根可用柱。
反过来,在卡特的《鲁班锁(孔明锁)的计算机分析介绍》和我的《鲁班锁(孔明锁)的结构
分析法》这2个对鲁班锁整体分析的过程中也不会涉及到837中那468根用不到的柱。
也就是说:研究鲁班锁的用柱时,得不到369根可用柱;研究鲁班锁时,只能得到369根可用柱,而不会涉及837这个著名数据。
据我所知,目前369根可用柱的来源只有2个途径:
⑴.来自卡特的《鲁班锁(孔明锁)的计算机分析法》。
卡特的《鲁班锁(孔明锁)的计算机分析法》在得到119979个6柱实心锁以后,可以用数学统计的方法得到这119979个锁使用的不同柱的种数——369。
虽然他只在一份输出统计表中的一栏提到这个369,但是我毫不怀疑这个数据的真实性。
这是先有锁,后有柱。
由于卡特的《鲁班锁(孔明锁)的计算机分析法》在运算过程中不涉及柱的编码,所以在卡特的《鲁班锁(孔明锁)的计算机分析法》中没有对这369根可用柱的具体描述,只有一个369的数字。
国内有人用计算机分析的方法研究鲁班锁十多年,还是没有得到369根有用柱。
其原因就是他的这个研究还没有最后完成。
⑵.来自本人的《鲁班锁(孔明锁)的结构分析法之三:“柱”“梁”“檐”三类柱的柱形特点》这篇文章。
根据这篇文章的原理,找到“柱”“梁”“檐”每一类柱的具体结构综合这三类柱的内容就得到369根可用柱。
由此我得到了第一个369柱全部的具体编码(马丁码)和它们的分类表:
369根可用柱的编码。
底色的不同是柱的分类不同。
这也是鲁班锁研究史上第
一个详细的369的数据,也是迄今为止的唯一一份详细的369的数据表。
(这份表是我最后一次核对369的正确性时的用表)
这369根柱的具体分类如下表:
369的汇总表
合计:梁 299
柱 101
檐 77
这是先有柱,后有锁。
这也是《鲁班锁(孔明锁)的计算机法》。
和《鲁班锁(孔明锁)的结构分析法》的区别之一。
3.《马丁编码》一再强调的同形异码处理方法要用最小编码原则就是只对柱不管锁的具体体现。
作为柱的编码,要做到一柱一码使用最小编码原则是必须的。
而在对一个锁的编码中,用不同的编码表示同一根柱在锁中不同方向和位臵也是必须的。
这一点在我的《鲁班锁的新编码——W编码》已经做了详细的阐述。
最后想说的是;现在国内有一些人还在对鲁班锁的用柱做一些新的编码,使用的是切片分组,每组4个活动块,每组编一个码。
(这里又分了2种,一种是2进制码,每组的编码从0000到1111共16种;一种是10进制码,每组的编码从1到15也是共16种;都是同一个原理)再将各组编码连起来就成了柱编码。
其作用还是和《马丁编码》一样:给柱起一个名字。
至于有人试图将12位鲁班柱的编码拓展到20位柱,这个想法看似简单可行,实际很难做到。
理由是:12位鲁班柱的编码拓展到20位柱,活动块增加了8个,全部组合数翻了256倍,由4096就翻到了1048576。
即使不用穷举法筛选,那么相应的837也大约翻了256倍到200000左右,工作量也是大的惊人。
就是做好了全部数据的输出(即使只用编码形式)也大约需要250多页A4纸。
同时这20万根柱的有用无用也无法考证。
因为使用20位柱的鲁班锁有多种,至今还没有任意一种象6柱锁那样被做过详细解析。
顺便说一句,鲁班锁研究中简单的柱或块的拓展有些看似简单,实际不可行。
例如:将卡特的《鲁班锁(孔明锁)的计算机分析法》从分析6柱锁拓展到分析9柱锁就无法实现。