我学了Alex Fung魔方转法,这是一种精确的数学法,且是一种思路,一个系统解决方案,一种原理,不用死记硬背公式。
这是一篇学习记,所有用到的算法必须去原文查看具体的数学公式和Java Applet的演示。因为我还不会编程演示,所以本文不self-contained,而像是一个数学课抄录的笔记,只是记录我的学习过程。
首先,请拿纸和笔——数学公式必须自己写一遍,自己推导一遍,使得自己看到那些符号,心里不发怵,所以写只是为了变得信任眼熟亲切记得。
魔方基础的令人讨厌气噎眼花缭乱终于整个头脑都拧巴了的术语还得学:前Front后Back左Left右Right上Up下Down面,顺(Clockwise,即我看着魔方的这一面顺时针转)逆(逆时针),比如底面逆,我就把魔方举得高过头看它,那个逆时针。学魔方要老老实实、很僵硬,如果一上来就翻来翻去,会晕过去的。要当它有西瓜那么大,悬空固定在那里,就是那个三面朝我,三面看不见的固定式样(如下图),左手转前面Front,右手转右面Right。其实实际操作起来就是左手右手,但是和左面右面混淆了,为了精确,数学公式使用严格的术语F面(我Fancy的左手)、R面(我Right的右手)。
让这些术语做为将头脑拧成魔方的热身。
其次,请把下列数学书一页一页地点开摊好,可以直接看,直接一步一步练习,也可以先跳过,按照我记录的过程往下走,遇到数学公式返回去查找公式和演示。公式在我的电脑上显示为乱码,Fung说是因为文章写成于20多年前,Windows的编码乱了,需要用自己的话在纸上改写。例如:CT1 º CM1R-1ÅCM1F,改成CT1 = (CM1R-1)(CM1F)。
Solving the Rubik‘s Cube Systematically
- Background and Naming of the Parts
- Design Theory
- Moving Corners
- Moving Edges Part I
- Moving Edges Part II
- Completing the Cube
- Afterwards
Fung解法的整体思路是:先角后棱再中心,先转位置再转面。具体来说,(1)先底4角,再顶4角;(2)然后底三棱,顶三棱,最后顶和底两棱,得到两面正确;(3)中间层的棱;(4)最后中心。每一步骤都是先把那一块转到那个位置去(动作是move),先不管方向(orientation),然后再转方向:角拧转(twist),楞翻转(flip)。
Fung解法像个全集,我的过程是一个子集。
1)底面先转齐。请用白底面,向Fung解法看齐,使用CM1和CT1两个转法(见Moving Corners),CM1用于转位置,CT1用于转面。这两个操作是角操作的基础。不能因为我太会转齐一面了,就自己转,不,这是一个精确的数学乐高,CM1和CT1是基础块。
2)再转顶四角,先转位置再转面。转位置用CM3,转面用CT2。
两角对换,有两种情况:
(i)同边两角对换。顶面用R逆,先将一角转正,剩下三角再对换,另两角的正确没意义,换句话说,三角轮换中包含有两角相对位置正确。有时候,我一看就是一个天然的三角对换,其实我得承认,那是凑巧,我不用亲自做“R逆”这一步了。
(ii)对角两角对换,先用一次CM3,将情况变成(i),再用一次CM3。
关于转面,例如转黄面,有三种情况,(i)两角的黄色面一个冲前,一个冲后,那就按示例做CT2,先右手再左手,妥妥的。(ii)如果两角的黄色面同边都冲右,也是CT2,但镜像,先左手再右手。(iii)如果一角黄色面朝上,一角黄色面朝右,也是CT2,但做完了,有一个角对了,有一个角还得跟剩下的一个角做CT2。
CM3和CT2是成功的秘诀,因为其他块都不动。如果您已经会把下两层转齐,那么在顶面尝试了颇为复杂高断的CM3和CT2,转完了,发现下两层毫发无伤,那场面真是很吓人的。
3)然后顶三棱。
这一步转对位置的同时,方面也是对的,见Moving Edges Part I。
EM1BR和EM1BL是将侧边棱转到顶的两个基础操作,简记为R,BL。我非得自己再添乱搞出新术语吗?因为后面有个棱转面的操作(EF2D),用的是这两个操作的正逆组合,那个操作耗掉了我一天一夜不止,在头脑里渐渐清晰,也渐渐产生这个简记法。
当顶的一条棱调整时,直下的底的棱也变了(EM1BR是顶棱,EM1BL是背后看不见的那条棱),于是变成底三棱。每转一条棱,确保下面的棱是那个不对的棱,是个buffer,是我们不关注的buffer。
最后上下两条棱同时拧正(EM1BR是顶棱,EM1BL是背后看不见的那条棱),此时目标底棱在顶面,目标顶棱在侧面。(如果您在这里不停地失败,我只好幸灾乐祸,到底还是掉坑里去了——这里是有技术含量的,而且我感觉我还没彻底弄清楚。)
这样两面整齐,将魔方像是三明治那样立起来,我们来调整混乱的夹层。
4)中间四棱。
转位置:三棱轮换EM3,当发现两棱需对换的情况,先转90度,铆钉一个,剩下三棱轮换,原理同顶四角。
两对棱直线对换EM4。我确实用到一次,但其他时候都用EM3。
转面用EF2D:R逆,BL,U,BL逆,R,U逆。用到上面说的箭记法了,写出来才短短这么一行乱码,做起来是大汗淋漓、废寝费事、青面獠牙、日月星辰早已变换。
5)最后中心调整。
两对:直线对换CM2C-1M2,或者拐弯对换CMC-1M。当我看到所有块都好了,只有中心不对时,真是看到怪物了,但是这个转法,四两拨千斤,too good to be true。
最后说一个错觉:我转齐底面,就节约了很多步骤,那我先不浪费我的经验(那我也是费了心血的呀),先转齐两层,那不得更快?
我先用蛮力转齐下两层,顶面用CM3,CT2这种环保法。第一次运气好,棱位置对,只需要两棱翻面,但其他时候棱位置不对,则一点没节约,还把转好的中间层弄得乱七八糟,搞得我很心痛,我感觉那个运气好的概率好像买彩票的,故曰:错觉。
Alex Fung说他十多年不转魔方,一旦转起来,照样能转好,不像记公式,一段时间不转,就不会转了。这句话直接说中我的痛处。待时日,我确认一下总能转出来。
In the honor of Alex Fung, 关于Fung解法有反馈的话,可以直接写邮件给他,他的个人网页有联系方式。