Skip to content

May 16, 2009

14

关于魔方的几个证明

最近买了个魔方在家玩,然后在魔方小站上面学习了一下上面的教程,终于能在5分钟之内复原魔方了!当然这和高手几秒钟就能复原还完全不是一个数量级的,但是对于一个像我这样在几天前还只能对着乱七八糟的色块一筹莫展的人来说,已经是一个非常令人激动的事了!

关于魔方有很多有意思的数学问题,这里贴出来3个证明题供大家娱乐:

1.在不拆卸魔方的情况下,不能单独翻转一个棱色块。

2.在不拆卸魔方的情况下,不能单独翻转一个角色块。

3.在不拆卸魔方的情况下,不能只对调一对色块。

 

 

 

 

 

证明:

第一个道理:为什么不能单独翻转一个棱色块。

想象我们对6个中心色块定好了我们喜爱的方向,我们就定好了一个坐标系,这个坐标系的原点就是魔方的体中心。坐标有明确的正负方向。我们可以看见魔方的每一个棱色块都是有一条棱的(这不废话么,呵呵),对应于 水平、前后、竖直x,y,z三个轴,分别有4条棱和他们每一个平行,我们把这4条棱都标上一个箭头,指向正的方向。现在如果你有一个魔方可以这样做一下。我们现在想象空间中有了这样一个坐标系,和12个箭头。考虑任意面的旋转,(我这里不考虑3个中面的旋转,(因为,1,这样动了坐标系,2,中面的旋转可以等效两个侧面的旋转。),这时我们不考虑魔方,和魔方的花色,把他看成透明的,我们只考虑箭头,每次任意面旋转90度,我们都会让2个箭头改变方向(由正变负),我们只看结果,不考虑转的过程,不区分箭头哪来的。 翻转一个面90度是魔方的原子操作,他只能同时改变2个箭头的方向。所以我们最后不可能得到其他块不变只有1个箭头被翻转,也就是不可能只有一个棱色块被翻转。

第二个道理:为什么不能单独翻转一个角色块。

这个问题说起来,首先需要澄清角色块的方向是如何定义的。因为角色块会处在8个不同的位置,他的方向却只有3种,我怎么定义一个移动的坐标,又能准确标示出这3种方向变化呢? 我这里建议一种: 首先让你的视线穿过一个角色块的顶点和整个魔方的体中心,你会看到一个Y是不是?以你的视线为轴,这个角色块可以旋转,他有3个位置。如下:

120° 240°

试试转一个侧面,看看色块在新的位置朝向是怎样的?如果你转一个魔方的右侧面90度,你会发现最靠近你眼睛的那个角色块的朝向转过了120度。盯住这个色块,再转一下,他转到下面来了,为了仍然呈现一个Y,我们这时可以将 魔方底面翻上来,这时我们发现这个角色块又转回了0如此等等。重点是,你观察任何一面的90度旋转,4个角色块,他们的朝向 旋转过的角度总和 一定是360度的整数倍 ,准确的说就是120+240+240+120。 因为,转一个面是最小的原子操作,所以无论经过怎样多少步的操作,我们所有角色块角度变化和都是360*n,所以我们不可能只将一个色块旋转120度或者240,而让其他色块不变化,也因此我们证明了为什么不能单独翻转一个角色块。

第三个道理:为什么不能只对调一对色块。

首先我们考虑1234四个数的排列问题。1234变成4123,是所有数向右推移一位的变换。大家联想一下魔方,每转一个面90度,4个角,4个棱都是这种变换是吧。

1234变4123 我以后简称(1234),其实也好记,就是1 to 2,2 to 3, 3 to 4,4 to 1, 要是(1432)就是1到4,4到3,3到2,2到1,就是向左推移。

(1234)是由几个“交换两个数”的变换组成的呢。这里直接给出答案(1234)=(12)(13)(14),(12)的意思就是1到2,2到1。

具体说,我们看 1234变化的过程是这样:

  • (12) 2134

  • (13) 3124

  • (14) 4123

正好就是变换(1234)。 这样我们知道(1234)是经过奇数个交换得到的。

任何一个变换都可以由若干个两两交换得到。因为对于一个目标排列如2413,我怎么做呢, 这里面内在的道理就涉及群论的初步。这可能叫做循环群,我不确定,因为我没看过书。 1234全排列有4!=24个,而对1234的变换也有24种。他们构成一个群。

什么是群?

一个群就是有一堆元素。我们还需要一个运算 “*”。 他们满足:

  1. 封闭性:a和b是群里的元素,那么a*b也是。
  2. 存在元素e(其实就是类比乘法里的1)。a*e=e*a=a
  3. 每个元素a 都有唯一逆元a-1, a*a-1=a-1*a=e
  4. 结合律 (a*b)*c=a*(b*c)

好像很boring,我每次看都觉得,但是今天自己写一遍就不觉得。这里面,我是说这件bo不boring的事里面是有道理的。 需要指出的是通常群并不满足交换律。满足交换律的叫做abel群(等于什么都没说)。 为啥我说对1234的24个变换构成一个群呢。 我说的24个变换就是对应了1234的24种排列,每个变换就是把1234变到其中的一种排列所使用的变换。 对于这些变换的运算“*”就是做变换的先后顺序,a*b就是先做a再做b。

  • 首先1234是一个排列,他对应了一种变换,就是不变,我用(1)来表示,他就是满足定义第二条的元素e。
  • 封闭性,这是显然的,因为只有24种排列,和对应的变换,跑不出去。
  • 逆元都是有的,就是把每步逆序然后取反,肯定都在这24个变换当中。
  • 结合律看似挺麻烦,其实是显然的,因为(a*b)*c,a*(b*c)的意思都是先a再b再c。 这样他们构成了一个群,

so what?其实我现在也不好说构成了一个群就怎么样。我只是说我可以用群的一些性质。知道这个结构的一些特点了。也可以用分析群的一些视角,一些想法来分析这个系统。 首先我们看这24个变换。

  • (1), 偶
  • (12), (13), (14), (23), (24), (34), 奇
  • (123),(132), (124),(142),(134),(143),(234),(243)偶

这是15个,还剩9个,如果不明白什么意思,看前面,我说一个(243)意思是2到4,4到3,3到2,他把1234的1不动,234三个数字轮换的向左推移一位变成1342。 还有显然的

  • (1234),(1432),奇
  • (14)(23), (13)(24),(12)(34)偶

还剩4个 他们是

  • (13)(12)(24), (12)(14)(13), (14)(23)(12), (13)(24)(12) 奇

我们叫有奇数个 两两交换 组成的变换为奇变换,反之为偶变换,其实就是把群元素标出奇偶性。 我们看到两个奇变换运算得到偶变换,而两个偶变换运算永远得不到奇数变换。

这样偶变换事实上构成了一个子群。 也就是说他们做运算是封闭的。他们是

  • (1), 偶
  • (123),(132), (124),(142),(134),(143),(234),(243)偶
  • (14)(23), (13)(24),(12)(34)偶

这12个元素构成了一个子群。 我好像想错了一些事情,呵呵。 不过前面写出的都是正确的。我可能以后会用到 回到为什么不能只对调一对色块。

为什么?因为一个原子操作,将一个面旋转90度,将4个角做了(1234)或(1432)是一个3个交换的奇变换,4个棱同样是3个交换的奇变换,这样他对所有的色块做的变换总的效果是一个偶变换。 所以对于所有色块的排列,我们能够达成的都是偶变换,而只对调一对色块是一个奇变换。不可能达成。 因此,我们证明了为什么不能只对调一对色块。

以上证明转载自魔方小站

无觅相关文章插件,快速提升流量

  • xinyu

    能一分钟还原的路过......

  • http://www.eaglefantasy.cn Eagle Fantasy

    哇塞 太牛了 你是不是背过所谓的高级教程了
    我对高级教程望而却步...

  • Kael

    把魔方拆下来重装的路过..

  • http://www.eaglefantasy.cn Eagle Fantasy

    汗...
    我小时候就有一个魔方,结果我按照教程拼怎么也拼不好,后来我终于隐约记得很久很久以前我貌似就给拆了重装过一次...

  • http://blog.programet.cn 严酷的魔王

    群论!

  • http://www.eaglefantasy.cn Eagle Fantasy

    嗯这是我第一次见到用群论的证明...

  • http://hi.baidu.com/lancelhh looby

    用魔方小站层先初级算法40秒还原的路过

  • http://hi.baidu.com/lancelhh looby

    用魔方小站层先初级算法40秒还原的路过

  • http://www.eaglefantasy.cn Eagle Fantasy

    哇塞 初级算法也能40秒 强人啊

  • http://pinkid.blogbus.com pinkid

    鄙视背公式的路过

  • edwo

    优雅的证明..

    恩..初级公式是完全可以进sub50的..

  • http://xdcube.jimdo.com dkjiaoyang

    30秒搞定的路过……不懂群论,但知道这几个定理。

  • Cielo

    哈哈,当年为魔方小站的这个证明提过建议~

  • Gongyuan94

    曾经25s的路过,现在不行了,但手熟尔.