魔方吧·中文魔方俱乐部
标题: 魔方漫谈(一) [打印本页]
作者: 偶尔路过 时间: 2004-6-17 23:09:46 标题: 魔方漫谈(一)
声明,所有的有关算法大部分是自己在二十多年前总结的。自己现在人在国外,手稿交给国内的朋友。完全凭记忆写的。若有错误,请多包涵。主要想抛砖引玉。另外本人用的是拼音输入,如果发现错别字那全是拼音惹得祸。如果有人要转贴,请将此段也一起转贴。除非说明,默认的魔方是3X3X3的。
作者: 偶尔路过 时间: 2004-6-17 23:10:41
曾几何时,魔方风靡神州大陆。但是后来慢慢消声匿迹。直到最近发现还有一帮发烧友在此。实在是“魔” 业之幸事。不过魔方应该在普及中提高。我想这个“魔方吧” 应该发挥它的作用。
许多人买了魔方后,按图索骥,将魔方复原了。然后一算时间,还不错。有的三分钟,有的五分钟。当年报纸说如果在三分钟之内复原绝对是高手。於是就以高手自居。然后是魔方上落了一层厚厚的灰。然后就嫌放在家里碍眼。因为如果朋友到家里来看到魔方不免要“高手” 表演一番。此时“高手” 已非“高手” 也。连复原也不可能了吧。
作者: 偶尔路过 时间: 2004-6-17 23:11:17
其实魔方的媚力在其变化无穷。它可以改变你看问题的方法。
举例说明。
1.魔方是一个离散的有限空间。它的状态数是一个定数。我们生活的地球是一个有限空间。
2.魔方的任意一个状态都可以是起始状态。如果你在任意装态下,讲所有色片那掉,重新贴六面就理解了。我们每个人住的家就是地球上的一点。对你来说这个就是起点。
3.魔方的复原就是回到起点。不论你离开起点有多远。你一定能够会到你的家,不论你离开家有多远。
4.复原是你一定现复原某一个部分。然后才复原全部。除非你用软件找到的最短算法。回家是你一定先到你经常经过的十字路口。如果坐飞机,你一定要经过几个机场。
类似的类比还可以举出很多。大家自己发挥想象吧。
作者: 偶尔路过 时间: 2004-6-17 23:11:57
谈到魔方的普及,我们应该将魔方讲的浅显易懂。如果列一大堆数学公式一定要确认读者能看得懂。魔方是一个将枯燥的数学公式变得浅显易懂的工具,不是将数学神秘华的工具。
我也来试试。如果大家觉得不懂那是我的问题。
先来说一些定义:
算子:魔方的任意转的组合。比如,R,RL,RU。
交换:任意两个角块或边块的的对掉。
置换:三个或以上形如A->B->C->A.
逆: 将一个算子完全抵消的另一算子。这个概念很重要。
如。 R 的逆为。R’。 (注意R’其实就是R3,如果你用老猫的JAVA就请做如此转换) 。RL 的逆为 L ‘R’. 逆的特点是如果你将算子A 的逆并列写在算子 A 后面每一项都抵消了。AA’.
我们来看一个三个角置换的算子:LU’R’UL’U’RU。它的逆就是U’R’ULU’RUL’。
写逆的诀窍是从算子A的右到左每一项的逆从左到右写出来。
镜像:又称对称。以左右镜像为例。L的镜像为R’. U->U’. F->F’以此类推。
要上班了先写到这里。
作者: 偶尔路过 时间: 2004-6-18 03:44:37
有人问,知道这些定义有什么用?
有人玩魔方的目的是为每一种状态找到最短的算法。我想这个工作其实可以交给计算机来做。况且对一般玩魔方的朋友帮助不大。
另外有一些人的目的是找到相对简单易记得方法。而本文就是为这些人写的。用此文之方法,也可以解决其它的类似魔方的游戏。4x4x4 和5x5x5 可以用这些理论来解决。
来看看逆和镜像的应用。
例一:
算子:R'U'RU'R'U2RU2
它的作用是将三个角块钮转。有的小册子就给出图示,当为某一情况时用两次该算子。其实你可以用逆和镜像来解决这个问题。
请在一个复原的魔方上执行上述算子。如果你走三次,魔方又复原了。我们称该算子的循环数为三。(顺便说一下,任意算子都能够循环。不过一般的算子循环数较长没有实际意义。请试试RU的循环数位多少?)
在这个状态下如果用逆就可以复原了。U2R'U2RUR'UR.
在这个状态下如果你只要复原三个角,可以用镜像的方法。将三个角放在合适的位置。LUL'ULU2L'U2。有时我称第一个算子为右算子。这个为左算子。
这个镜像当然也有逆。
至此,对三个角的扭转你已经有四个算子了。怎样应用呢?我们在操作某一步是一定有你最舒服和你最讨厌的状态。如你用一层一层法时就最讨厌四个角全部不在上面的时候。当然你最舒服是四个角已经对位。同样,当四个角对位后你最不舒服的是四个边块都不对位。最舒服是四个边块已经对位。从已有的算子中找到一个是你下一步尽可能舒服是完全做的到的。而且完全没有代价。你所要记忆的算子基本没有增加。
作者: 偶尔路过 时间: 2004-6-18 10:21:56
下面来谈谈共扼。共扼是魔方里非常(可以说最) 有力的工具。
共扼:类似 ABA'的算子。
这里B是基本算子。它应该尽可能的简单同事对其它的块有最小的影响。A'是A的逆。
例二:
三个角的置换。LU'R'UL'U'RU 为基本算子B。 A 用BL。 A'为L'B'
这样的共扼是 BL LU'R'UL'U'RU L'B' 可以简化为BL2LU'R'UL'U'RU L'B'。现在你看到了什么。他仍然是三个角的置换。我们当然可以用 Cube Explorer算出更短的算子达到同样的目的,但是这个容易记得多。
如果同样的基本算子我用R' 作为A。 R做A'
R' LU'R'UL'U'RU R又是另外的一个变化。
例三:我们有一个将两个相邻的角扭转。
R'U'RU'R'U2R LUL'ULU2L'。这个基本算子由两个互为镜像的算子组成。R'U'RU'R'U2R 和LUL'ULU2L'。现在我们要做一个斜对角的角的扭转(参见宇宙飞碟的征解对角还原最少步) 。用共扼可以得到如下 (A为B2)
B2R'U'RU'R'U2RLUL'ULU2L'B2。当然这个不是最短的路径。
作者: cube_master 时间: 2004-6-18 10:31:55
说得对,这也是我常用的思路!
作者: 宇宙飞碟 时间: 2004-6-18 11:32:39 标题: 拿到新魔方,发贴以示庆贺
Very good!
我想如果借用 老猫的编辑程序网页:http://www.rubiks.cn/java/ 表示一下会更形象直观的!这还要感谢老猫为大家提供了方便呀!
[此贴子已经被作者于6/18/2004 3:30:13 AM编辑过]
作者: 偶尔路过 时间: 2004-6-18 11:43:20
我试了一下。不会用而且有的是在上班时打的。老猫的程序实在是太好了。有4X4X4的吗?我想讲一下3X3X3和4X4X4的类比。如果有空我会将例子用老猫的程序从新写一下。那位有兴趣也可以帮忙贴一下。[em04]
作者: 老猫 时间: 2004-6-18 12:27:03 标题: 这玩意啥玩?
以下是引用宇宙飞碟在6/18/2004 11:32:39 AM的发言:
Very good!
我想如果借用 老猫的编辑程序网页:http://www.rubiks.cn/java/ 表示一下会更形象直观的!这还要感谢老猫为大家提供了方便呀!
R'U'RU'R'U2RU2
R'U'RU'R'U2RU2R'U'RU'R'U2RU2R'U'RU'R'U2RU2
作者: 老猫 时间: 2004-6-18 12:30:23 标题: 九连环的解法
晕死,宇宙飞碟,你怎么还不会呀?
以下是引用偶尔路过在6/18/2004 11:43:20 AM的发言:
我试了一下。不会用而且有的是在上班时打的。老猫的程序实在是太好了。有4X4X4的吗?我想讲一下3X3X3和4X4X4的类比。如果有空我会将例子用老猫的程序从新写一下。那位有兴趣也可以帮忙贴一下。[em04]
有 4×4×4 的呀。 http://www.rubiks.cn/java 这里有 2×2×2,3×3×3,4×4×4,Lrubik(3×3×3)
作者: 宇宙飞碟 时间: 2004-6-18 14:31:46
实在抱歉!没想到又会出错!改好了![em07]
作者: sxm 时间: 2004-6-18 21:35:48
写的好,这样的帖子我喜欢,
作者: 偶尔路过 时间: 2004-6-19 08:04:27
例一的左右算子。感谢老猫的程序。
R3U3RU3R3U2RU2
L1U1L3U1L1U2L3U1
作者: bj2008 时间: 2004-7-3 14:45:03
老师好,好久不见。前几天不知道这儿还有这个免费空间的链接,从网易一直进不来,快把我急死了。最近怎么没有新的东西写啊?4x4x4玩得怎么样了?需要帮忙找我啊!不过我最近不是很空,如果不着急的话还可以。上次你给我帮忙正愁无以回报呢。
老师的例一左右算子:
R3U3RU3R3U2RU2
[此贴子已经被作者于7/3/2004 4:38:43 AM编辑过]
作者: 令狐扯 时间: 2004-10-25 13:15:00
顶!
作者: wzm4970 时间: 2008-12-5 22:07:17
这么早的文章,写得不错,顶
作者: hack 时间: 2008-12-5 22:17:54
好帖,老帖。好老的贴。呵呵
作者: 王子 时间: 2008-12-5 22:28:02
远古时代的帖子啊,顶啊。。。。。。
欢迎光临 魔方吧·中文魔方俱乐部 (http://bbs.mf8-china.com/) |
Powered by Discuz! X2 |