魔方吧·中文魔方俱乐部

标题: 九连环中的数学 [打印本页]

作者: 聚元号    时间: 2015-9-26 12:23:29     标题: 九连环中的数学

a1.jpg

附件: a1.jpg (2015-9-26 12:23:14, 74.29 KB) / 下载次数 23
http://www.mf8-china.com/forum.php?mod=attachment&aid=MjU0Mzc2fDhlYjA3NGFhfDE3MTQ3OTk5OTl8MHww
作者: 聚元号    时间: 2015-9-26 12:25:27

本帖最后由 聚元号 于 2015-9-26 12:27 编辑

九九连环1.jpg

附件: 九九连环1.jpg (2015-9-26 12:27:42, 87.25 KB) / 下载次数 29
http://www.mf8-china.com/forum.php?mod=attachment&aid=MjU0Mzc3fDg2ZTBjMjI2fDE3MTQ3OTk5OTl8MHww
作者: 聚元号    时间: 2015-9-26 12:29:34

九连环1.jpg

附件: 九连环1.jpg (2015-9-26 12:29:23, 38.46 KB) / 下载次数 27
http://www.mf8-china.com/forum.php?mod=attachment&aid=MjU0Mzc4fGNlODcyMzA3fDE3MTQ3OTk5OTl8MHww
作者: 聚元号    时间: 2015-9-26 12:35:59

九连环中的数学本来答应各位网友在半个月前发表的,但开学后学业繁忙,没抽时间做。我向你们道歉。
作者: 折翼蚂蝗    时间: 2015-9-26 12:49:12

数列
作者: 聚元号    时间: 2015-9-26 13:05:25

没错,推导过程中运用了递归法。
作者: hubo5563    时间: 2015-9-27 17:33:19

本帖最后由 hubo5563 于 2015-9-27 18:13 编辑

九连环实际上是格雷码计数器
       假定环在杠上为1,在杠下为0,每个九连环状态对应一个二进制数,实际上是对应一个格雷码数。
解九连环的过程,就是格雷码计数过程,全部上环过程相当格雷码加一计数过程,全部下环过程相当格雷码减一计数过程。
      任意一个状态,先将环状态写下,就是格雷码,然后把它转换为二进制,再转换为十进制数,就是上环需要的次数。
      例如   111111111   全部上在杠上,换为二进制数是:101010101,再化成十进制就是:1+4+16+64+256=341
      所以,九连环全部上到杠上需要341次操作。
      例如   100000000   就是最后为1,其它为0,转换为二进制数就是:111111111   再化为十进制数为   511
      所以,九连环最后一个在杠上其它环在杠下的状态,需要511次操作。
     任意一个状态,都能计算出它的序号。
     例如:011000101   转为二进制数是010000110   化成十进制为:2+4+128=134  就是说这个状态需要134次操作。

               
           
作者: 至尊达哥    时间: 2015-9-27 18:39:50

其实和汉诺塔游戏的原理很接近,具体的游戏规则可以百度一下,与之有关的还有汉诺塔的传说。
话说我第一次解九连环时是联想到汉诺塔游戏而破解的~~~
作者: 忘记    时间: 2015-9-28 00:24:44

至尊达哥 发表于 2015-9-27 18:39
其实和汉诺塔游戏的原理很接近,具体的游戏规则可以百度一下,与之有关的还有汉诺塔的传说。
话说我第 ...

你这个破解过程,反过来,也成立。
作者: xwfh2000    时间: 2015-9-28 10:08:58

hubo5563 发表于 2015-9-27 17:33
九连环实际上是格雷码计数器
       假定环在杠上为1,在杠下为0,每个九连环状态对应一个二进制数,实际上 ...

胡老师一语中的!格雷码与自然二进制的转换也非常简单,如此只要看到九连环的任意一个状态,就能很方便计算出最少解出步数。妙!
作者: 黑白子    时间: 2015-9-29 08:23:01

真是奇妙,我第一次解九连环用了2个多小时,最快时6分钟。
作者: 聚元号    时间: 2015-9-30 21:30:44

hubo5563 发表于 2015-9-27 17:33
九连环实际上是格雷码计数器
       假定环在杠上为1,在杠下为0,每个九连环状态对应一个二进制数,实际上 ...

你的计算结果是正确的,请问你是怎么想到用二进制来计算的?
作者: 聚元号    时间: 2015-9-30 21:35:10

hubo5563 发表于 2015-9-27 17:33
九连环实际上是格雷码计数器
       假定环在杠上为1,在杠下为0,每个九连环状态对应一个二进制数,实际上 ...

九连环的一、二环可以同时解套,256步可以解脱。为何要341步?二阶连环如图,根据所得公式可计算得B6=134,即这件作品的解套步数为134步。你的计算十分准确。
作者: 乌木    时间: 2015-9-30 22:05:01

本帖最后由 乌木 于 2015-10-1 08:34 编辑
聚元号 发表于 2015-9-30 21:35
九连环的一、二环可以同时解套,256步可以解脱。为何要341步?二阶连环如图,根据所得公式可计算得B6=134 ...


虽然一、二环可以同时解套,计算状态数时,应该统计为两个态,每一态与其前后态之间都是仅变化一个环。胡老师的步数的含义在此,你的说法也可以,只是含义不同。
从000 000 000 态到111 111 111态,共有342个态,步数就是341步。
其中一、二环一起上和一起下的“两步并作一步走”的动作算作一步的话,共有85个这种步子,就统计为(341-85=)256步了。
变化过程的实质是一样的。
作者: 乌木    时间: 2015-10-1 12:02:26

本帖最后由 乌木 于 2015-10-1 18:39 编辑

至于7楼胡老师说到格雷码(即九连环的状态代码)转换为相应的二进制数,方法如下:
从右向左一位一位数字依次查看,某一位数字的左方的所有数字之和是偶数的话,该位数字不变;是奇数的话,该位数字改变一下(1变为0;0变为1)。
比如,九连环的状态为110 010 010(右端为第一环,在套子下,等等),这个状态代码就是格雷码,按照上面的变换规则,其对应的二进制数就是 100 011 100,转换为十进制数为 4+8+16+256=284,也就是九连环从状态000 000 000走284步后就得到状态 110 010 010。
作者: 聚元号    时间: 2015-10-2 10:39:06

牛牛牛
作者: 聚元号    时间: 2015-10-2 10:40:49

乌木 发表于 2015-10-1 12:02
至于7楼胡老师说到格雷码(即九连环的状态代码)转换为相应的二进制数,方法如下:
从右向左一位一位数字依 ...

牛牛牛
作者: 乌木    时间: 2015-10-2 11:42:27

本帖最后由 乌木 于 2015-10-2 12:23 编辑

顺便说一下,二进制数转换为格雷码方法:

对一个二进制数从右向左一位一位数字依次查看,
某一位数字的左面一位数字为1的话,该位数字改一下(1改为0;0改为1);
某一位数字的左面一位数字为0的话,该位数字不变,
最左面的数字不变。

例如,二进制数
001 100 100 ,  按照上面规则,相应的格雷码就是
001 010 110 。

作者: 聚元号    时间: 2015-10-2 22:56:14

本帖最后由 聚元号 于 2015-10-2 22:58 编辑

用数列或二进制计算哪个更好?
作者: 聚元号    时间: 2015-10-2 22:59:01

乌木 发表于 2015-10-2 11:42
顺便说一下,二进制数转换为格雷码方法:

对一个二进制数从右向左一位一位数字依次查看,

用数列或二进制计算哪个更好?
作者: 乌木    时间: 2015-10-3 07:09:30

我没有深入琢磨过,不知道哪个更好。
似乎用连环状态数列公式计算出来的、十进制的一列数,比如三连环的8个状态数列0、1、3、2、6、7、5、4,很明显是个摆动数列,但是不能直观地看出三连环的状态变化。
如果用二进制数处理,得到一列格雷码 000、001、011、010、110、111、101、100,可以直接体现状态变化,却不易看出摆动性,尤其是环数增加后,状态变化仍很直观,摆动情况不直观。
看来不同目的,各有优点,而两种方法转换较容易,区别不大吧?
作者: 至尊达哥    时间: 2015-10-3 15:56:22

贴吧里曾有人做过33连环,有人说“你一辈子也解不完的,只有世世代代地去解。”
如果有兴趣,各位可以算算解33连环的步骤及所需时间。




欢迎光临 魔方吧·中文魔方俱乐部 (http://www.mf8-china.com/) Powered by Discuz! X2