对于魔方,我们应该都不陌生,近两年来,稍微细心一点的人都可以发现,魔方作为益智玩具的一种,已经被越来越多的摆上了货架,被越来越多的人所喜爱。不久以前,我因为无聊,也就拿了一个魔方来,准备学习学习。(其实是因为同学说,许许多多数学牛人魔方都玩得很好,所以就虚荣心作祟了)然后又有一个同学和我说:“玩魔方没有意思,一看到魔方我就想起小学那些奥赛题了。”其实在研究了之后,我不认同这一点,我认为魔方作为一个特殊的代数结构,还是有其相当大的存在价值和研究价值的。这篇文章主要是由一些魔方的入门知识(科普版)和数学原理(数学版)组成的。科普版主要写魔方的基本知识,以及其玩法,启发公式的重要性。数学版主要是对魔方的数学原理进行探究,其中包含群论的一些内容。
科普版:
魔方(Rubik’s Cube)是匈牙利布达佩斯建筑学院鲁比克教授在1974年发明的。他发明魔方的目的是考察建筑学院学生的空间建构能力。具体地说,魔方由26块组成,具有12个棱块,8个角块,6个中心块组成,魔方中心那一块是中空的。同时6个中心块是无法移动的。那么,其实,一个魔方只有12个棱块,8个角块可以移动。(其实,拆过魔方的人都清楚,我就是一个拆魔方狂热分子。。。)。转动魔方只有一种操作,那就是,将一个面顺时针转90度。其他所有操作,都是这个操作复合而成的。那么,这一个操作,可以将魔方变出多少种不同的状态呢?答案是4.3*10^19。如此复杂的一个状态集合,也难怪大家难以把一个魔方复原了。
我佩服那些没有通过学习魔方玩法而自己把魔方复原出来的人。我自己就没有,(其实是我一位同学太坏了!他把我的魔方拆下来,又装上,于是那个是一个永不可复原的魔方,害得我后来白弄了半个月,只复原成只有一个角块不对,当然我也感谢这位同学,他让我思考了到底把魔方拆了再拼上,是一个正确魔方的概率有多大,详见数学版)这些没有自己把魔方复原的人大都付出了大量的努力。我非常敬佩这些人的毅力。正是他们,发现了一个又一个的魔方公式,才使我们还原魔方的速度变得越来越快。
下面介绍一下魔方的玩法,当然我参考了网上,如(http://www.100bk.com/blog/post/185.html)在介绍里面,我要写些知识,为下面作铺垫。
普通玩法,也就是各种爱好者啦,他们满足于复原一个魔方,而不作更高的要求。
竞速玩法,为了追求更高的速度的玩法,这些复原方法是万能方法,而且他们运用的是复原方法中比较快的一种。我在这里写几种复原方法:
1. 层进法(入门方法):将魔方的一层一层进行还原,每一层进行还原,最后复原整个魔方,这种方法如果有一个好魔方1min之内可以轻松完成。
2. CFOP法(主流方法):分为4步完成,C=cross(底层十字)F=first 2 layers(前两层)O=orient last layer(顶层定位)P=position last layer(顶层定向)。这个方法可以在30S内轻松完成。
更多的可以在下面这个网址看到
http://zhidao.baidu.com/question/97254469.html?fr=qrl&fr2=query
这些方法大都和CFOP方法属于一个系统的。一般只是稍微的改变一下。
时间上的节省是用记忆力换得的,层进法只需要记忆不过20种情况,不到10个公式即可,而CFOP法则需要记忆上百种情况,及其所对应公式。所以为了比别人快,记忆很多东西是不可避免的。层进法需要大约120步,而CFOP法需要大约60步。关于群论上理论证明,复原任意一个魔方,只需要最多26步(这个界不是紧的),那么我们可以设想,如果一个人大脑有足够的容量,记忆足够多的公式,那最多26步就可以完成了,肯定是一个创造吉尼斯纪录的成绩。不过,我觉得,比速度。。至少对于我来说,记忆不了那么多吧。所以这种玩法其实是记忆公式。
盲拧:蒙着眼睛把一个魔方复原,是不是一件很神奇的事情呢?如果按照CFOP法,这可不可能呢?答案是否定的,从盲拧和正常拧的世界纪录就可以看出它们用的方法不是一种,至今没有一个人成为这样的记忆奇才。因为百余种情况不是闹着玩的,而且每完成一步以后需要观察再进行下一步,蒙着眼睛是做不到的。这就需要一个神奇的公式–三轮换公式,通过这个公式,不仅仅使我们变换的块数最少,而且还减小了它们之间的相互影响,这也使盲拧变成了一种可能。只需要记住4个公式就可以完成。当然同时,更让人头疼的可能是记住20块的位置朝向了。所以说,盲拧与其说是神奇,倒不如说是记忆位置。这个在CCTV科学探索中播出过。
最小步数复原:这个很NB。。应该是通过记公式算公式吧,我不太了解原理了。就把记录写在这里。。。目前的世界纪录是28步还原,耗时2个半小时。
还有单拧(单手拧)脚拧。。。当然我认为这些是无聊的。。
数学版:
在http://bbs.mf8.com.cn/archiver/?tid-12822.html中,曾经有个人发表了一个一篇关于三轮换的文章,结果。。有人钦佩,有人讽刺,只有极少数的人和作者进行了讨论。魔友大部分只是记住公式,其实也不用知道原理。他们也许是对的,不过,我在这里说一句,我觉得中国对于数学至少是不重视的,数学只是作为一种升学手段应用于应试教育中。尤其是奥数,其实数学当中哪里有那么多的技巧??奥数中绝大部分的题目来源于同年龄段更高等的数学之中。很多人都说奥数题又偏又难,为什么,因为他们没有学过相关知识而去做题,不习惯那些思考方式,怎么会不觉得难?为什么陶哲轩12岁拿到奥数金牌并且成为数学大师而中国本土出了那么多奥数金牌却都平平庸庸?因为陶哲轩不是做题做出来的,他在12岁前就把微积分学完了而且学得很好。再者中国为什么那么多人痛恨数学?做题做的。数学是很直观的东西,每一个概念都对应一个直观,从生活中抽象出来,只要用心看就有收获。
唉。。不说了,言归正传,首先我们要解决一个问题,如何将魔方群表示,参见http://qzc.zgz.cn/Y-mofang4.htm,下面将部分引用
符号:u=upper, f=front, b=back, r=right, d=down, l=left
我们将魔方面对右面(r面),看到右面一层如下左图,转动Y3后如右图,就可得出各块的变动。


类似分析Z3,


二者复合为

其中对角方块,右上角的正号表示此块顺时针转2π/3 ,负号表示反时针转。对棱方块表示有一个方向的翻转。 上面分析说明,经过Y3,Z3两个转动,上右前角块回到原地,但顺时针转了2π/3 。还有5个角方块做了一个轮换,各反时针转了2π/3 ,或说顺时针转了4π/3 。7个棱方块做了一个轮换。
可以看出这是一个置换群,它是全部状态的一个子群,但它不是一个普通的20阶群,因为其棱块角块的朝向问题,魔方的群结构比一般的20阶群更复杂。而且它有另一个特点—更为特殊。
特殊之处在于两个三轮换公式(分别是对棱块,角块),这个公式我首先是直观认识到的,是我在学习层进法中众多公式的一个,它的意义在于我们可以把3个棱块(角块)互换,相当于(123)->(231),而且在确定位置的情况下,这3块的朝向是确定的。我本来没有打算去证明这个结论,因为我们线性代数老师说过:“如果你不信这件事情的话,亲自去做做不就行了。”不过后来我看到了http://bbs.mf8.com.cn/archiver/?tid-12822-page-1.html,觉得这个人好委屈,证明了三轮换公式的存在性还被人奚落,于是想帮他解释一下。(下面我沿用抽象代数中的符号)
我们证明对于棱块的三轮换公式是存在的。设想有两个轮换t1, t2, 它们分别代表一个对于魔方的置换。这两个轮换有一个特点,他们变换了一个相同的棱块记为a,t1中a1->a,t2中b1->a,下面我们做一个共轭变换t=(t1′)(t2)(t1),t是什么呢?t是一个近似t2的变换,只不过t1的a1变到t2的“轨道”里去了,而a还在原来的位置,下面我们做(t2′)(t),就有a1,a,b1互换位置。
我们有图解如下:

3-cycle proof
对棱块进行说明,记6个棱块,123456,首先我们能找到两个三轮换(123),(345),我们作一个共轭变换(345)(123)(345)’=(124),这样我们就从一个三轮换推到了另一个三轮换。我们再找一个关于6的棱块,把(124)共轭成(164),这样,164三个棱块都是任选的了,证毕。
然后我们利用上面的结果,把角块和棱块分开考虑。对于棱块,全部正确是一种情况,如果我们把一块棱块朝向改变,其余都正确,是不可复原的。而这一个棱块可以在任意位置,它们都在一个轨道内(这个用任意三轮换公式可以证明)。还有一种是两个棱块调换位置,注意调换位置之后再改变朝向也是可以化到这种情况里的,而3个棱块及以上的调换,都可以用三轮换公式约简到2个棱块及以下的调换。所以对于棱块来说,只有3种情况。同样,由于角块多了一种朝向,所以是4种,那么,我们一共有3*4=12个轨道。
其实我有更深的思考,魔方只是群论中的一个具体例子,但它已经如此繁复,有限群的研究不是那么简单的事情。而23步就一定能复原一个魔方给了计算机科学更大的挑战。如何搜索,能不能出现更新的技术都是小魔方能引入的大问题。实际上,把魔方用群的语言表示出来,最后找到复原解,是一个纯粹符号的计算,它只涉及到置换群的乘法,要找到复原魔法的最小步骤解,只需把分解成最少次乘法。研究这个搜索技术应该对研究置换群的运算是有很大好处的。