魔方吧·中文魔方俱乐部

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

最少步的角块色向判断法 [复制链接]

Rank: 2

积分
273
帖子
224
精华
0
UID
40201
性别
保密
跳转到指定楼层
1#
发表于 2008-8-24 17:59:57 |只看该作者 |正序浏览
要判断N阶魔方角块方向,盲拧编码法为我们提供了基本依据。但是,盲拧编码法需要确定3个面的坐标,确定高中低级面。这样,同一个魔方在不同的参照系下将会有不同的编码结果,也就有不同的解法。当然,其中会有一些简单些,有些复杂些。对于最少步的判断,这一区别是关键性的。所以,本文旨在提出一种不同的方法,确保能使结果与参照系无关。<br><br>首先,我们要明白的一点是,魔方的每个角块其实可以处于6种不同的方向状态,而不是3种。但是,在每一个特定的位置,确实只能处于其中的3种。这是因为8个角块可以被分成2组,组内的块必须通过偶数次转动90度才能达到, 而要移到别的组则需要奇数次。这两个组各有4块,通过各面的对角线分别构成一个正四面体。如果我们每次都转动180度,那么两个组的块就不能互换。如果我们观察特定的角块,可以把它所在的块组称为偶组,另一个组叫奇组。<br><br>其次,让我们看看偶组和奇组的方向状态有何不同。如果你对盲拧编码很熟练,不难观察到:<br><br>如果一个块的原始位置在偶组上,那么它的编码在各种高中低面选择下要么都为0,要么都不是0。下面简称这种块为偶块。<br>如果一个块的原始位置在奇组上,那么它的编码在不同参照选择下可以有各种不同的值,且总有一些参照选择能让它为0,另一些则不。这种块就是奇块。<br><br>对于偶块,我们在对角轴向外的方向观察,则它要么顺时针转120度(用+表示),要么逆时针转120度(用-表示),要么就已经在正确位置。这里我们采用类似盲拧的方法,把相对面的颜色看作相同。<br><br>对于奇块,我用xyz进行编码。如果X向(LR)选为高级面它的编码为0,它的状态为x,余类推。<br><br>好了,编码完成之后,我们要组织复原策略了。对于偶块,它们的状态不会变化,可不加以考虑。而容易证明奇块的数目总会是偶数且总是两个组各占一半,因此我们把奇块成对进行考虑。且总是一个在奇组,一个在偶组。<br><br>这两个成对的角块要么编码相同,要么不同。要是相同,它们可以消去。因此,我们只需要考虑它们不同的情形,这可以用实例说明。<br>首先考虑3阶公式F D' L2 B D' B R2 D B2 L2 D F' U(希望谁能帮我做个JAVA),这个公式把2个角块(ULF和URF)调换,把一个角块(DLF)翻转。它们都在同一个面上。因为单单调换一对角块是做不到的,这个公式会把一对边块(UF和DF)调换以达成平衡。按照我的编码,它们的状态分别表示为<br><br>ULF:x<br>URF:y<br>DLF:+<br><br>这里的DLF是跟URF同组的。这个公式说明xy的组合相当于y所在组上一个-。<br>现在考虑另一个公式R U L' U' L U' L' R U' L U R2 F2,它和以上公式的结果非常相像,但它翻转了DRF而非DLF。这时候它们的状态是<br><br>ULF:x<br>
URF:y<br>
DRF:-<br><br>xy组合的结果现在相当于x所在组上的一个+。看到没有?只要把结果所在的组改变,结果就从-变成了+。<br><br>下面可以列出一个表了,大家可以自行验证一下。<br><br>节点1 节点2 节点1所在组 节点2所在组<br>x&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; y&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -<br>y&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; z &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -<br>
z &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; y &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; + &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -<br><br>以上很有规律:按照xyz的循环顺序,结果组对应的节点状态排在前面就是正的,在后面就是负的。现在我们可以推算角块复原的方法了。<br><br>按照以上方案组织一个证明应该不难。基本上就是应用魔方归纳法:证明如果任何一个状态按照以上方案算出的正号数量等于负号数量,那么从它进行一次基本动作之后也一样。<br>

[ 本帖最后由 earthengine 于 2008-8-24 20:29 编辑 ]

Rank: 2

积分
273
帖子
224
精华
0
UID
40201
性别
保密
29#
发表于 2008-9-13 21:30:44 |只看该作者
原帖由 <i>ggglgq</i> 于 2008-9-13 15:29 发表 <a href="http://bbs.mf8-china.com/redirect.php?goto=findpost&amp;pid=238080&amp;ptid=13002" target="_blank"><img src="http://bbs.mf8-china.com/images/common/back.gif" alt="" border="0"></a>
&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp; 呵呵,看了半天,earthengine 好象是指“最少步骤的角块色向判断法”呀!&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp; 这些天也不见 earthengine 在 ☆ 最 ...
<br>你说得对。用于最小步的色向判断必定要跟盲拧有所区别,因为盲拧编码重点在于方便记忆,所以必须简明。而用在最小步研究的时候,这个编码方法应该不要依赖于什么高中低级面的选定才好,因为不同的选定方式将有不同的编码,带来的结果是有不同的复原方法。这样其中有些步骤可能少些有些多些。<br>

使用道具 举报

Rank: 8Rank: 8

积分
4787
帖子
1876
精华
12
UID
93
性别

魔方理论探索者 十年元老

28#
发表于 2008-9-13 15:29:01 |只看该作者
&nbsp; <BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp; <BR>&nbsp; <BR>&nbsp;&nbsp;&nbsp; 呵呵,看了半天,earthengine 好象是指“最少步骤的角块色向判断法”呀!<BR>&nbsp; <BR>&nbsp; <BR>&nbsp; <BR>&nbsp;&nbsp;&nbsp; 这些天也不见 earthengine 在 ☆ 最少步还原问题 ☆ 更新完善您的理论,<BR>&nbsp; <BR>很是想念呀! 呵呵!<BR>&nbsp; <BR>&nbsp; <BR>&nbsp; <BR>&nbsp; <BR>&nbsp;
~~ 宇宙在旋转运动 ~~ 魔方在循环变换 ~~

使用道具 举报

Rank: 8Rank: 8

积分
18020
帖子
16459
精华
9
UID
449
性别

魔方理论探索者 论坛建设奖 爱心大使 十年元老

27#
发表于 2008-8-26 20:41:35 |只看该作者

回复 26# 的帖子

谢谢,那帖子我看过,吓退了。说实话,这类话题以及你的话题,我目前还啃不动。期待着你们能有些副产品惠及普通玩法就好了。或者直接给我们一些应用之类的结果也好,要问原理者再看有关文章。偷懒了,只想坐享现成。

[ 本帖最后由 乌木 于 2008-8-26 22:20 编辑 ]

使用道具 举报

Rank: 2

积分
273
帖子
224
精华
0
UID
40201
性别
保密
26#
发表于 2008-8-26 19:05:47 |只看该作者
乌木先生可以参考http://bbs.mf8-china.com/viewthr ... &extra=page%3D1
我当初是因为研究这个方法的改进,而找到这里来的。其中一个大难点就是状态2到3的转换中,角块如何辨认位置正确。

使用道具 举报

Rank: 2

积分
273
帖子
224
精华
0
UID
40201
性别
保密
25#
发表于 2008-8-26 17:42:09 |只看该作者
原帖由 <i>乌木</i> 于 2008-8-26 11:53 发表 <a href="http://bbs.mf8-china.com/redirect.php?goto=findpost&amp;pid=223899&amp;ptid=13002" target="_blank"><img src="http://bbs.mf8-china.com/images/common/back.gif" alt="" border="0"></a>
如何理解22楼你这6类角块的编码法我还要继续看1楼的文字。现在有个感觉:有一种盲拧法是色向问题和位置问题分开处理的,而你这是同时解决,是吗?而且,从你1楼的话来看,此文是用于最少步复原法的?(真是的话,我是 ...
<br>这不算同时解决,但是解决后可以单靠180度转还原。此法当然不限于最少步,对于其它很多问题的研究也很有帮助。我正在准备把你那个2阶三轮换的帖子中所有例子用此法编码,说明其中的异同。<br><br>此外,主楼我漏了一点没有提及,就是对于不在同一组的块,只要编码相同,它们就可以消去,哪怕它们都没有移动到别组。这样,两个+如果不在同一组是可以消掉的,两个-也一样。但是同一组的块只能消掉符号相反的,也就是说把一个组解决后另一个组必须正号和负号相等,才算平衡状态。<br>

[ 本帖最后由 earthengine 于 2008-8-26 19:07 编辑 ]

使用道具 举报

Rank: 8Rank: 8

积分
18020
帖子
16459
精华
9
UID
449
性别

魔方理论探索者 论坛建设奖 爱心大使 十年元老

24#
发表于 2008-8-26 11:53:09 |只看该作者
<P>如何理解22楼你这6类角块的编码法我还要继续看1楼的文字。现在有个感觉:有一种盲拧法是色向问题和位置问题分开处理的,而你这是同时解决,是吗?而且,从你1楼的话来看,此文是用于最少步复原法的?(真是的话,我是蛮怕这种高级复原法啊。)</P>
<P>&nbsp;</P>
<P>还有,22楼中你说的两个“-”是要求逆转120°,另两个“-”却是要顺转。“+”也有类似问题,是否有笔误?</P>

[ 本帖最后由 乌木 于 2008-8-26 16:32 编辑 ]

使用道具 举报

Rank: 2

积分
273
帖子
224
精华
0
UID
40201
性别
保密
23#
发表于 2008-8-26 11:37:49 |只看该作者
原帖由 <i>乌木</i> 于 2008-8-26 10:16 发表 <a href="http://bbs.mf8-china.com/redirect.php?goto=findpost&amp;pid=223818&amp;ptid=13002" target="_blank"><img src="http://bbs.mf8-china.com/images/common/back.gif" alt="" border="0"></a>
1楼的还没懂,还得继续看。好像文章有的地方你是让参照物围着考查对象转的,对吗?这对我来说很搅脑子。
&nbsp;
此外,你说(关于)“判断N阶魔方角块方向”要“提出一种不同的方法,确保能使结果与参照系无关”, ...
<br>我说的“无关”含义是:无论如何选择参照系,对错位角块的判断都一致。不会出现象盲拧编码那样,在某些参照系下为0(不需要动)的块在别的参照系下可能不是0。此外,还有一个含义是无论如何选择参照系,任何90度旋转都会改变状态,而不是象盲拧编码那样,在高级面的转动是不改变角块方向状态的。<br>

使用道具 举报

Rank: 2

积分
273
帖子
224
精华
0
UID
40201
性别
保密
22#
发表于 2008-8-26 11:22:40 |只看该作者
原帖由 <i>乌木</i> 于 2008-8-26 10:55 发表 <a href="http://bbs.mf8-china.com/redirect.php?goto=findpost&amp;pid=223836&amp;ptid=13002" target="_blank"><img src="http://bbs.mf8-china.com/images/common/back.gif" alt="" border="0"></a>
你在看一个指定的角块时,说它有6种方向,那么排除了哪18种方向,或留下哪6种方向呢?你不妨具体说说,我弄明白后可试试画个图上来。
<br>我不是排除了若干方向,而是把相似的方向合而为一。方法很简单:把魔方两个对面的颜色看成是一样的,于是在偶组上它总有一个方向能满足各面均与中心块同色。但是在奇组上,它只能有一个面和中心块同色。概括说,我们仅限180度转动的操作看成是保持方向不变的,于是只要确定了组,组内的位置可以忽略,于是4种可能的朝向合而为一,最终就得到24/4=6种状态。<br>
<br>你这里24种不同的状态的编码如下:<br>第一行 0 - + z x y<br>第二行 0 - + z x y<br>第三行 z x y 0 - +<br>第四行 z x y 0 - +<br>
<br>(之前三四行正负号写错,谢谢乌木指正)<br>其实判断很简单:如果红色在上面或下面,就是z,黄色在前面或者后面,就是x,蓝色在左面或者右面,就是y。如果同时有两个以上符合,那就是0。一个都不符合,看怎么样能转成0。如果把x面(黄色)转到了y向(左面或者右面),那就是+,否则就是-。<br>

[ 本帖最后由 earthengine 于 2008-8-26 17:36 编辑 ]

使用道具 举报

Rank: 8Rank: 8

积分
18020
帖子
16459
精华
9
UID
449
性别

魔方理论探索者 论坛建设奖 爱心大使 十年元老

21#
发表于 2008-8-26 10:55:04 |只看该作者

回复 14# 的帖子

<P>你在看一个指定的角块时,说它有6种方向,那么排除了哪18种方向,或留下哪6种方向呢?你不妨具体说说,我弄明白后可试试画个图上来。</P>
<P>-------------------</P>
<P>或者贴个下图(略去别的块,只留下8个角块,设第一个为复原态)供你取舍,你不妨标记一下,哪6种取,哪18种舍:</P>
<P>&nbsp;</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 一个角块的24种方向.GIF </P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </P>

[ 本帖最后由 乌木 于 2008-8-26 11:32 编辑 ]

使用道具 举报

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

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

GMT+8, 2024-5-5 01:09

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部