邱志红 发表于 2005-12-24 17:05:43

[原创]我对魔方状态的思考——交换状态

<P>                                            <FONT size=4>我对魔方状态的思考</FONT><BR>                                                                                                ——交换状态</P>
<P>    该思考源于对魔方变换过程的思考,而非对魔方始末状态的思考。<BR>    看一个例子吧.</P>
<applet code="RubikPlayer.class" codebase=3 width="300" height="300">
  <param name="scrptLanguage" value="SupersetENG">
  <param name="stickersFront" value="0,4,0,0,0,0,0,0,0">
  <param name="stickersRight" value="1,0,1,1,1,1,1,1,1">
  <param name="stickersLeft" value="4,1,4,4,4,4,4,4,4">
</applet><applet code="RubikPlayer.class" codebase=3 width="300" height="300">
  <param name="scrptLanguage" value="SupersetENG">
  <param name="stickersRight" value="1,1,1,2,1,1,1,1,1">
  <param name="stickersDown" value="2,5,2,2,2,2,2,2,2">
  <param name="stickersUp" value="5,5,5,5,5,5,5,1,5">
</applet><P>   这两个状态的复原需要的步骤一样吗?当然是一样的,都是棱块的顺时针三交换嘛,用顺时针三交换公式即可,只是施加的方位不一样而已,这可以通过整体旋转魔方来解决。<BR>   这个简单的道理大家其实都明白,也经常有意无意地使用到它。其实大家看重的东西其实还是需要怎么交换,如何交换,而不是魔方实际状态。魔方实际状态只是用来辅助判断到底要怎么交换。<BR>   上面的例子简单,大家一眼就可以判断出来。下面来一个复杂的</P>
<applet code="RubikPlayer.class" codebase=3 width="300" height="300">
  <param name="scrptLanguage" value="SupersetENG">
  <param name="stickersFront" value="2,4,1,4,0,2,5,0,0">
  <param name="stickersRight" value="2,2,0,0,1,1,4,3,3">
  <param name="stickersDown" value="4,1,5,1,2,5,0,3,2">
  <param name="stickersBack" value="2,1,1,3,3,0,4,2,5">
  <param name="stickersLeft" value="3,5,4,4,4,5,1,5,3">
  <param name="stickersUp" value="5,2,1,0,5,4,0,3,3">
</applet><applet code="RubikPlayer.class" codebase=3 width="300" height="300">
  <param name="scrptLanguage" value="SupersetENG">
  <param name="stickersFront" value="0,4,2,4,0,4,2,0,3">
  <param name="stickersRight" value="0,3,4,3,1,4,5,2,1">
  <param name="stickersDown" value="3,5,4,3,2,1,1,2,0">
  <param name="stickersBack" value="0,5,1,2,3,1,2,3,5">
  <param name="stickersLeft" value="2,2,5,0,4,5,3,1,4">
  <param name="stickersUp" value="3,1,5,0,5,5,1,0,4">
</applet><P>   它们两个的复原步骤也是一样的,魔方的颜色使了障眼法,大家一眼看不出来而已。忽略颜色,关注小块的交换过程,你就能明白这一点。<BR>   从上面的现象,我就抽象出了“交换状态”这一概念。<BR>   交换状态:魔方小块的交换情况。<BR>   这里的交换包括位置和色向的交换。魔方交换状态一样时魔方状态不一定一样。现在我们就来讨论一下交换状态与状态之间的关系。做一个很简单的实验,闭上眼睛打乱一个复原的魔方,经过一定步骤后,魔方被打乱。问魔方有多少种可能的状态?不要简单地答是一种,因为初始的时候,魔方整体的色向是随机的,有24种可能,不同的整体色向通过同样的转动步骤,得到的状态就可能不一样。马上改口答有24种,也是不冷静的。看看最简单的交换状态——一转,它只对应6种状态。所以具体情况还要具体分析。<BR>   依据我的XYZ系统,魔方的状态可以写成一个函数F(X,Y,Z,-X,-Y,-Z)。又由于X,Y,Z,-X,-Y,-Z之间的制约关系(叉积)。该函数可以简化为F(X,Y)。这里的X,Y,Z,-X,-Y,-Z并不是具体的颜色,只是代具体的颜色。<BR>   作一个变换,X’=m,Y’=n。<BR>   m,n∈{ X,Y,Z,-X,-Y,-Z },且m≠±n。<BR>   那么F(X’,Y’)= F(m,n)。<BR>   由简单的排列组合,可以得到F(X’,Y’)就有24种排列组合。最多就可以对应24种状态。又由于魔方状态是小块的相对位置与色向的关系,所以就有可能存在相同的状态。由魔方的对称性,可以得到一种交换状态可能对应24,12,8,6,4,2,1种魔方状态。上面过程中所作变换过程其实就对应实践中的转换贴色,但贴色之间保持相对不变性。</P>
<P>    一般不具对称性的交换状态就都对应24种状态。对应一种状态的交换状态就有“五色棋盘”了,12棱原地翻转。</P>
<applet code="RubikPlayer.class" codebase=3 width="300" height="300">
  <param name="scrptLanguage" value="SupersetENG">
  <param name="stickersFront" value="0,5,0,4,0,1,0,2,0">
  <param name="stickersRight" value="1,5,1,0,1,3,1,2,1">
  <param name="stickersDown" value="2,0,2,4,2,1,2,3,2">
  <param name="stickersBack" value="3,5,3,1,3,4,3,2,3">
  <param name="stickersLeft" value="4,5,4,3,4,0,4,2,4">
  <param name="stickersUp" value="5,3,5,4,5,1,5,0,5">
</applet><P>   它很特殊,不论怎么拿,用同样的步骤都可以复原。和复原态的对称性完全一样。</P>
<P>举例,对应12种状态的交换状态。</P>
<applet code="RubikPlayer.class" codebase=3 width="300" height="300">
  <param name="scrptLanguage" value="SupersetENG">
  <param name="stickersFront" value="0,4,0,0,0,0,0,0,0">
  <param name="stickersRight" value="1,3,1,1,1,1,1,1,1">
  <param name="stickersBack" value="3,1,3,3,3,3,3,3,3">
  <param name="stickersLeft" value="4,0,4,4,4,4,4,4,4">
</applet><P>   只给了一种状态,要大家提炼出交换状态,下同<BR>举例,对应8种状态的交换状态(大小魔方)。</P>
<applet code="RubikPlayer.class" codebase=3 width="300" height="300">
  <param name="scrptLanguage" value="SupersetENG">
  <param name="stickersFront" value="0,5,5,0,5,5,0,0,0">
  <param name="stickersRight" value="0,0,1,0,0,1,1,1,1">
  <param name="stickersDown" value="2,2,2,4,4,2,4,4,2">
  <param name="stickersBack" value="3,3,3,3,2,2,3,2,2">
  <param name="stickersLeft" value="4,4,4,3,3,4,3,3,4">
  <param name="stickersUp" value="5,5,5,5,1,1,5,1,1">
</applet>
<P>   这样来看,魔方复原取决于状态,但更取决于交换状态。由魔方的对称性,我猜测,三阶魔方最远状态很可能是一种极对称的交换状态。“五色棋盘”就是一种极对称的交换状态,它对应的状态就一种,甚至我觉得它就是最远状态。为什么现在21步的状态迟迟没找到,原因可能是:20步就是最远的了。<BR>   也许以后有几个人发现了几个不同的最远状态,但很可能这些状态的交换状态是一样的。这些交换状态一样的状态,我想只能算一种。就像“伤脑筋的12块”一样,对称或旋转得到的都只算一种,看的还是块与块之间的接合状态。<BR>   中心块问题上,最对称的交换状态莫过于六个面心都原地顺时针(逆时针)转动90度了。我预言它极可能就是中心块问题的最远状态了。<BR>   接下来的难题就是计算交换状态有多少种排列组合。由于有重叠状态,状态数除以24肯定是行不通的。我现在也很忙,暂时也没有想出什么好方法。不知各位有何高见?<BR>   最后,对于一般魔方来说,同样也有“交换状态”这一提法,我没有时间研究了。<BR></P>

乌木 发表于 2005-12-24 18:53:17

<P>看了感到蛮有趣,先谈点初步想法。</P>
<P>如果我在发java 图时,固定某套“需执行步法”不变,但让初态</P>
<P>魔方(例如六面复原的、颜色的相互方位已确定的魔方)取向不同,</P>
<P>即配色方法不同。因颜色的相互方位不变,故共有24种取向。那么,</P>
<P>执行那同一个步法以后,一般说来,得到24种“换汤(色)不换药</P>
<P>(花样的特征和规律等等)”的状态。进一步,还要具体状态</P>
<P>具体分析,能简并多少就简并多少。例如,“需执行步法”为“U”</P>
<P>时,24就简并为6。</P>
<P>我对邱兄所说“交换状态”的初步认识对否?</P>

大烟头 发表于 2005-12-24 19:42:57

<P>这是个很好的研究课题。</P>
<P>如果三阶魔方只论“块”的相对位置,那魔方的总状态数又是多少呢?真的很难算出啊!</P>

邱志红 发表于 2005-12-25 18:03:57

<P>回2楼,乌木先生:</P>
<P>你的理解完全正确,其实魔方两个状态之间的转化就是魔方小块交换的过程,两个状态之间的长度就是交换状态的长度。</P>
<P>这就是为什么两个状态之间的转化可等价为复原的原因了。</P>
<P>大家平时讨论的最远状态其实是这里的最远的交换状态,而不是单纯的状态。相对复原态来说,存在一个(或多个)最远状态。但这个最远状态相对自身来说,又是最近状态了,此时的交换状态为不交换。</P>
<P>如果能总结出魔方所有的交换对称性,这个交换状态总数就不难算了。考试再即,无暇去总结了。</P>

ggglgq 发表于 2005-12-26 20:31:29

<P>  <BR>    小邱 猜测可能“三阶魔方最远状态很可能是一种极对称的交换状态”是有道理的。</P>
<P><BR>
<DIV class=quote><B>以下是引用<I>宇宙飞碟</I>在2004-5-28 10:53:08的发言:</B><FONT color=#0033ff size=3>    怎么这两天有关<FONT color=#ff3300>《循环变换》</FONT>的点击数[人气]这么低,为了提高《循环变换》[人气],我又证明了《离初始状态最远的图案》的一个结论:<BR>    [定理] 设:三阶魔方的最长变换的长度为 x ,并设: a1 a2 a3 ...... a(x-1) ax 为其中任意一个长度为 x 的最少步变换,设这个变换为 A ,<BR>    即:  A = a1 a2 a3 ...... a(x-1) ax ,又设 d 为任意一个步长为 1 的变换,<BR>    那么:对于这个最长变换 A 存在一个由 d 开始的长度为 x 的最少步变换 B ,也存在一个由 d 结束的长度为 x 的最少步变换 C ,<BR>          使得:A = B = C 。<BR>   <BR>    感兴趣的网友对我的 [定理] 先发表一些看法或证明,然后我再给出结论吧,我想这样做是不是可能会增加点 [魔方吧] 的人气 及 大家对《循环变换》的关注和理解呢?</FONT></DIV>
<br>
<p>
<P>   <BR>    呵呵,这是“宇宙飞碟”小兄弟的定理的应用。说明 小邱 已经掌握了该定理的<BR>实质内容,用一个比较形象的说法来实践上述定理。祝愿你能找到“最远状态”。</P>
<P>    相关内容请大家参考 烟头 兄弟的 <a href="http://bbs.mf8-china.com/dispbbs.asp?boardID=15&amp;ID=514&amp;star=2&amp;page=1" target="_blank" ><FONT color=#0000ff><STRONG>魔方的最远状态要几步复原</STRONG></FONT></A>。<BR><BR>     Cube Explorer 的作者去年编写的这个软件还停留在一个“魔方状态” 用很多<BR>类似的“交换状态”公式,不过今年他已经在类似的“交换状态”公式上下了很大的<BR>功夫,争取 类似的“交换状态”公式 只用一个“公式”表示。大家可以试试该软件<BR>与 以前版本 在 类似的“交换状态”公式 方面功能的 不同,我就不多介绍了。</P>
<P>    祝愿 小邱 能进一步拓展“宇宙飞碟”小兄弟这个定理的应用范围,在其他异类<BR>魔方中大展宏图。<BR>  </P>

ggglgq 发表于 2005-12-26 20:36:26

<DIV class=quote><B>以下是引用<a href="http://bbs.mf8-china.com/dispbbs.asp?BoardID=2&amp;ID=116&amp;replyID=6097&amp;skin=1" target="_blank" ><FONT color=#0000ff><FONT size=6><I>ggglgq</I>在2005-3-10 8:14:25的发言</FONT></FONT></A>:</B><BR>
<P align=left>        </P>
<P>    我可以断言:  对于 正六面体三阶魔方 仅 旋转侧面( 上、下、左、右、前、后 ) 90 度<BR>算 1 步,正六面体三阶魔方的最远状态为 偶数 步!</P></DIV>
<P>    <BR>    关于我上面的“断言”,我过两天再给出简单的证明。年终的事很多,实在没有时间<BR>老上网,只能让大家下次再看了,望各位魔友理解。<BR>  </P>

circle 发表于 2005-12-29 06:57:58

ggglgq 发表于 2006-6-5 20:05:36

<DIV class=quote><B>以下是引用<I>大烟头</I>在2005-12-24 19:42:57的发言:</B><BR>
<P>这是个很好的研究课题。</P>
<P>如果三阶魔方只论“块”的相对位置,那魔方的总状态数又是多少呢?真的很难算出啊!</P></DIV>
<br>这些帖子的内容及其计算,请大家参考 下面帖子的内容 及其 相关链接 。 <BR><BR>
<DIV class=quote><B>以下是引用<a href="http://bbs.mf8-china.com/dispbbs.asp?BoardID=15&amp;ID=1093&amp;replyID=25322&amp;skin=1" target="_blank" ><FONT color=#0000ff><I>黑王子</I>在2006-5-10 20:27:38</FONT></A>的发言:</B><BR><BR>
<P>本人将G老师的程序运行结果整理以便分析比较:</P>
<P>  <BR>          旋转 180° 按一步计算<BR>=========================================<BR>完成态                  1<BR>第 1 步                 2<BR>第 2 步                 5<BR>第 3 步                19<BR>第 4 步                68<BR>第 5 步               271<BR>第 6 步              1148<BR>第 7 步              4915<BR>第 8 步             18364<BR>第 9 步             39707<BR>第10 步             13225<BR>第11 步                77<BR>第12 步                 0<BR>=========================================<BR>合   计             77802        <BR></P>
<P><BR>          旋转 180° 按两步计算<BR>=========================================<BR>完成态  :              1       <BR>第 1 步                 1       <BR>第 2 步                 3       <BR>第 3 步                 6       <BR>第 4 步                17       <BR>第 5 步                59       <BR>第 6 步               217       <BR>第 7 步               738       <BR>第 8 步              2465       <BR>第 9 步              7646       <BR>第10 步             19641       <BR>第11 步             28475       <BR>第12 步             16547       <BR>第13 步              1976       <BR>第14 步                10       <BR>第15 步                 0<BR>=========================================<BR>合   计             77802        </P><BR></DIV>
<p><BR>
<DIV class=quote><B>以下是引用<a href="http://bbs.mf8-china.com/dispbbs.asp?BoardID=18&amp;ID=2191&amp;replyID=25167&amp;skin=1" target="_blank" ><FONT color=#0000ff><I>ggglgq</I>在2006-5-7 19:35:14</FONT></A>的发言:</B><BR>
<P>  <IMG src="http://bbs.mf8-china.com/data/attachment/forum/dvbbs/2006-5/20065719291661635.png" border=0><BR>    <a href="http://bbs.mf8-china.com/data/attachment/forum/dvbbs/2006-5/20065719274976097.rar" target="_blank" ><FONT color=#0000ff>正六面体二阶魔方-48“同态”图解</FONT></A>,提供公式 <FONT color=#ff0000>键盘输入</FONT> 和 <FONT color=#ff0000>鼠标输入</FONT> 两模式。</P>
<P>    注: n 号位置<FONT color=#0000ff>镜像</FONT> 是指: n 号位置为“后左上 0 位置”的“<FONT color=#0000ff>左右(对称)镜像</FONT>”。</P>
<P>    附件:<a href="http://bbs.mf8-china.com/data/attachment/forum/dvbbs/2006-5/20065719274976097.rar" target="_blank" ><FONT color=#3300ff>调色工具</FONT></A>,为大家配置自己喜欢的面块颜色。<BR>  </P></DIV>
<p>

smok 发表于 2006-6-5 20:47:45

页: [1]
查看完整版本: [原创]我对魔方状态的思考——交换状态