邱志红 发表于 2005-11-4 09:43:54

[原创]一个公式在其它魔方上的运用(待完善)

<P>
<P>                                <FONT size=5> 一个公式在其它魔方上的运用(待完善)</FONT> <br><br>
<P>
<P>                                                                                              作者:邱志红 <FONT face="Times New Roman"><br></FONT>       前些时候,因为帖子过于理论化,范围又局限于立方体魔方和长方体魔方,多少让人乏味和望而生畏。其实说到底,“一式法”在立方体魔方和长方体魔方的体现是最显著且最完美的。留在最后讲。现在我就对“一式法”作一个较完整的概述和分析,并以通俗的方式展现给各位。还将介绍“一式法”在<FONT face="Times New Roman">Sphere</FONT>,<FONT face="Times New Roman">shaped cube </FONT>,<FONT face="Times New Roman">Pyraultimate </FONT>,<FONT face="Times New Roman">Square one </FONT>,<FONT face="Times New Roman">Puck </FONT>,<FONT face="Times New Roman">TetOcta </FONT>,<FONT face="Times New Roman">Xcube </FONT>,<FONT face="Times New Roman">SuperX</FONT>(魔方的名字来自<FONT face="Times New Roman">Puzzle2.05</FONT>,可能不大准确)等等魔方里面的运用。另外在大家读之前最好看看《一式解万方》里面的“相似及相似变换”一节,一定要充分理解相似及相似变换。 <br>
<P>
<P>
<P>
<P><FONT face="Times New Roman"></FONT></P>
<P>
<P><FONT face="Times New Roman">                                          </FONT>第一章:“一式法”的概述 <br>
<P>
<P>
<P>现在讲的一式法是面向广义的魔方而言的,所以我就先简单地讲讲广义魔方的构造法及变换原理。 <br>
<P>
<P>
<P>
<P><FONT face="Times New Roman"></FONT></P>
<P>
<P><FONT face="Times New Roman">1.1</FONT>魔方的构造法 <br>
<P>
<P>
<P>魔方的构造法有一本书上提到,我的理解是:魔方的构造法的实质就是用平面切割形状极对称的几何体。切割的方式也是极对称的。<FONT face="Times New Roman">N</FONT>阶魔方的构造方法其实就是从三个方向切割<FONT face="Times New Roman">N-1</FONT>次,平均地切成<FONT face="Times New Roman">N</FONT>份。关于立方体的切法很多,如下图:</P>
<P align=left><br>
<P>
<P>
<P>
<P><v:shapetype><v:stroke joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 0"></v:f></v:formulas><v:path connecttype="rect" gradientshapeok="t" extrusionok="f"></v:path><LOCK aspectratio="t" v:ext="edit"></LOCK></v:shapetype><v:shape><v:imagedata></v:imagedata></v:shape></P>
<P>下面还有几种广义的魔方:</P>
<P align=left><br><br>
<P>
<P>
<P>
<P><v:shape><v:imagedata></v:imagedata></v:shape></P>
<P>不管怎么切,它都是用平面去切的,这才是我关心的。 <br>
<P>
<P>
<P>
<P><FONT face="Times New Roman"></FONT></P>
<P>
<P><FONT face="Times New Roman">1.2</FONT>魔方的变换原理 <br>
<P>
<P>
<P>由于切割的对称性。一个魔方就有很多形状一样的小块。通过旋转,这些小块位置就发生变化,互相替代,一般还是保持魔方的整体形态不变(<FONT face="Times New Roman">Square one</FONT>等例外)。这些小块位置的更替就导致魔方表面颜色的变化,这些小块都是一簇一簇的。玩魔方的一个重要问题是复原:即通过旋转使小块位置更替,最终使魔方表面颜色复原。它的本质是:小块的位置与色向的复原。 <br>
<P>
<P>
<P>对于三阶魔方由于构成简单,就有很多的复原方法,而高阶的或形状奇特的魔方,只有通过每一簇小块的约束循环来完成。所谓约束循环就是某一簇中某几个小块进行位置与色向的变换(参与变换的小块越少越好)。不影响其他簇的小块也尽量减少对所在簇的其他块的影响。该变换一般是三交换,这也是我找寻的。 <br>
<P>
<P>
<P>所以魔方的复原更一般的方法是分簇复原,即一簇一簇地复原。要领是先找到一个簇内的约束循环,运用它进行簇内小块位置交换和色向的扭转。但往往直接找到的约束所进行的小块交换的位置与实际要求的位置不大符合,这就要通过相似变换把要变化的几个小块先通过一定的步骤转到该约束循环所影响的那几个位置,执行约束循环,把要变化的几个小块的位置一换,最后又通过“一定的步骤”的逆步骤还原。就这样一块一块地将一个簇内的小块复原,剩下最后的几块的时候就再做一次约束循环(可能要进行相似变换)就解决了,然后再去复原其他簇。最麻烦的就是:扰动问题是广泛存在的。如果一开始就能消除扰动剩下的就都是簇内变换了就容易多了,往往刚开始是很难判断的,但扰动可以在复原的过程中消除,不必担忧。这就是一般魔方复原的原理。 <br>
<P>
<P>
<P>最后,注意:全篇的重点是如何找寻每一簇的约束循环。至于实际复原中具体的细碎的技巧问题等等细微末节的东西这里就不多罗嗦了。那要靠自己动手去实践,随机应变了。 <br>
<P>
<P>
<P>
<P><FONT face="Times New Roman"></FONT></P>
<P>
<P><FONT face="Times New Roman">1.3</FONT>魔方的解析 <br>
<P>
<P>
<P>上面提到了魔方的构造法,可以发现任何魔方都可以由不相交(可以相交为一个点)的一些平面分割为若干不相交部分,称为“层”,切割的平面不要求平行,自然允许延长到魔方外部相交。至少可以把魔方分成两“层”,这一点是可以肯定,要不就无法玩,那种切割方式就无意义了。还有一点也不可或缺,就是至少还存在一个“层”与上面不相交的若干<FONT face="Times New Roman"> </FONT>“层”中的至少两个“层”相交,要不就不能进行层与层之间的小块交换,那样的切割方式也是无意义的。举个例子,如下左图,我是用一个球来替代一般的魔方来说明的,红色的就是那几个不相交的平面。把魔方分成不相交的<FONT face="Times New Roman">4</FONT>份,绿线以下的就是存在的某一个层与前面的不相交的层相交,而且至少是两个。再次声明,这只是一个帮助大家理解的图而已,很特殊,具体情况还是要具体分析.</P>
<P><br></P>
<P>
<P>
<P><v:shape><v:imagedata></v:imagedata></v:shape><FONT face="Times New Roman"></FONT>
<P>
<P>
<P>这里的层是与小块相区别的,小块是由切割面相交切割得到的。由切割面相交切割得到的几个块的组合也不能称为层。看上面的右图,<FONT face="Times New Roman">1-5</FONT>,<FONT face="Times New Roman">2-6</FONT>,<FONT face="Times New Roman">3-7</FONT>,<FONT face="Times New Roman">4-8</FONT>及<FONT face="Times New Roman"><st1:chsdate w:st="on" IsROCDate="False" IsLunarDate="False" Day="3" Month="2" Year="2001">1-2-3</st1:chsdate>-4</FONT>和<FONT face="Times New Roman">5-6-7-8</FONT>等组合才是层。而单独的<FONT face="Times New Roman">1</FONT>,<FONT face="Times New Roman">2</FONT>,<FONT face="Times New Roman">3</FONT>等等都不算是层,而且<FONT face="Times New Roman">1-2</FONT>组合也不算是层,它是两条线相交分成的四份中的一份,存在相交,不满足要求。 <br>
<P>
<P>
<P>有了以上的两点作保证,我的方法就可以完全应用到任何魔方里面。但丑话说在前面,该方法也不是百分之百能找到很好用的约束循环。 <br>
<P>
<P>
<P>
<P><FONT face="Times New Roman"></FONT></P>
<P>
<P><FONT face="Times New Roman">1.4</FONT>广义的“<FONT face="Times New Roman">H</FONT>转法” <br>
<P>
<P>
<P>上一节已经明确了魔方可以被不相交的平面分割成若干不相交的层(至少两层),另外至少还存在一个层与其中的若干层相交(至少两层)。这就足够了,从上面不相交的若干层里挑出两层加上一个与之相交的一个层,一共三个层。这三个层就是“<FONT face="Times New Roman">H</FONT>转法”里面转动的三个层,它们在空间的排布就像字母“<FONT face="Times New Roman">H</FONT>”的那三个笔画。有两画不相交,还有一画与这两画相交。 <br>
<P>
<P>
<P>在实际中,它们的排布不会像字母“<FONT face="Times New Roman">H</FONT>”那么工整,方位也不一定对。如下图:</P>
<P align=left>但都可以抽象为最后的一个:字母“<FONT face="Times New Roman">H</FONT>”。因为那三个层的特征与字母“<FONT face="Times New Roman">H</FONT>”几乎一模一样。 <br>
<P>
<P>
<P>既然已经将那三个层的空间结构抽象成为字母“<FONT face="Times New Roman">H</FONT>”,那就以字母“<FONT face="Times New Roman">H</FONT>”的那三画代替那三个层。下面的讲述就方便多了。 <br>
<P>
<P>
<P>现在就来看看这三个层是如何转动的。如下左图:</P>
<P><br>  <FONT face="Times New Roman">      </FONT>圆圈里面的数字代表三个层转动的顺序,箭头代表转动的方向,与以前的方向有些出入,原因是为了总能够进行元素交换。转动操作⑴⑸互逆,⑶⑺互逆,⑵⑹相同,⑷⑻也相同,且⑵⑹与⑷⑻互逆。转动的角度由具体的情况而定。每个层都是有最小转动量的,每个层都可以转动它的倍数(但一次转动一个周期就没有意义了)。但正转超过<FONT face="Times New Roman">180</FONT>度的时候,可能有人认为这时候把这个转动当作逆转来看会好些。但为了统一性,我一概都用正转,逆转的问题都转化为正转处理。看看上面右边的图,虽然操作⑴⑸换方向了,⑵⑹与⑷⑻等也换方向了。但实质上和上面的左图所反映的东西是一样的。以后就把上面的左图当作标准了,其他的都可以通过转动操作的正逆变换来转化成它。 <br></P>
<P>
<P>
<P>它八下的分解图如下<FONT face="Times New Roman">:</FONT></P>
<P><FONT face="Times New Roman"></P>
<P>
<P>
<P></FONT>
<P><v:shape><v:imagedata><FONT face="Times New Roman"></FONT></v:imagedata></v:shape>
<P>
<P>
<P>上面提到三个层的选取,这里补充一下,“<FONT face="Times New Roman">H</FONT>转法”里面的三个层都分别可以选为组合层(几个层当一个整体)。在一般的魔方里面,这种选取往往占多数,往往还被迫的。 </P><br>
[此贴子已经被作者于2005-11-23 10:08:52编辑过]

乌木 发表于 2005-11-4 10:25:00

图打不开。

邱志红 发表于 2005-11-4 10:42:16

<P><FONT size=5><FONT face="Times New Roman">                                       </FONT>第二章:“一式法”的应用 <br><br></FONT>
<P><FONT size=5></FONT>
<P><FONT size=5>上面就是“一式法”的概述,现在就来“理论指导实践”了。内容是丰富多彩的。截图及魔方的名字来自<FONT face="Times New Roman">Puzzle2.05</FONT>了。 <br></FONT>
<P><FONT size=5></FONT>
<P><FONT size=5></FONT>
<P><FONT color=#bb4444 size=5>特别注意:下面出现的灰色部分代表转动的部分,用以指明组成“<FONT face="Times New Roman">H</FONT>”的三个转层,并不是不转动的层。 <br></FONT>
<P><FONT size=5></FONT>
<P><FONT size=5></FONT>
<P><FONT size=5><FONT face="Times New Roman">2.1</FONT>“一式法”之<FONT face="Times New Roman"> Square One</FONT>篇。 <br></FONT>
<P><FONT size=5></FONT>
<P><FONT size=5></FONT>
<P><FONT size=5><FONT face="Times New Roman">Square One</FONT>是一种很特殊的魔方,它不但表面颜色会发生变化,而且整体的形状也会发生变化,如下图:</FONT></P>
<P><FONT size=5></FONT></P>
<P><v:shapetype><FONT size=5><v:stroke joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 0"></v:f></v:formulas><v:path connecttype="rect" gradientshapeok="t" extrusionok="f"></v:path><LOCK aspectratio="t" v:ext="edit"></LOCK></FONT></v:shapetype>
<P><FONT size=5></FONT>
<P><FONT size=5></FONT>
<P><FONT size=5>这里我就不班门弄斧讲“<FONT face="Times New Roman">Square One</FONT>形的复原”了。只讲讲“一式法”在<FONT face="Times New Roman">Square One</FONT>色的复原里面的应用。 <br></FONT>
<P><FONT size=5></FONT>
<P><FONT size=5></FONT>
<P><FONT size=5>第一步要划分魔方<FONT face="Times New Roman">,</FONT>找到满足<FONT face="Times New Roman">H</FONT>的三个转层(灰色的部分)。划分方法如下图:</FONT></P>
<P><FONT size=5></FONT>
<P><FONT size=5><br></FONT>
<P><FONT size=5></FONT>
<P><FONT size=5></FONT>
<P><FONT size=5>如图把顶层旋开<FONT face="Times New Roman">30</FONT>度,这样可以保证在各层都只转<FONT face="Times New Roman">90</FONT>度的情况下上下层都是正方形,便于研究。其实我更趋向于把这种状态作为初始状态。为了方便阅读,我还是把立方体态作为初态,但进行<FONT face="Times New Roman">H</FONT>转法的时候务必将上下层错开<FONT face="Times New Roman">30</FONT>度。 <br></FONT>
<P><FONT size=5></FONT>
<P><FONT size=5></FONT>
<P><FONT size=5>然后依照概述里面的转法转动八下,转动的度数为<FONT face="Times New Roman">90</FONT>的整数倍。具体的是,两侧的层转动<FONT face="Times New Roman">180</FONT>度,底面按照箭头一次转动<FONT face="Times New Roman">90</FONT>度。其最终效果如下图:</FONT></P>
<P><FONT size=5></FONT></P>
<P><FONT size=5></FONT>
<P><FONT size=5></FONT>
<P><FONT size=5></FONT>
<P><FONT size=5></FONT>
<P><FONT size=5>右图是颜色的参考图。可以看到,是一个三交换。只不过是一个棱块加一个角块作为一个整体的。这样就很像二阶魔方中三角块的交换了,如下图:</FONT></P>
<P><FONT size=5><br></FONT></P>
<P><FONT size=5></FONT>
<P><FONT size=5></FONT>
<P><FONT size=5></FONT>
<P><FONT size=5>这样就可以把不是同一层的归到同一层。类似的,一开始把下面的层旋开<FONT face="Times New Roman">30</FONT>度,也差不多,如下图:</FONT></P>
<P><FONT size=5> <br></FONT></P>
<P><FONT size=5></FONT>
<P><FONT size=5></FONT>
<P><FONT face="Times New Roman" size=5></FONT></P>
<P><FONT size=5>只是角块和棱块的组合一点不同,主要是八大块的划分方法引起的。一根线是纵向切面在顶面(底面)的投影,另一根线是与之垂直的一根线。如下图:</FONT></P>
<P><FONT size=5> <br></FONT></P>
<P><FONT size=5>紫色的线是纵向切面在顶面(底面)的投影,上面是两种情况的顶面与底面的图。划分完了以后,就当二阶魔方来玩。 <br></FONT>
<P><FONT size=5>上面讲的是不同层的情况。利用相似就可以得到同层的三交换,其实就是通过一定的转动把划分好的顶面四大块中的三块移动到这三个被影响的位置。然后再实行<FONT face="Times New Roman">H</FONT>转动,最后还原。就变成同层三交换了。我只提供一个例子。</FONT></P>
<P><FONT size=5> <br></FONT></P>
<P><FONT size=5></FONT>
<P><FONT size=5></FONT>
<P><FONT size=5></FONT>
<P><FONT size=5>图我画的太差,但意思我已经表达明白了,读图时第一排从左往右读,结尾的时候转到右下角从右往左读。大家最好去实践一下。类似的大家也自己去试试,我的主要任务是找寻三交换。</FONT></P>
<P><FONT size=5>上面的三大块交换就像二阶里面的三个角交换,把最后的状态的顶层再逆时针转动<FONT face="Times New Roman">90</FONT>度就成了两个角交换了,当然这样产生扰动了。但这里两交换比三交换会更好用一些。如下图:</FONT></P>
<P><FONT size=5><br><br></FONT></P>
<P><FONT size=5></FONT>
<P><FONT size=5></FONT>
<P><FONT size=5></FONT>
<P><FONT size=5>是顶层靠前面的两个大块位置互相交换。然后利用该交换的叠加运用就可以得到三个小棱块的三交换。</FONT></P>
<P><FONT size=5>如果一开始是把底面旋开<FONT face="Times New Roman">30</FONT>度,其它的步骤照旧,最后又把底面旋回。那么得到的效果就是下图了:</FONT></P>
<P><FONT size=5><br></FONT></P>
<P><FONT size=5></FONT>
<P><FONT size=5></FONT>
<P><FONT size=5></FONT>
<P><FONT size=5>也是靠前面的两个大角块位置互换,但两者大角块的划分又有点不同。看下图: <br></FONT>
<P><FONT size=5></FONT>
<P><FONT size=5></FONT>
<P><FONT size=5></FONT>
<P><FONT size=5>画的是平面图,变换<FONT face="Times New Roman">1</FONT>与变换<FONT face="Times New Roman">2</FONT>分别指上面的两种不同的换大角块的方式。右边的就是两个变换叠用之后的情况。发现的确是三个小棱块的三交换。这一点与三阶魔方的棱块三交换神似。类似的可以得到角块的三交换,这个问题就留给大家练习吧。 <br></FONT>
<P><FONT size=5></FONT>
<P><FONT size=5></FONT>
<P><FONT size=5>声明一点,上面只是一个仅供参考的例子,重要的是要学会如何利用相似变换及扰动,公式叠加运用也很重要。 <br></FONT>
<P><FONT size=5></FONT>
<P><FONT size=5></FONT>
<P><FONT size=5>最后大家可以发现<FONT face="Times New Roman">H</FONT>转法加上相似变换可以得到很复杂的各种效果。 <br></FONT>
<P><FONT size=5></FONT>
<P><FONT size=5></FONT>
<P><FONT size=5>由以上发现<FONT face="Times New Roman">square one</FONT>既像二阶又像三阶。最后一个事实又说明它又一点既不像二阶又不像三阶。就是它可以仅两个棱块(或角块)进行位置交换。这样一来想用类似二阶或三阶的方法来解决就是不可能的。可以说在<FONT face="Times New Roman">square one</FONT>不存在扰动,所以怎么样错装都能还原。 <br></FONT>
<P><FONT size=5></FONT>
<P><FONT size=5></FONT>
<P><FONT size=5>我玩的时候就遇到了该问题了,用<FONT face="Times New Roman">H</FONT>转法马上就卡壳了,几次失败,我就认识到我的方法本质还是基于立方体魔方扰动的方法,对于该问题实在无能为力。但由于<FONT face="Times New Roman">H</FONT>转法解决了很多重要的问题,起了很大的作用,我不会轻易放弃的。这使我想起了高阶魔方两个侧棱对换的问题,当时用我的<FONT face="Times New Roman">H</FONT>转法也无能为力,最后我认识到了扰动的存在,消除扰动问题就迎刃而解了,结果证明了高阶魔方两个侧棱对换的问题不是转动方法的问题,而是扰动的问题。现在直觉告诉我<FONT face="Times New Roman">square one</FONT>中两个棱块(或角块)对换的问题也不是复原方法的问题,当然也不好说是扰动的问题,问题到底出在哪里呢? <br></FONT>
<P><FONT size=5></FONT>
<P><FONT size=5></FONT>
<P><FONT size=5>这个难题,我现在正在思考中…… <br></FONT>
<P><FONT size=5></FONT>
<P><FONT size=5></FONT>
<P><FONT size=5>也许我的直觉错了…… <br></FONT>
<P><FONT size=5></FONT>
<P><FONT size=5></FONT>
<P><FONT size=5>也许是对的…… <br></FONT>
<P><FONT size=5></FONT>
<P><FONT size=5></FONT>
<P><FONT size=5>也许…… <br></FONT>
<P><FONT size=5></FONT>
<P><FONT size=5></FONT>
<P><FONT size=5>我累了,下面的内容就由我的搭档来写一部分吧。 </FONT></P>
[此贴子已经被作者于2005-11-23 10:05:11编辑过]

佚名 发表于 2005-11-4 10:43:48

<P><FONT face="Times New Roman">2.2</FONT>“一式法”之<FONT face="Times New Roman"> Shaped  Cube</FONT>篇。 <br><br>
<P>
<P>我是邱志红的搭档佚名,他考虑<FONT face="Times New Roman">square one</FONT>中的那个问题,考虑得很累了,这一节就由我来写。<FONT color=#ff0000>特别鸣谢:感谢邱兄为我贴图,因为我贴图的权限不够。</FONT></P>
<P>它一开始就选<FONT face="Times New Roman">square one</FONT>那么难的课题来讲<FONT face="Times New Roman">, </FONT>我认为实在是不大合适<FONT face="Times New Roman">.</FONT>我就从一些简单的入手吧<FONT face="Times New Roman">.</FONT>我也学他的,截图及魔方的名字来自<FONT face="Times New Roman">Puzzle2.05</FONT>。<FONT face="Times New Roman">Shaped  Cube</FONT>就是下面的一种魔方:</P>
<P>
<P><br>
<P>
<P><v:shapetype><v:stroke joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 0"></v:f></v:formulas><v:path connecttype="rect" gradientshapeok="t" extrusionok="f"></v:path><LOCK aspectratio="t" v:ext="edit"></LOCK></v:shapetype></P>
<P>它们都是三层的,是一个棱柱,边数从<FONT face="Times New Roman">3</FONT>到<FONT face="Times New Roman">n</FONT>,每个侧面都是<FONT face="Times New Roman">3*3</FONT>的正方形。每个侧面都转动一次<FONT face="Times New Roman">180</FONT>度,上下方向的三个层一次转动<FONT face="Times New Roman">360/n</FONT>度。注意:那个<FONT face="Times New Roman">4</FONT>棱的不是立方体三阶,它长和宽与高不等! <br>
<P>
<P>
<P>对于这样的魔方先看看有多少簇,是哪些簇。首先定义一下小块的名字,两个侧层与顶层或底层三交得到的块就叫角块,两个侧层与中间层三交得到的块就叫中棱块,每个侧面中心的块叫侧面心块,上下层中心块叫正面心块,仅一个侧层顶层或底层二交的块叫正棱块。最后内部中心还包含了一块就叫中心块了。 <br>
<P>
<P>
<P>再说一次,上面不是分类是分簇。只要位置能够交换从而导致状态变化的一些小块就是一簇,自己与自己交换也算,但一定要导致状态变化才算。虽然从实际的角度来看很多块位置都不需要移动。但分簇只看能不能够,不看需不需要,就算是中心块也不例外。 <br>
<P>
<P>
<P>回到他的套路上来,还是先找到满足<FONT face="Times New Roman">H</FONT>的三个转层吧<FONT size=2>(仅供参考)</FONT>,就以五棱柱为例吧。</P>
<P>
<P><br></P>   上面左图只是其中的一种选取方法而已。假如,按照<FONT face="Times New Roman">H</FONT>转法转完就是上面右图的效果。是一个角簇的三交换。 <br>
<P>
<P>
<P>再来看看如果<FONT face="Times New Roman">H</FONT>的水平层取的是中间层的情况<FONT face="Times New Roman">,</FONT>下图<FONT face="Times New Roman">:</FONT>
<P><FONT face="Times New Roman"> <br>
<P></FONT>
<P>
<P>
<P>是中间层侧棱块的三交换<FONT face="Times New Roman">,</FONT>有了它就可以搞定侧棱块了<FONT face="Times New Roman">. <br>
<P></FONT>
<P>
<P>侧面心块<FONT face="Times New Roman">, </FONT>正面心块及中心块一开始就摆正以后就不用变换位置了<FONT face="Times New Roman">,</FONT>只是原地转动<FONT face="Times New Roman">.</FONT>这样就解决了<FONT face="Times New Roman">. <br>
<P></FONT>
<P>
<P>还剩下最后一簇——正棱簇<FONT face="Times New Roman">.</FONT>它的<FONT face="Times New Roman">H</FONT>的划分方法有点极端了<FONT face="Times New Roman">,</FONT>如下图<FONT face="Times New Roman">: </FONT>
<P><FONT face="Times New Roman"><br></FONT>可以看到是一个角块和一个正棱块合成一大块<FONT face="Times New Roman">,</FONT>然后三大块位置三交换<FONT face="Times New Roman">.</FONT>这样就可以利用该方法<FONT face="Times New Roman">(</FONT>或加以相似变换<FONT face="Times New Roman">)</FONT>就可以解决正棱簇<FONT face="Times New Roman">,</FONT>但同时又打乱了角簇<FONT face="Times New Roman">.</FONT>解决方法很简单<FONT face="Times New Roman">,</FONT>先复原正棱簇后复原角簇<FONT face="Times New Roman">.</FONT>这种方法再一般魔方的复原里面会经常用到<FONT face="Times New Roman">.</FONT>比如角先的方法就是牺牲了棱簇先解决角簇<FONT face="Times New Roman">,</FONT>后解决棱簇<FONT face="Times New Roman">,</FONT>而棱先的方法就刚好相反<FONT face="Times New Roman">. <br>
<P></FONT>
<P>
<P>究其原因<FONT face="Times New Roman">,</FONT>邱兄已经告诉我了<FONT face="Times New Roman">,</FONT>我不大明白<FONT face="Times New Roman">.</FONT>他的意思是<FONT face="Times New Roman">:</FONT>像上面解决角块的时候那样可以把魔方划分为从左到右的三个层<FONT face="Times New Roman">,</FONT>要解决正棱块<FONT face="Times New Roman">,H</FONT>的右边一画选取中间一个层就可以了<FONT face="Times New Roman">,</FONT>但无赖的是它转动必然会带动最右边的一层也转动<FONT face="Times New Roman">.</FONT>所以也附带使角簇也进行了三交换<FONT face="Times New Roman">,</FONT>最后看到的就是正棱簇和角簇一起进行了三交换<FONT face="Times New Roman">. <br>
<P></FONT>
<P>
<P>他还举例说明了<FONT face="Times New Roman">,</FONT>在立方体魔方中这种情况可以避免<FONT face="Times New Roman">,</FONT>因为可以把<FONT face="Times New Roman">N</FONT>阶魔方从左到右分成<FONT face="Times New Roman">N</FONT>个平行的转层<FONT face="Times New Roman">,</FONT>每一个层的转动都不必要影响与之平行的<FONT face="Times New Roman">(N-1)</FONT>个层<FONT face="Times New Roman">.</FONT>所以在立方体魔方中使用<FONT face="Times New Roman">H</FONT>转法进行的都是一簇的簇内变换<FONT face="Times New Roman">.</FONT>而不会同时进行多簇的簇内变换<FONT face="Times New Roman">.</FONT>当然如果你愿意的话<FONT face="Times New Roman">,</FONT>也可以把几个层组合起来转动<FONT face="Times New Roman">,</FONT>也可以使几个簇同时进行簇内变换<FONT face="Times New Roman">.</FONT>但说老实话<FONT face="Times New Roman">,</FONT>那样容易影响<FONT face="Times New Roman">“</FONT>无辜<FONT face="Times New Roman">”</FONT>的块<FONT face="Times New Roman">,</FONT>也就不容易对小块进行严格控制了<FONT face="Times New Roman">. <br>
<P></FONT>
<P>
<P>回到这里来<FONT face="Times New Roman">,</FONT>发现那三个层虽然不相交但也不平行<FONT face="Times New Roman">,</FONT>所以转动时会出现连动而影响多簇也就是很平常的事情了<FONT face="Times New Roman">.</FONT>这也就是为什么邱兄在概述里面说这样做是“被迫”的原因了<FONT face="Times New Roman">.</FONT>以后会经常遇到的<FONT face="Times New Roman">,</FONT>大家会慢慢习惯的<FONT face="Times New Roman">. <br>
<P></FONT>
<P>
<P>这样<FONT face="Times New Roman">Shaped  Cube</FONT>就可以搞定了<FONT face="Times New Roman">.</FONT>下面还是由我来续写下一节<FONT face="Times New Roman">: </FONT>“一式法”之<FONT face="Times New Roman"> Megaminx</FONT>篇。 <br>
<P>
<P>
<P>
<P><FONT face="Times New Roman"></FONT></P>
<P><br><br></P>
[此贴子已经被作者于2005-11-5 8:29:03编辑过]

佚名 发表于 2005-11-4 10:44:01

<P><FONT face="Times New Roman">2.3</FONT>“一式法”之<FONT face="Times New Roman">Megaminx</FONT>篇。 <br><br>
<P>
<P><FONT face="Times New Roman">Megaminx</FONT>就是大家常常说的五魔方<FONT face="Times New Roman">.</FONT>如下图<FONT face="Times New Roman">,</FONT>是一种很简单的魔方<FONT face="Times New Roman">.</FONT></P>
<P><FONT face="Times New Roman"><br></FONT>它有四个簇<FONT face="Times New Roman">,</FONT>角簇<FONT face="Times New Roman">,</FONT>棱簇<FONT face="Times New Roman">,</FONT>面心簇和中心簇<FONT face="Times New Roman">.</FONT>而面心簇和中心簇是联系的<FONT face="Times New Roman">.</FONT>一开始就把它们的位置摆正<FONT face="Times New Roman">,</FONT>那样就只剩下角簇和棱簇<FONT face="Times New Roman">.</FONT>所以我才说它简单啊<FONT face="Times New Roman">. <br>
<P></FONT>
<P>
<P>首先还是划分一下<FONT face="Times New Roman">H<FONT size=2>(仅供参考)</FONT>.</FONT>如下图<FONT face="Times New Roman">:</FONT></P>
<P><FONT face="Times New Roman"> <br>
<P></FONT>
<P>
<P>
<P>可以看到它是一个角簇的三交换<FONT face="Times New Roman">.</FONT>利用它及其相似变换就可以搞定角簇了<FONT face="Times New Roman">.</FONT>自己灵活运用吧<FONT face="Times New Roman">. <br>
<P></FONT>
<P>
<P>糟了<FONT face="Times New Roman">,</FONT>又犯了和上一节一样的失误<FONT face="Times New Roman">.</FONT>应该先讲棱块的复原的<FONT face="Times New Roman">.</FONT>这时候<FONT face="Times New Roman">H</FONT>的划分方法如下图<FONT face="Times New Roman">,</FONT>也很极端<FONT face="Times New Roman">: </FONT>
<P><FONT face="Times New Roman"></FONT>
<P>同样它也是角簇和棱簇连动<FONT face="Times New Roman">,</FONT>理由和上一节邱兄说的一样<FONT face="Times New Roman">.</FONT>所以应该优先处理棱簇<FONT face="Times New Roman">,</FONT>然后再搞定角簇<FONT face="Times New Roman">,</FONT>而不是反过来<FONT face="Times New Roman">. <br>
<P></FONT>
<P>
<P>这样<FONT face="Times New Roman">Megaminx</FONT>也就可以搞定了<FONT face="Times New Roman">,</FONT>灵活运用相似就可以搞定<FONT face="Times New Roman">.</FONT>邱兄还是在思考<FONT face="Times New Roman">square one</FONT>中的那个问题<FONT face="Times New Roman">,</FONT>而且还是很头疼<FONT face="Times New Roman">.</FONT>所以下一节还是由我代劳了<FONT face="Times New Roman">. <br>
<P></FONT>
<P>
<P>
<P><FONT face="Times New Roman"></FONT></P>
<P><br><br></P>
[此贴子已经被作者于2005-11-5 8:29:32编辑过]

佚名 发表于 2005-11-4 10:44:30

<P><FONT face="Times New Roman">2.4</FONT>“一式法”之<FONT face="Times New Roman">TetOcta</FONT>篇。 <br><br>
<P>
<P><FONT face="Times New Roman">TetOcta</FONT>就是下面的一种魔方<FONT face="Times New Roman">:</FONT></P>
<P><FONT face="Times New Roman"> <br>
<P></FONT>
<P>
<P><v:shapetype><v:stroke joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 0"></v:f></v:formulas><v:path connecttype="rect" gradientshapeok="t" extrusionok="f"></v:path><LOCK aspectratio="t" v:ext="edit"></LOCK></v:shapetype>
<P>
<P>
<P>样子很奇怪<FONT face="Times New Roman">,</FONT>但不难<FONT face="Times New Roman">,</FONT>首先分簇。各面的八个面心块就是一簇,六个顶点所在的一簇块就是角块簇了,而剩下的处于每边中间的一簇块块就是棱块了。当然还有中心块了,也算一簇,只是挂个名而已。 <br>
<P>
<P>
<P>其实中心块和角块的位置是相对固定的,所以把它们固定以后就只用解决面心簇和棱簇两簇,当然就异常简单了。 <br>
<P>
<P>
<P>现在就来看看在这两种情况下,<FONT face="Times New Roman">H</FONT>是怎么划分的<FONT size=2>(仅供参考)</FONT>。 <br>
<P>
<P>
<P>
<P>
<P><FONT face="Times New Roman"></FONT></P>
<P>
<P>上面分别是面心块和棱块的三交换,剩下的就是灵活地使用相似变换了。由于可以转动<FONT face="Times New Roman">90</FONT>度就有可能会出现扰动,扰动的处理方法和立方体魔方一样。自己去实践吧。 <br>
<P>
<P>
<P>这个魔方我就讲这么多了,很简单的。所以我和邱兄的意见一样:掌握<FONT face="Times New Roman">H</FONT>的分法是最重要的。 <br>
<P>
<P>
<P>最后提醒一下<FONT face="Times New Roman">,</FONT>其实这个魔方与三阶魔方的结构上一样只是外形的变化<FONT face="Times New Roman">,</FONT>这里的<FONT face="Times New Roman">6</FONT>个角块相当与三阶里面的<FONT face="Times New Roman">6</FONT>个面心块,<FONT face="Times New Roman">8</FONT>个面心块相当与三阶里面的<FONT face="Times New Roman">8</FONT>个角块,<FONT face="Times New Roman">12</FONT>个棱块还是相当与三阶里面的棱块。如下图:<br>
<P> <br>
<P>
<P>
<P>
<P>看上面第<FONT face="Times New Roman">3</FONT>个图就明白了,其实就是过相邻的三个面心块的中心点做一个平面来切立方体(上图只是对一个角的)。分别对<FONT face="Times New Roman">8</FONT>个角都做这样的切割就得到了<FONT face="Times New Roman">TetOcta</FONT>,对于<FONT face="Times New Roman">Diy</FONT>高手这完全是做的到的,不知道有人改造过了吗? <br>
<P>
<P>
<P>再仔细分析一下<FONT face="Times New Roman">TetOcta</FONT>。发现它与三阶的侧重点不一样。<FONT face="Times New Roman">TetOcta</FONT>忽视了面心块(三阶的角块)的原地自旋,在这种纯色的里面角块的原地自旋是看不出来的,这个是可以验证的。同时<FONT face="Times New Roman">TetOcta</FONT>侧重于角块的自旋(三阶的面心块),即使在纯色里面也是完全可以察觉的,如下图: <br>
<P><br>
<P>
<P>
<P>
<P>就是把三阶的方法运用到<FONT face="Times New Roman">TetOcta</FONT>中,使<FONT face="Times New Roman">TetOcta</FONT>的一个角块独立原地旋转<FONT face="Times New Roman">180</FONT>度,相当于三阶的一个面心块独立旋转<FONT face="Times New Roman">180</FONT>。还有其他的性质等都是与三阶魔方一样的,一样满足<FONT face="Times New Roman">Pengw</FONT>的<FONT face="Times New Roman">N</FONT>阶魔方扰动定理。因为只是外形的变化而已。 <br>
<P>
<P>
<P>我认为这种外形变化比三阶魔方六个面贴上图片或改造成人头状更有意义一些。 <br>
<P>
<P>
<P>好了,<FONT face="Times New Roman">TetOcta</FONT>分析得很透彻了,我也累了,要休息了。</P>
[此贴子已经被作者于2005-11-5 8:30:11编辑过]

佚名 发表于 2005-11-4 10:44:46

<P><FONT face="Times New Roman">2.5</FONT>“一式法”之<FONT face="Times New Roman">Pyraultimate</FONT>篇。</P>
<P>看来那个问题不解决,邱兄是不会善罢甘休的。他解释说,这是顺便给我一个大好的展现自我的机会。所以这一节还是由我来代写了,贴图的事情就麻烦他了。</P>
<P><FONT face="Times New Roman">Pyraultimate</FONT>就是下面的这种魔方:</P>
<P> </P>
<P>开门见山一点吧。它从结构上说,它就是五阶魔方。下面讲讲它是怎么由五阶魔方得到得,下图:</P>

<P>如图,是由五阶魔方三个互邻的面心块得的顶点组成的平面来切割得到的,一共切割八次再将五阶魔方的棱块及一些面心块也切除修整就成了<FONT face="Times New Roman">Pyraultimate</FONT>。</P>
<P>特别注意:图中由三种颜色组成的小正三角形所对应的块,其实本就是一块,那中间的三条线是画的线不是切割线。自然该地方就无法转动,只是为了与旁边的颜色融合而做成这样。它其实就是三阶的一个角块被切后露在外面的部分。下图:</P>

<P>明白了它的结构是五阶魔方,解法就不用我多说了。</P>
<P>现在讨论一下别的问题。</P>
<P>仔细观察发现,它由五阶转变的时候,外部的棱块及角块都被削掉了,所以这些被削掉的地方还用五阶里面“一式法”的对应公式就无意义了,更别说循环了。</P>
<P>另外,它是五阶套三阶,自然就有内部问题。假如<FONT face="Times New Roman">H</FONT>选的是下面三层呢? </P>

<P>结果从外表上看是不会变化的,但绝对不能说是循环。因为内部变了,有兴趣的可以用五阶魔方去试试。</P>
<P>关于扰动当然就和立方体魔方一样了,没有什么好说的。</P>
<P><FONT face="Times New Roman">Pyraultimate</FONT>就这样解决了。下一篇就讲<FONT face="Times New Roman">Puck</FONT>吧。还是我讲吧。</FONT></P>
<P><FONT color=#dd2222>****************************邱志红***********************</FONT></P>
<P><FONT color=#dd2222>刚开始贴的好几张图都浪费了,现在我权限用完了,剩下的你自己贴吧,虽然只能贴几张。</FONT></P>
<P><FONT color=#dd2222>************************************************************</FONT></P>
<HR>
字太小了,改一下<br>cube_master
[此贴子已经被cube_master于2005-11-4 12:21:13编辑过]

佚名 发表于 2005-11-4 10:45:10

<P><FONT size=4><FONT face="Times New Roman">2.6</FONT>“一式法”之<FONT face="Times New Roman">Puck</FONT>篇。</FONT></P>
<P><FONT size=4><FONT face="Times New Roman">Puck</FONT>就是下面的一种魔方:</FONT></P>
<P><v:shapetype><FONT size=4><v:stroke joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 0"></v:f></v:formulas><v:path connecttype="rect" gradientshapeok="t" extrusionok="f"></v:path><LOCK aspectratio="t" v:ext="edit"></LOCK></FONT></v:shapetype></P>
<P><FONT size=4>它一定是一个六棱柱,只是层数是可以变的,从<FONT face="Times New Roman">1</FONT>到<FONT face="Times New Roman">n</FONT>都行,我只以四层的来说明:</FONT></P>
<P><FONT size=4><br></FONT></P>
<P><FONT size=4>它只有两簇,上下面一共<FONT face="Times New Roman">12</FONT>块是一簇,中间<FONT face="Times New Roman">12</FONT>块又是一簇。<FONT face="Times New Roman">H</FONT>的划分方法(仅供参考)为下面的:</FONT></P>
<P><FONT size=4></FONT></P>
<P><FONT size=4></FONT></P>
<P><FONT size=4>可能下面的一个图看的不是太明显,自己去实践一下就可以看到的确是三交换。剩下的就是灵活利用相似对称等等变换去解决实际问题了,具体的我就不讲了。</FONT></P>
<P><FONT size=4>对了,当只有一层的时候,情况又会是怎么样的呢?<FONT face="Times New Roman">H</FONT>又如何选?见下图:</FONT></P>
<P><FONT size=4><br>还是照例那样选。转动呢?就是那个代表<FONT face="Times New Roman">H</FONT>中间一画的那个层的转动情况。从实际来看就是将魔方整体移动了一下,到底算不算是一下呢?</FONT></P>
<P><FONT size=4>关于这个问题,邱兄特别指示:为了统一还是将该转动算作是一步。</FONT></P>
<P><FONT size=4>我知道那些追求最短步数的人肯定会反对或者攻击。我想说的是,邱兄这样做是源于统一,是有充分的道理的,各位就不要责难他了。</FONT></P>
<P><FONT size=4><FONT face="Times New Roman">Puck</FONT>就这么多了,没有什么好讲的了。</FONT></P>
<P><FONT color=#cc3333 size=4>************************************</FONT></P>
<P><FONT color=#cc3333 size=4>俺的权限也用完了,今天到此为止。</FONT></P>
<P><FONT color=#cc3333 size=2><FONT size=4>************************************</FONT><br></FONT></P>
[此贴子已经被邱志红于2005-11-23 10:05:51编辑过]

佚名 发表于 2005-11-4 10:46:10

<P ><FONT size=2><FONT face="Times New Roman">2.7</FONT>“一式法”之超级五魔方。</FONT></P>
<P></P>
<P><FONT size=2>这个不外乎就是一个五魔方。就像五阶也可以叫“超级三阶魔方”一样。只是超级五魔方每个面是五边形,而超级三阶魔方每个面是四边形的而已,下图:</FONT><br><br></P>
<P ><FONT size=2>这个魔方也在一式法的解决范围以内。</FONT></P>
<P ><FONT size=2><FONT face="Times New Roman">H</FONT>的选法也和一般的五魔方类似。由于我没有实物,而且在<FONT face="Times New Roman">Puzzle2.05</FONT>里面也没有模拟它的游戏。所以我无法详细地讲述它的解法。</FONT></P>
<P ><FONT size=2>至于怎么办,只有看邱兄的了。希望他有办法,这个问题其实是他提出的,我只是沾他点光。同时也希望大家来积极讨论。</FONT></P>
<P ><FONT size=2>这也是一式法预见性的一个很好的体现。邱兄也真是够大胆的,没有实物也没有模拟游戏的情况下竟然敢下如此结论。验证起来也难啊!!</FONT></P>

[此贴子已经被邱志红于2005-11-5 6:46:00编辑过]

邱志红 发表于 2005-11-4 11:55:25

<TABLE height="85%" width="95%" align=center border=0 break-all? WORD-BREAK: fixed;>

<TR>
<TD vAlign=top width=* height="100%" 12pt? LINE-HEIGHT: 9pt;>
<P><FONT size=5>我现在正在竭力思考Square one中两棱(两角)对换的根本原因及原理.这对我及pengw等都非常重要.</FONT></P>
<P><FONT size=5>其他的问题现在都暂且放在一边,以后再考虑了</FONT></P>
<P><FONT size=5>希望有哪位高手能帮忙回答这个问题.我不甚感激.</FONT></P>
<P><FONT color=#dd2222 size=5>注意:我要的是该变换发生的原因及原理,而不是具体的转动方法,具体的转动方法对我来说毫无用处.</FONT></P></TD></TR></TABLE>
[此贴子已经被作者于2005-11-5 6:59:55编辑过]
页: [1] 2 3 4
查看完整版本: [原创]一个公式在其它魔方上的运用(待完善)