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