搜索
设为首页收藏本站站长邮箱:mengyuanxiang520@gmail.com
鲁班书 鲁班书 鲁班锁 查看内容

鲁班锁是古老中国的智慧遗产,鲁班锁(孔明锁)的计算机分析介绍

2018-9-13 09:35| 发布者: 管理员| 查看: 261| 评论: 0

简介:鲁班锁(孔明锁)的计算机分析介绍鲁班锁介绍一、简介:  鲁班锁是古老中国的智慧遗产,江浙一带也称“孔明锁”,作为一种智力玩具,与“九连环”、“华容道”等传承至今。但可能因为缺少文献记载,使得这些智力玩 ...
鲁班锁(孔明锁)的计算机分析介绍
鲁班锁介绍

一、简介:
  鲁班锁是古老中国的智慧遗产,江浙一带也称“孔明锁”,作为一种智力玩具,与“九连环”、“华容道”等传承至今。但可能因为缺少文献记载,使得这些智力玩具的发明来历等仅止于传说。
玩过鲁班锁的人都知道,这个东西拆解容易,但装配困难,往往拆开后就无法装配起来了,所以不得不佩服老祖宗设计出来时的智慧。
鲁班锁在18世纪末在西方大量出现,1803年德国编的一本玩具目录中有收录。1928年爱德温怀特所写《木制智力玩具》中专门提到了许多鲁班锁等连锁智力玩具,尽管当时人们因为这种智力玩具在东方被大量生产而称之为“中国难题”,但事实上,我们中国的历史文献、古代典籍中未有关于这类智力玩具的详细记录,以至于现在人们对鲁班锁的发明并没有明确地归于中国人。
怀特对鲁班锁这类由多根木条组装起来的智力玩具称呼为“刺果”(Burr),缘之于其外形酷似一种植物种子。现在西方通常就用此称呼,而我国国内经常可见也容易买到的就是由六根木条组成的那种鲁班锁,怀特称之为“six-picec burr”。下面列出几种“刺果”的样子,看来怀特的命名还是比较贴切的,还真找不到合适的中文名称来命名。如“连锁结构智力玩具”、“木条结”、“多子连方”、“弊死牛”等名称都无法反映其外形特征,至于“鲁班锁”应该是这类连锁智力玩具的一个类别。

二、经典鲁班锁及解法: 最经典的鲁班锁如下图:

第一个乃国产,第二个来自国外零售网站。材质、工艺水平颇有差距,当然价格也是,2人民币对17美金!国内还不一定买得到做工特精细的那种,即便进口来了也不一定卖得出去!给小孩玩玩的几根木条,也就值个几块人民币吧,除非你做成纯金的给一些暴发户当奢侈品,那就“钱不是问题”。看来国人还是缺少“达芬奇”的勇气。不过话说回来,制作水平、市场接受程度等现状与国内的研究水平还是成比例的。

下面给出那个经典孔明锁的解法,摘自IBM网站:


常见的就是这六根木条的组合,上图第一行是朝上的,第二行是朝下的。第1根是完全实心。
共有二种解法,第一种如下:


第二种解法如下:

三、任意鲁班锁的解法:
  如果手头有一个鲁班锁与经典的那种有别,无法装配起来,则可以求助计算机帮忙。网上并无专门的程序可供下载,唯一可以找到的是IBM公司的一个网页,内置了鲁班锁的解法程序。
IBM公司有一些杂七杂八的研究,鲁班锁研究是其中一个。“IBM研究”项目中,关于鲁班锁研究的网站为“刺果研究站点”,当然主要是研究经典结构的鲁班锁。该站点完工于1997年,网址是http://www.research.ibm.com/BurrPuzzles/index.html,如果需要调用鲁班锁解法的计算程序,则可直接访问:http://www.research.ibm.com/BurrPuzzles/Build.html,该计算程序内嵌在网页中,并需在“JAVA虚拟机”环境下运行,一般windows操作系统可能未安装此虚拟机,浏览器可能无法显示计算界面,所以需先下载安装后再运行。可以到网上搜索下载“JAVA虚拟机”,有微软公司的,还有SUN公司的。微软的虚拟机安装后如果还是不能显示运行界面,则可试用SUN公司的JAVA虚拟机,程序版本大概是1.5,容量约在15M左右,我最近下载的程序文件名为:jre-1_5_0_08-windows-i586-p-s.exe。安装完后,重新打开上面IBM研究的网页,出现JAVA程序的界面如下:


成功显示上述界面后,你就可以在上面点击每块小木条下面的二排小方块来设置块的形状。全部设完后,一般可直接按计算按钮(Calculate),系统就按默认设置进行计算。对特别复杂的鲁班锁来说,运行时间可能会很长,可以设置每个解的计算时间,或“只找第一个解”,或“找最小等级解”,还可以设置块长为几个单元,块长可以是6、8、10和12,一般就设为6。对于经典构造的那个鲁班锁,其实按默认即可。

点计算后,JAVA小程序很快给出计算结果,如下图所示:


上图分四个区块:
左上为各块位置图,固定不变,位置名称为字母A-F,每个位置上可放置不同的块,块号用数字表示:1-6;
右上区域为块配置图,点击可返回到前一界面查看或重新编辑块形状; 
左下则是解的视图,如果输入了一个无解的配置,则该图空白,这部分可有四种方式查看,如下图描述。在虚拟现实场景视图中,可以按任意角度、任意方向转动,这样就能很清楚看到6个块的组装方式和相对位置了。转动时,用鼠标点住图的中心然后往某个方向拖动,即可使3D立体图形往这个方向转动。如果图形发生轴向倾斜,则可用鼠标按往某处不放然后按顺时针或逆时针画圈,则可便图形按反向沿轴向转动。
右下区域提供了主要的操作界面和信息。具体描述如下图:


一般可通过显示或隐藏某几块,配合旋转拖动图形来查看装配锁的内部构造情况。
除了手工输入6块形状的配置外,还可以直接从IBM Research网站上的链接直接调用,该网站关于孔明锁的研究中提供大量设计好的“方案”,只需点出链接即可调用此程序,并且调用时其6块形状均已设置好,且很快就计算出了装配拆解方案。 
  
经典鲁班锁共有二个解,等级都是1。关于解的等级,在后续理论分析中再提及。下图提供了一个高等级的方案,由于解的数量较多,JAVA程序也运算了好一会儿(大概几秒)才得到解答,解共有66种,且拆解难度高达6级,如下图(有兴趣的话,可随意录入些方案,让电脑计算):


上述材料可以确保某个鲁班锁能找到一种装配或拆解的方案(或干脆就无解),如果设计制作一个新颖的鲁班锁,则可先在程序上模拟,OK后再生产,不过对木条的加工不是一件简单的事,除非你是木匠。
如果要深入研究鲁班锁及其计算机分析,那就需要对“IBM研究six-piece burr”有所了解,且还得了解此类计算机研究的骨灰级专家:比尔卡特。我将通过几篇文章详细介绍西方的研究成果。东方的不讲也罢,没什么深入研究的材料可找。

收藏 邀请
鲜花
鲜花
握手
握手
雷人
雷人
路过
路过
鸡蛋
鸡蛋
已有 0 人参与

会员评论

相关分类

返回顶部