魔方吧·中文魔方俱乐部

 找回密码
 注册
搜索
热搜: 魔方
查看: 32223|回复: 45
打印 上一主题 下一主题

【中国特色,世界首创】鲁班锁用柱《珍酉健编码法》(钟七珍、李遵酉、施康健合作编制 [复制链接]

Rank: 7Rank: 7Rank: 7

积分
3021
帖子
2406
精华
14
UID
12269
性别

智力游戏设计大师 八年元老

跳转到指定楼层
1#
发表于 2014-8-24 10:58:47 |只看该作者 |倒序浏览
本帖最后由 钟七珍 于 2014-8-25 13:42 编辑

  发端:
  一、李遵酉老师2014-8-16 07:46:56 在本版块发帖:《对称柱形的编码》(http://bbs.mf8-china.com/forum.p ... &extra=page%3D1),率先采用二进制在柱子横断面编码的方法;


  二、我在帖子19楼、20楼《鲁班锁的研究(之三):柱子编码及代号》(http://bbs.mf8-china.com/forum.p ... page%3D1&page=2)介绍了用字母表示数字的十六进制表示方法;
  三、施康健(海上晴天吧友)在帖子33楼:《鲁班锁的研究(之三):柱子编码及代号》(http://bbs.mf8-china.com/forum.p ... page%3D1&page=4)率先采用十六进制法对鲁班锁用柱作横断面编码,及完整代号;

  
  四、李遵酉老师提出,要建立一套有“中国特色”的鲁班锁用柱编码方法:
  五、我借鉴了石野恵一郎的柱子缺口编码记数方法,提出用缺口记数的构思;
  于是,钟七珍、李遵酉、施康健三位志同道合的锁友合作,编制出了这一套《柱型断面缺口记数编码方法》,简称《珍酉健编码法》。

  下面,具体介绍这一套世界首创、具有中国特色的《珍酉健编码法》。以三阶类柱为例,请见下图:
珍酉健编码法.png

  图中,用数字“1、2、4、8”表示柱子断面上四个区域的数值。图中的汉字“一、二、三、四、五、六”表示柱子不同横断面,也是柱子的代号数位,用十六进制表示,即:0、1、2、3、4、5、6、7、8、9、A(10)、B(11)、C(12)、D(13)、E(14)、F(15)。
  柱子开槽时,留存的块记数为0,挖去的块,则按二进制记数为1。这个记数方法是借鉴了石野恵一郎的编码记数方法,也是与诸位吧友讨论编码方法的最大不同之处!
  同一断面上的缺口数值相加,即为柱子在这一横断面的十六位进制数值。
  用我们三人合作创作的这个方法,不用开槽加工的光柱,代号为:000000,简记为0。
  这个编码方法可以通用于一阶、二阶、三阶、四阶、五阶……类柱型,甚至可扩展用于加半阶类柱型。
  以四阶为例,不用加工的光柱,则记数为00000000,仍然是0!用此缺口记数的方法,光柱在不同阶柱型的代号始终为0!
  下面再举几个用《柱型断面缺口记数编码方法》编写的柱子:
钟七珍编码举例.png

  这个《柱型断面缺口记数编码方法》,看似与吧友讨论中,用留存块记数的编码方法,似乎实质相同,并无多大区别。其实,以缺口记数,有很多优点。上面提到的光柱在各阶中代号不变,都为0,即是一大优点。还有更多优点,容我慢慢道来。
已有 1 人评分经验 收起 理由
海上晴天 + 3 原创内容

总评分: 经验 + 3   查看全部评分

鲁班锁吧http://tieba.baidu.com/f?kw=%C2%B3%B0%E0%CB%F8

Rank: 7Rank: 7Rank: 7

积分
3021
帖子
2406
精华
14
UID
12269
性别

智力游戏设计大师 八年元老

2#
发表于 2014-8-24 11:41:15 |只看该作者
本帖最后由 钟七珍 于 2014-8-24 11:54 编辑

  《柱型断面缺口记数编码方法》优点:
  一、用断面位置表示代号的位置,代号编码几乎不用计算。一个代码,就表示了柱子在这一横断面的缺口状态。这个方法比我在之前介绍的石野恵一郎的编码方法容易记忆,容易计算,也更容易理解。这个优点是众位吧友讨论的一个总结,最主要是受到李遵酉老师提到的“中国特色”的启示!
  二、不管柱子阶数是多少(开槽缺口长度),不用加工的光柱,代号始终为0。
  三,在创作、构思、制作、分析鲁班锁的过程中,我们通常使用到的柱型,绝大部分是通条柱(柱子断面上的四个部分,总有一个区域在柱子长度方向是实体贯通的)。而用此法表示通条柱,则在十六进制代号中,就只会出现0-7这八个数字,后而需要用到英文字母的八个数字就不会出现,也为我们平常书写代码带来了一些方便。而对于出现非通条柱,用此法又能完全胜任。
  四、通常,任意一个柱型,由于摆放的位置的不同,往往可能会有八个代号。同一柱子有八个不同的号,这八个代号如何取舍?对用留存实块记数的编码方法往往是任意取舍,很难有一个通行的标准(在众位吧友的讨论之中,基本上没有涉及到这个问题)。而在《柱型断面缺口记数编码方法》中,则借鉴石野恵一郎“编号就小”的原则,选用编号最小的那一个号,作为柱子的代号。
  五、柱子编号时,通常是开有缺口的部分尽量放置于上边、前边、右端,把留存的实体部分尽量放置于下边、后边、左端。以这个摆放位置编出来的代号,必然是八个可能的代号中最小值的代号:反之,在八个可能的代号中最小值的代号,柱子位置的状态,必然是开有缺口的部分都是放置于上边、前边、右端,留存的实体部分必然是放置于下边、后边、左端。而用实体块记数的编码方法,编出来的代号,无法确定它在八个可能的代号中究竟是哪一个?

使用道具 举报

Rank: 5Rank: 5

积分
3296
帖子
2594
精华
6
UID
1251574
性别
保密

智力游戏设计大师 四年元老

3#
发表于 2014-8-24 22:40:47 |只看该作者
这是发生讨论的楼主帖子链接http://bbs.mf8-china.com/forum.p ... p;extra=&page=1

使用道具 举报

Rank: 7Rank: 7Rank: 7

积分
3021
帖子
2406
精华
14
UID
12269
性别

智力游戏设计大师 八年元老

4#
发表于 2014-8-29 14:24:58 |只看该作者
  一套完整的编码方案,不仅需要有一个记数方法,而且需要制定一套代号编码规则,以规范、统一柱子代号,以适应各类柱型及不同情况,以扩展这套方案的适用范围。

     鲁班锁用柱《珍酉健编码法》编码规则

   规则一:柱子在编码系统中位置摆放原则。
  参见编码系统图:
  1、在编码系统中,柱子开槽、有缺口部分优先放置于右端,而把未开槽的实体部分靠近左端。
  2、柱子有缺口的横断面,缺口部分向上、向前,实体部分靠下、靠后。若不同横断面在此条有冲突时,优先满足左端第一个缺口,其次满足左端第二个缺口,再次满足左端第三个缺口,……,余类推。

   规则二:缺口记数原则。
  根据二分法,柱子横断面上有四个区域,按二进制在编码系统中赋于不同的值。在《珍酉健编码法》中,用缺口记数的方法,柱子在这个楼面的代码,用这四个区域中去掉的块记值相加,并用十六进制数表示。
  十六进制每一位均有16个值,即:0、1、2、3、4、5、6、7、8、9、A(10)、B(11)、C(12)、D(13)、E(14)、F(15)。在十六进制中,ABCDEF并不只是简单的六个字母,而是代表大于9的六个数值。它们分别是:A=10、B=11、C=12、D=13、E=14、F=15。

  待续。
鲁班锁吧http://tieba.baidu.com/f?kw=%C2%B3%B0%E0%CB%F8

使用道具 举报

Rank: 7Rank: 7Rank: 7

积分
3021
帖子
2406
精华
14
UID
12269
性别

智力游戏设计大师 八年元老

5#
发表于 2014-8-31 00:51:08 |只看该作者

    规则三:柱子代号两端等量去0原则。
  我们举一个具体例子,用我创作的《神奇多变的十三柱鲁班锁》为例。十三根柱子形状如下图,已经按第一条规则在编号系统中摆好位置,并按第二条规则(留块计0,缺口记数),编好柱子在六个横断面上的代号:
神奇多变的十三柱鲁班锁柱子代号图1.png

  如果在代号的两端都出现了0,那说明这根柱子不是三阶类柱型,可以在代号的两端去除相同数量的0。等量去0之后,各柱的代号见下图。从下图中可以看出:303BB3号、357753号、377773号这三根柱子属于三阶类柱型;0BB3号、1BBB号、3553号、3773号这四根柱子属于二阶类柱型;33号柱属于一阶类柱型;而不开槽的光柱0号柱则不归属于哪一阶,各阶通吃!注意:柱子代号两端等量去0之后,有效数字前面出现的0不能去掉!

神奇多变的十三柱鲁班锁柱子代号图2.png
鲁班锁吧http://tieba.baidu.com/f?kw=%C2%B3%B0%E0%CB%F8

使用道具 举报

Rank: 7Rank: 7Rank: 7

积分
3021
帖子
2406
精华
14
UID
12269
性别

智力游戏设计大师 八年元老

6#
发表于 2014-9-1 11:24:02 |只看该作者
  首次应用《珍酉健编码法》为具体的鲁班锁用柱编码的,是海上晴天吧友(施康健)。他把自己创作的《七型十九柱》(http://bbs.mf8-china.com/forum.p ... age%3D1&page=11)作了编码:


  海上晴天还把他和李遵酉老师合作创作的《四阶12形28柱》(http://bbs.mf8-china.com/forum.p ... page%3D1&page=2)作了编码:


  我在上面举例时,为《神奇多变的十三柱鲁班锁》(http://bbs.mf8-china.com/forum.php?mod=viewthread&tid=78245)的用柱进行编码,则是第二位将《珍酉健编码法》应用于具体鲁班锁的用柱柱型。
鲁班锁吧http://tieba.baidu.com/f?kw=%C2%B3%B0%E0%CB%F8

使用道具 举报

Rank: 7Rank: 7Rank: 7

积分
3021
帖子
2406
精华
14
UID
12269
性别

智力游戏设计大师 八年元老

7#
发表于 2014-9-1 12:14:15 |只看该作者
     规则四:最小编码原则。
  一般来说,一根柱子在编码系统中,有八个可以摆放的方位。下面以303BB3号柱为例,它有八种可以摆放的位置,于是就可以得到八个编码。见下图:
钟七珍编码一柱八号举例.png

  同一个柱子,却出现了八个号码,我们该怎样取舍呢?这就要用到规则四:最小编码原则,或称代号就小原则。选用最小值的那个编码,作为这根柱子的代号,它就是303BB3号。
  规则四与规则一本质是相同的,也是等效的,但含义却不同。

  这四条编码规则,是《珍酉健编码法》的四项基本原则。另有四条补充规则,待续。
鲁班锁吧http://tieba.baidu.com/f?kw=%C2%B3%B0%E0%CB%F8

使用道具 举报

Rank: 7Rank: 7Rank: 7

积分
3021
帖子
2406
精华
14
UID
12269
性别

智力游戏设计大师 八年元老

8#
发表于 2014-9-1 12:57:18 |只看该作者
  再举一例,并纠正规则三中编码中出现的错误。以《神奇多变的十三柱鲁班锁》中二阶柱0775号(前帖误算成0BB3kgn)柱为例。
  这根柱子在编码系统中,有八种可以摆放的位置,于是就可以得到八个编码。见下图:
钟七珍编码一柱八号举例2.png

  应用规则四,选用最小值的那个编码,作为这根柱子的代号,它就是0775号。规则三举例中,把这根柱子的代号错算成0BB3号,不符合规则一和规则四,更正。
  从这个例子中可以得出一个结论:在柱子代号的两端去除相同数量的0之后,有效数字的后面不应该出现0。如果在有效数字的后面出现了0,那说明它不是最小编码!
鲁班锁吧http://tieba.baidu.com/f?kw=%C2%B3%B0%E0%CB%F8

使用道具 举报

Rank: 2

积分
419
帖子
155
精华
0
UID
13084
性别

六年元老

9#
发表于 2014-9-1 14:53:31 |只看该作者
惯用编码,没有必要等于最小编码

如果为了使用最小编码,如:

那么,只能用“难看”来形容了。

所以不必纠结某编码是不是最小编码。

使用道具 举报

Rank: 7Rank: 7Rank: 7

积分
3021
帖子
2406
精华
14
UID
12269
性别

智力游戏设计大师 八年元老

10#
发表于 2014-9-1 15:13:50 |只看该作者
  如果不用最小编码作柱子代号,当然也可以。问题的关键是:一根柱子可以有八个编码;选用哪一个作为它的代号呢?换句话说,选用代号的规则或原则是什么呢?总不能看着它顺眼就选用吧?
  这个问题我们是反复考虑过的。一条规则,要适应于各种不同的柱子形状,有些情况很可能你没有想到。

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

Archiver|手机版|魔方吧·中文魔方俱乐部

GMT+8, 2024-11-23 20:17

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部