魔方吧·中文魔方俱乐部

 找回密码
 注册
搜索
热搜: 魔方
查看: 16585843|回复: 78
打印 上一主题 下一主题

[原创]魔方循环变换理论概述 (待完善) [复制链接]

Rank: 8Rank: 8

积分
4787
帖子
1876
精华
12
UID
93
性别

魔方理论探索者 十年元老

跳转到指定楼层
1#
发表于 2004-6-3 14:33:33 |显示全部楼层 |倒序浏览

魔方循环变换理论概述(待完善)

一、魔方循环变换的定义:

1.先给出几个记号:

在本理论中,统一规定:
小写字母表示步长为 1 的变换;
大写字母表示由步长为 1 的变换构成的变换。

对于变换 A ,若它的积为单位元,则记为: A = 1 ;

对于变换 A ,
length(A) 表示变换 A 的长度;
half(A) 表示 length(A) 的一半并取整;
例如: A = a1 a2 a3 a4 a5 a6 ;
length(A) = 6 , half(A) = 3 。
又如: A = a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11;
length(A) = 11 , half(A) = 5 。

对于变换 A ,
circle0(A) 表示变换 A 的首尾相连的旋转变换,旋转方向
继承变换 A 的方向;
注意:变换 circle0(A) 是没有首尾的,但却是有方向的。
如:circle0(a1 a2 a3) 与 circle0(a3 a2 a1) 是反方向。
any(A,n) 表示变换 A 的任意一个相连的长度为 n 的子变换;


2.魔方循环变换的定义:
对于有效变换 A ,如果 A = 1 ,并且 any(circle0(A),half(A))
最少步变换,则称变换 A 为循环变换。记作:
循环变换 A 或 circle(A)

二、魔方循环变换的例子:
这里以正六面体三阶魔方为例说明:
由魔方循环变换定义得:宇宙飞碟所举的 [长度为 四 的循环变换] 、
[长度为 八 的循环变换] 、[长度为 十二 的循环变换] 、[长度为 十四
的循环变换] 、 [长度为 十六 的循环变换] 均为正确循环变换的例子。
但宇宙飞碟昨天举的 [长度为 210 的循环变换] 、 [长度为 126
的循环变换] 是错的,是他和大家开玩笑呢。

对于一般的魔方,设它的 [最少步最长的变换] 的长度为 x ,那么
它的循环变换长度最长不过为 2*x+1 。对于正六面体三阶魔方,虽然我还
不清楚它的 [最少步最长的变换] 的长度为多少,但肯定不会超过 30 ,
它的循环变换长度必然小于 61 。因此对于正六面体三阶魔方,宇宙飞碟
昨天的 [长度为 210 的循环变换] 、[长度为 126 的循环变换] 是错的。
不过如果作为不严谨的理解,可以另外再定义一个广义循环变换,
不妨称上面的“魔方循环变换的定义”为狭义循环变换。这样宇宙飞碟
昨天举的 [长度为 210 的循环变换] 、 [长度为 126 的循环变换] 是
两个广义循环变换。

明天再为大家证明 [循环变换] 的首尾无关性!例如:若变换 a1 a2 a3 为
循环变换,则变换 a1 a2 a3 与 a2 a3 a1 和 a3 a1 a2 为同一个循环变换。




[此贴子已经被作者于2006-4-1 14:35:26编辑过]

~~ 宇宙在旋转运动 ~~ 魔方在循环变换 ~~

Rank: 8Rank: 8

积分
4787
帖子
1876
精华
12
UID
93
性别

魔方理论探索者 十年元老

2#
发表于 2004-6-4 08:46:09 |显示全部楼层
本帖最后由 ggglgq 于 2013-10-2 18:52 编辑

  
  
三、同一变换的定义:
      同一变换的定义:若两个变换 A 、B 满足: AB=BA,则称 A 与 B 可交换,并且规定 AB 与 BA 是同一变换。
      由同一变换的定义得:若变换 A = a1 a2 a3 ... ax 为循环变换,那么
           a1 a2 a3 ... ax = 1
      所以
           a1 (a2 a3 ... ax) = (a2 a3 ... ax) a1 = 1
      因此 a1 (a2 a3 ... ax) 与 (a2 a3 ... ax) a1 是同一变换。
      故
          a1 a2 a3 ... ax  与 a2 a3 ... ax a1 是同一变换。
      又由变换 A = a1 a2 a3 ... ax 为循环变换,所以
        any(circle0(A),half(A)) 都是最少步变换,故
        a1 a2 a3 ... ax 与 a2 a3 ... ax a1 是同一循环变换。

        同理可得: a2 a3 ... ax a1 与 a3 ... ax a1 a2 是同一循环变换。
          .......................................
          .......................................
          .......................................
       这样我们就证明了 [循环变换] 的首尾无关性!即:
           A = a1 a2 a3 ... a(x-1) ax 为循环变换,那么所有
                 a1 a2 a3 ... a(x-1) ax
                 a2 a3 ... a(x-1) ax a1
                 a3 ... a(x-1) ax a1 a2
                   ................
                 ax a1 a2 a3 ... a(x-1)
          都为同一循环变换。因此在前面的循环变换定义中,把它们统一记作:
                    循环变换 A 或 circle(A)

四、创建《魔方循环变换理论》的意义,即循环变换理论的用途:
       1.帮我们找到魔方任意一个变换的最少步变换;
       2.帮我们找到魔方最少步最长的变换;
       3.魔方中心粒最少步变换的解决;
       4.利用计算机找出某种魔方所有循环变换的[集合];
       5.利用 4. 的[集合]解决该魔方的上述 1. 2. 3. 的最少步变换问题。

五、利用计算机找出某种魔方所有循环变换的[集合]:
        想要“利用计算机找出某种魔方所有循环变换的[集合]”应该是这一
理论的最精彩的部分,因为随着 [循环变换 A] 的长度的增大,一个这样
的变换就代表 any(circle(A),n) [ n<=half(A) ] 的所有最少步变换,
它的利用效率是相当的。


        愿对计算机编程感兴趣的魔方爱好者,能注意如何“利用计算机找出
某种魔方所有循环变换的[集合]”来为我们编程服务。同时欢迎大家一起
研究探讨、补充完善魔方循环变换这一理论,使之有更广泛的应用。


        因最近很忙,今后不能天天泡网,只能零星来几次,愿大家能谅解。
若有建议,可以直接回帖提出,或给我发 Email 联系: ggglgq@sina.com 

~~ 宇宙在旋转运动 ~~ 魔方在循环变换 ~~

使用道具 举报

Rank: 8Rank: 8

积分
4787
帖子
1876
精华
12
UID
93
性别

魔方理论探索者 十年元老

3#
发表于 2004-6-4 18:33:44 |显示全部楼层

我想不能单纯用 “循环变换至少需要多少步?” 来回答,因为: 对于一般的魔方,设它的 [最少步最长的变换] 的长度为 x ,那么 它的每一个循环变换的长度都不会超过 2*x+1 。但我们不能由一个像这样的 长度为 2*x+1 的循环变换得到魔方的所有最少步变换。 例如:x = 3 是某一魔方的 [最少步最长的变换] 的长度。 a1 a2 a3 b1 b2 b3 为它的一个循环变换, 那么它只能代替 a1、a2、a3、b1、b2、b3 a1 a2、a2 a3、a3 b1、b1 b2、b2 b3、b3 a1 a1 a2 a3、a2 a3 b1、a3 b1 b2、b1 b2 b3、b2 b3 a1、b3 a1 a2 共十八个最少步变换。 [ 注意:长度为 4、5、6 的变换不是最少步变换。如 a1 a2 a3 b1 不是最少步变换,因为 a1 a2 a3 b1 = -b3 -b2 , 其中 -b3、-b2 分别 表示 b3、b2 的逆变换] 但它却不能代替这种魔方的所有最少步变换。

比如开发正六面体三阶魔方最少步软件 Cube 的作者 H.Kociemba 采用 The Two-Phase Algorithm 算法求解时,特别制作了一个大小是 1G 左右的“表”,便于求解时计算和查表。 对于正六面体三阶魔方,虽然我还不清楚它的 [最少步最长的变换] 的长度为多少,但肯定不会超过 30 ,它的循环变换长度必然小于 61 。 利用《魔方循环变换理论》制作所有循环变换的 [集合],这个 [集合] 的 大小估计小于 H.Kociemba 制作的大小是 1G 左右的“表”。 [ 注:现在我还没有着手研究这一问题,准备在制作 {所有循环变换的 [集合]} 时,还要尽可能采用旋转、对称等技巧,使任何一个循环变换能 代替 {各种和它旋转、对称后都相同的循环变换},这样制作出来的 {所有 循环变换的 [集合]} 才能更小,利用效率更高。]

[此贴子已经被作者于2005-5-8 18:12:07编辑过]

~~ 宇宙在旋转运动 ~~ 魔方在循环变换 ~~

使用道具 举报

Rank: 8Rank: 8

积分
4787
帖子
1876
精华
12
UID
93
性别

魔方理论探索者 十年元老

4#
发表于 2004-6-9 09:08:42 |显示全部楼层

非常欢迎 notabdc 能参与 《魔方循环变换理论》 的探讨,我们共同 完善《魔方循环变换理论》,弥补《魔方循环变换理论》存在的不足。 “notabdc”,如果我没猜错的话,你应该就是“葛永”,这是我们第 二轮打交道了,希望能合作愉快!

我想对于《魔方循环变换理论》有几点需要说明的: A.如果有些概念可以直接从字面上理解的话,我想应该是不用定义的, 有的举例说明一下就可以了。当然如果这个概念会产生异议,我们就必须来 限定它的外延及内涵。因为我并不打算把我的这个理论搞得概念太多而影响 大家的理解,只想让最初接触它的人感觉它容易接受,而不象纯“魔方群” 那样让人感到恐惧。 B.因本人不会玩魔方,也没有时间玩,只是对“魔方群”比较感兴趣, 突发《魔方循环变换理论》的想法,目的就是想借助这一理论,编程实现计 算机最少步还原魔方。对于很多魔方术语还不了解,可能有说的不对的地方 希望大家及时批评指正,谢谢。

下面就以下几方面与 notabdc 探讨: 1.对于 [把“变换 A”改称为“变换序列 A”]的问题,我在一开始就说明: [ 在本理论中,统一规定: 小写字母表示步长为 1 的变换; 大写字母表示由步长为 1 的变换构成的变换。] 因此,加上“序列”好象意义不大,再说序列好象不太具备“旋转”的特点。 不知大家对此有何看法,该如何处理这个基本概念呢? 2.你给出的 [circle0(A)的概念] 及 “ circle(A) 首尾无关性” 的描述 基本表现了我的意思。我对于你严谨的态度表示赞赏。 3.“有效变换”的严格的定义,我还没有仔细想过,因为对于不同的魔方 很难给出统一的定义,比如:按钮开关可以看成最简单的魔方,设按一下为 a, 则 -a = a ,a a = 1, 单看 a a 是两次 a ,“有效”;但 a a 与 a (-a) 又是同一变换,马上就变成“无效”!因此对于“有效变换”的严格的定义, 我暂时还没想好。不知你是否能给“有效变换”下一个统一的严格的定义?

不知大家有什么其它建议,都提出来,我们共同完善《魔方循环变换理论》, 谢谢大家!

~~ 宇宙在旋转运动 ~~ 魔方在循环变换 ~~

使用道具 举报

Rank: 8Rank: 8

积分
4787
帖子
1876
精华
12
UID
93
性别

魔方理论探索者 十年元老

5#
发表于 2004-6-11 17:19:28 |显示全部楼层

从“不可写”到“大家写”

cube_master 先生不必客气!

notabdc ,请问怎么不见你网站的座上客 三阶魔方软件开发者 金优 先生、五魔方软件开发者 胡波 先生 等 来这儿坐坐呢?很想和大家一起 聊聊魔方编程的问题。

下面还是和大家谈谈有关 “循环变换 [集合] 的构造” 的问题吧:

六、(步长为偶数的)循环变换 [集合] 的构造

1.构造步长为 1 的变换 a ,设 A 为 a ,执行 5 。 2.撤消 上一步 的构造,如果所有步长为 1 的变换都已遍历,则结束 构造循环变换;否则设撤消后的变换为 A ,执行 3 。 3.在 A 的基础上构造下一个 步长加一 的有效变换 A ,执行 4; 若 构造不存在,则执行 2 。 “ 例如:此时 A 为 a b c ... d ” 4.如果 A 不是最少步,则执行 2 。 5.如果 A 不是唯一最少步,即存在另一个与 A 不同的变换 B ,使得 A = B [ B 可能不只一个,有几个就要执行几次 ] ,执行 6 ;否则执行 3 。 6.设 C 为 A (-B) [ 其中:-B 表示 B 的逐元逆变换, 如 B = a b c ,则 -B = (-c) (-b) (-a) ] , 如果 any(circle0(C),half(C)) 都是最少步变换,则 C 为一个循环 变换,执行 7 ;否则执行 3 。 7.让 循环变换 C 与前面(构造好的)那些循环变换比较是否相同,若 不相同则添加 循环变换 C 并保存这些(新构造的)循环变换;否则不保存 这个循环变换 C 。 8.执行 3 。

现在的问题是魔方最少步最长的变换的长度一般都无法确定,如果确定 某一魔方最长变换的长度为 Max ,便可在 3 判断如果 length(A) >= Max , 则执行 2 ,缩短程序运行时间。 当然,上面的步骤只是一个最简易的“循环变换 [集合] 构造”的方法, 实际应用还要对以上八步进行优化,比如判断 7 所构造的 循环变换 是否与 前面已(构造好的)循环变换在 旋转、对称 时相同,若相同则不保存这一 循环变换等。

欢迎大家在“循环变换 [集合] 的构造”的问题上进行广泛的探讨。

[此贴子已经被作者于6/17/2004 10:47:06 PM编辑过]

~~ 宇宙在旋转运动 ~~ 魔方在循环变换 ~~

使用道具 举报

Rank: 8Rank: 8

积分
4787
帖子
1876
精华
12
UID
93
性别

魔方理论探索者 十年元老

6#
发表于 2004-6-12 16:36:00 |显示全部楼层

盲拧 54 秒包括记忆

实际上昨天讲的“六、循环变换 [集合] 的构造”问题,往往不是 一个人乃至不是一台计算机在有限的时间内能完成的,即便有再精深的 理论做指导,具体到某个特定的魔方(比如:正十二面体的五魔方)它 需要成千上万的程序员以及成千上万台计算机按照统一规定的方案进行, 它的复杂度远不是求解一个特定图案的最少步所能相提并论的!它是集 所有可能的最少步于一体的“精华”!

下面简单谈谈这种“循环变换 [集合]”的作用:

七、构造 循环变换 [集合] 的意义:

如: abcdefgh abcdfijk abcdglmn abcdhopq abcdirst 均为某个特定的魔方的循环变换,那么在搜索最少步时,例如此时 已搜索完成: abcdd.......... 轮到搜索 abcde.......... 但是由 abcdefgh 是该魔方的循环变换,得到: abcde 可以被步长更小的 (-h)(-g)(-f) 所替代 那么此时就没必要搜索所有以 abcde 打头的变换了,即不必搜索 abcde.......... 同理,因 abcdfijk abcdglmn abcdhopq abcdirst 均为该魔方的循环变换,因此也不必搜索 abcdf.......... abcdg.......... abcdh.......... abcdi..........

同理也不必搜索诸如:

bcdef.......... cdfij.......... dglmn.......... opqab.......... bcdir.......... gfggs abcde.......... fmfg abcdf.......... fldsk abcdg.......... kfk abcdh.......... romfg abcdi..........

等等......

从而大大缩短了计算机的搜索时间,提高了运算效率。

这就是我创建《魔方循环变换理论》的初衷,就是我前面提到的 《魔方循环变换理论》的用途: 1.帮我们找到魔方任意一个变换的最少步变换; 2.帮我们找到魔方最少步最长的变换; 3.魔方中心粒最少步变换的解决; 4.利用计算机找出某种魔方所有循环变换的[集合]; 5.利用 4. 的[集合]解决该魔方的上述 1. 2. 3. 的最少步变换问题。

魔方的循环变换在步数较少时是可以手工加理论进行解决的: 比如:我让宇宙飞碟发表的“有关《正六面体三阶魔方的循环变换》 理论的一些命题[定理]”就详细阐述了 “正六面体三阶魔方” 任意五个 [其中任意三个相连的旋转不全相同] 的旋转都是唯一的最少步。并在此 基础上手工找出以下几种循环变换:

长度最少的循环变换 [长度为 4 ] : value="r1r1r1r1"

长度为 八 的循环变换 : value="r1l1r1l1r1l1r1l1"

长度为 十二 的循环变换 : value="b1u1b3r3u1r3f1r1f3u3r1u3"

长度为 十四 的循环变换 : value="r1f1d1f3d3r3u1r1d1f1d3f3r3u3"

长度为 十六 的循环变换 : value="f3l3f1r1f3l1f1l1u1l3u3r3u1l1u3l3"

又如,如果要构造出 正十二面体的五魔方 所有循环变换的[集合], 就必须运用计算机解决!(它的搜索量太大) 但如果我们构造出这个 正十二面体的五魔方 所有循环变换的[集合],那么求解最少步还原魔方 的问题几乎就像 “查表 [集合] 求解” 一样轻松愉快!

[此贴子已经被作者于2005-5-8 18:19:35编辑过]

~~ 宇宙在旋转运动 ~~ 魔方在循环变换 ~~

使用道具 举报

Rank: 8Rank: 8

积分
4787
帖子
1876
精华
12
UID
93
性别

魔方理论探索者 十年元老

7#
发表于 2004-6-14 08:17:27 |显示全部楼层

[分享]魔方屏保!

八、步长为奇数的循环变换 [集合] 的构造

前面的“六、循环变换 [集合] 的构造”只是针对于大多数步长为偶数的 循环变换制订的一种最简易的“循环变换 [集合] 构造”的方法,下面再介绍 一下最简易的“步长为奇数的循环变换 [集合] 的构造”的方法:

1.构造步长为 1 的变换 a ,设 A 为 a ,执行 5 。 2.撤消 上一步 的构造,如果所有步长为 1 的变换都已遍历,则结束 构造循环变换;否则设撤消后的变换为 A ,执行 3 。 3.在 A 的基础上构造下一个 步长加一 的有效变换 A ,执行 4; 若 构造不存在,则执行 2 。 “ 例如:此时 A 为 a b c ... d ” 4.如果 A 不是最少步,则执行 2 。 5.如果存在另一个变换 B ,并且 length(B) = length(A) + 1 ,使得 A = B [ B 可能不只一个,有几个就要执行几次 ] ,执行 6 ;否则执行 3 。 6.设 C 为 A (-B) [ 其中:-B 表示 B 的逐元逆变换, 如 B = a b c ,则 -B = (-c) (-b) (-a) ] , 如果 any(circle0(C),half(C)) 都是最少步变换,则 C 为一个循环 变换,执行 7 ;否则执行 3 。 7.让 循环变换 C 与前面(构造好的)那些循环变换比较是否相同,若 不相同则添加 循环变换 C 并保存这些(新构造的)循环变换;否则不保存 这个循环变换 C 。 8.执行 3 。

对比“六、循环变换 [集合] 的构造”发现,区别 仅在于 第 5 步骤, 对于“步长为偶数的循环变换”强调 [ A 不是唯一最少步 ],对于“步长为 奇数的循环变换”则强调 [ length(B) = length(A) + 1 ]。 请大家注意 这两种“强调”的含义。 我这样安排只是为了方便大家对照理解,当然我们 可以把它们合并,但那样只适合于程序运行,并不适合读者理解。

~~ 宇宙在旋转运动 ~~ 魔方在循环变换 ~~

使用道具 举报

Rank: 8Rank: 8

积分
4787
帖子
1876
精华
12
UID
93
性别

魔方理论探索者 十年元老

8#
发表于 2004-6-16 07:34:37 |显示全部楼层

九、“魔方最少步库”的构造

我们由前面的“八、步长为奇数的循环变换 [集合] 的构造”及“六、循环 变换 [集合] 的构造” 得到:

唯一最少步变换- 或 }->(与非最少步变换构成)步长为奇数的- 最少步变换 -- }-> 循环变换 且 }->(两个最少步变换构成)步长为偶数的- 另一最少步变换-

问题: 唯一最少步变换 或 最少步变换 全部都 在 循环变换 [集合] 中吗?

这一问题始终困扰着我,至今我还不能给出严格的证明,不过我已经证明了:

定理:对于只有 [偶] 循环变换的魔方来说,唯一最少步变换 将随着步长的 增加,最终 [全部都] 变成 [不] 唯一的最少步变换。

这一定理的证明我将会在“广义循环变换”定义给出的同时给出。

不过,我们在没有证明 “ 唯一最少步变换 或 最少步变换 全部都 在 循环 变换 [集合] 中” 之前,可以在构造循环变换 [集合] 的同时,再追加构造一个 最少步变换 [集合] ,并且随着循环变换 [集合] 的不断增加,不断地检验最少步 变换 [集合] ,如果发现某个 最少步变换 存在于 循环变换 [集合] 中,则删除 该最少步变换。最终的 最少步变换 [集合] 可能是个空集。即便不是空集,则因为 我们在构造 循环变换 [集合] 的同时,也同步构造了 最少步变换 [集合] ,所以 我们就得到了一个由 ( 魔方循环变换 [集合] + 魔方最少步变换 [集合] )所 构成的 完整的 ( 魔方最少步库 )! 如果 最少步变换[集合] 是个空集,那么 魔方最少步库=魔方循环变换[集合]

命题: 魔方的最少步变换 全部都 在 魔方的循环变换 [集合] 中。

欢迎大家跟贴给出这一命题真假性的证明或讨论。

~~ 宇宙在旋转运动 ~~ 魔方在循环变换 ~~

使用道具 举报

Rank: 8Rank: 8

积分
4787
帖子
1876
精华
12
UID
93
性别

魔方理论探索者 十年元老

9#
发表于 2004-6-18 07:53:19 |显示全部楼层

十、魔方最少步库 的大小

我们知道魔方有多少种不同状态的图案,就应该有多少种不同的 最少步变换。 比如:正六面体的三阶魔方有 4.325200 E+19 种不同状态的图案; 又如:正十二面体的五魔方有 1.006696 E+68 种不同状态的图案。 ( 其中 E+19 表示 10 的 19 次方 等等,以后不再说明 ) 假设 魔方的最少步变换 全部都 在 魔方的循环变换 [集合] 中, 那么我们甚至对 正六面体的三阶魔方 的 循环变换 [集合] 都没那么 大的存储空间去装,更别提 正十二面体的五魔方 了。

怎么办呢?

我们分析魔方变换数据结构得到,设魔方的第 N 步的节点个数为 x , 那么第 2N 步的节点个数为 x 的平方,第 3N 步的节点个数为 x 的立方, 第 4N 步的节点个数为 x 的四次方,第 5N 步的节点个数为 x 的五次方, ................................. 即得 魔方的前 a*N 步的节点个数 数量级 是 魔方的前 N 步的节点个数 数量级 的 a 次方! 假设 1.0 E+10 是现今计算机解决问题的最大存储空间,只要看不同 状态的图案个数(魔方最少步库 的大小)是 1.0 E+10 的 多少次方 就 可以大概估计出要如何 这个库。

比如:正六面体的三阶魔方共有 4.325200 E+19 种不同状态的图案, 它大约是 1.0 E+10 的平方,因此设正六面体的三阶魔方的前 N 步的节点 个数为 1.0 E+10 ,那么正六面体的三阶魔方的前 2N 步的节点便可超过 正六面体的三阶魔方 4.325200 E+19 种不同状态的图案。(分个 N 步) 这就是开发正六面体三阶魔方最少步软件 Cube 的作者 H.Kociemba 采用 The Two-Phase Algorithm 算法的理论基础,他制作了一个大小 1G 左右的“表”,便于求解时查表计算。 又如:正十二面体的五魔方共有 1.006696 E+68 种不同状态的图案, 它大约是 1.0 E+10 的七次方,同样设正十二面体的五魔方前 N 步的节点 个数为 1.0 E+10 ,那么正十二面体的五魔方的前 7N 步的节点便可超过 正十二面体的五魔方 1.006696 E+68 种不同状态的图案。(分个 N 步)

这些问题应是程序员们大展自己聪明才智的问题,这里我就不多说了。 相信每个程序员都可以依据《魔方循环变换理论》创造出适合自己的算法, 及适合自己的“前 N 步的节点”的 魔方最少步库。

对了,顺便说一下,对于正六面体的三阶魔方,这个“前 N 步的节点” 的魔方最少步库 构造时,再考虑和它旋转、对称后都相同的最少步,就要 至少除以 48 ( 6 个面,每个面都有 4 个相邻面,确定了两个相邻面即 固定了该魔方,然后再考虑 对称 的 2 种情形,即可得 6 x 4 x 2 = 48 ) 即得 按 《魔方循环变换理论》 制作的 正六面体的三阶魔方最少步库 的 大小为 4.325200 E+19 的算术平方根 除以 48 得到:137 M 即 0.137 G 。 然后考虑每个字节所表示的数值最大为 256 ,六个面共有 12 种步长为 1 的变换,256 > 12 x 12 ,因此每个字节又可至少装下 两个步长 的变换, 从而由 137 M 除以 2 得到:68.5 M 。所以我们可以最多用 68.5 M 的 存储空间,即可进行 The Two-Phase Algorithm 算法。 这确是一个喜人的 数字,也是一个理想中的数字,对于程序员们来说,要走的路还长 ......

~~ 宇宙在旋转运动 ~~ 魔方在循环变换 ~~

使用道具 举报

Rank: 8Rank: 8

积分
4787
帖子
1876
精华
12
UID
93
性别

魔方理论探索者 十年元老

10#
发表于 2004-6-24 08:08:40 |显示全部楼层
十一、“广义循环变换”的定义及应用
  
1.“广义循环变换”严格的定义: 对于最少步变换 A ,如果存在一个与 A 不同的变换 B ,使得 A(-B) = 1 ,设 C 为 A (-B) , [ 其中:-B 表示 B 的逐元逆变换,如 B = a b c ,则 -B = (-c) (-b) (-a) ] 且 any(circle0(C),half(C)) 中存在一个是最少步变换,则称变换 C 为广义循环变换。记作: 广义循环变换 C 或 Gcircle(C)
显然,若 length(B) <= length(A) + 1,条件[ 且 any(circle0(C),half(C)) 中存在一个是最少步变换 ] 多余。

2.“广义循环变换”的一般理解性定义: 除了 1.“广义循环变换”严格的定义外,在不严格的情况下,有时泛称: 对于有效变换 A ,如果 A = 1 ,则称变换 A 为广义循环变换。记作: 广义循环变换 A 或 Gcircle(A)

3.“广义循环变换”的几个应用:

定理:对于只有 [偶] 广义循环变换的魔方来说,唯一最少步变换 将随着步长的增加,最终 [全部都] 变成 [不] 唯一的最少步变换。
要证明上面的定理,只要证明下面的定理即可!
  
定理一: 设对于只有 [偶] 广义循环变换魔方的最长变换的长度为 x , 并设:a1 a2 a3 ...... a(x-1) ax 为其中任意一个长度为 x 的最少步变换,设这个变换为 A , 即:A = a1 a2 a3 ...... a(x-1) ax ,又设 d 为任一个步长为 1 的变换, 那么:对于这个最长变换 A 存在一个由 d 开始的长度为 x 的最少步变换 B , 使得:A = B 。
证明:假设 (-d) 使 a1 a2 a3 ...... a(x-1) ax 左无效,则得到存在 i ,使得 a1 a2 a3 ...... a(x-1) ax = ai a1 a2 a3 ...a(i-1) a(i+1)... a(x-1) ax 并且 d = ai ,此时设 B = d a1 a2 a3 ...a(i-1) a(i+1)... a(x-1) ax 即得结论。 假设 (-d) 使 a1 a2 a3 ...... a(x-1) ax 左有效,因魔方的最长变换的长度为 x,因此对于变换 (-d) a1 a2 a3 ...... a(x-1) ax 必不是最少步变换, 假设它的一个最少步变换为 b1 b2 b3 ...... bn (n <= x), 则 (-d) a1 a2 a3 ...... a(x-1) ax (-(b1 b2 b3 ...... bn)) = 1 , a1 a2 a3 ...... a(x-1) ax (-(b1 b2 b3 ...... bn)) (-d) = 1 , 设 B = d b1 b2 b3 ...... bn ,则 A = B 。 因 (-d) 使 a1 a2 a3 ...... a(x-1) ax 左有效,而 变换 B 又由 d 开始, 故 B 与 A 是不同的变换,且length(A)=x,length(B) <= x+1 = length(A) + 1 , 又因 a1 a2 a3 ...... a(x-1) ax 为一个长度为 x 的最少步变换, 故 a1 a2 a3 ...... a(x-1) ax (-(b1 b2 b3 ...... bn)) (-d) 为广义循环变换, 又因该魔方为只有 [偶] 广义循环变换魔方,因此 n <= x - 1 。 (若 n = x ,则 a1 a2 a3 ...... a(x-1) ax (-(b1 b2 b3 ...... bn)) (-d) 构成 [奇] 广义循环变换,与只有 [偶] 广义循环变换的魔方 矛盾。) 因此 a1 a2 a3 ...... a(x-1) ax = d b1 b2 b3 ...... bn ,(n <= x - 1) 又因 a1 a2 a3 ...... a(x-1) ax 为其中一个长度为 x 的最少步变换, 所以 n = x - 1 且 d b1 b2 b3 ...... bn 为最少步变换。 (若 n < x - 1 ,则 length( d b1 b2 b3 ...... bn ) < 1 + ( x - 1 ) = x 即 length( d b1 b2 b3 ...... bn ) < x ,与 a1 a2 a3 ...... a(x-1) ax 为一个长度为 x 的最少步变换 矛盾。同样若 d b1 b2 b3 ...... bn 非最少步变换, 亦得矛盾。) 即得 B = d b1 b2 b3 ...... bn ( n = x - 1 ),且 A = B 。因 n = x - 1 , 所以 d b1 b2 b3 ...... bn ( n = x - 1 )为一个长度为 x 的最少步变换。 又因变换 B 由 d 开始,故定理得证。
同理,再由“右有效”可证得:

定理二: 设对于只有 [偶] 广义循环变换魔方的最长变换的长度为 x , 并设:a1 a2 a3 ...... a(x-1) ax 为其中任意一个长度为 x 的最少步变换,设这个变换为 A , 即:A = a1 a2 a3 ...... a(x-1) ax ,又设 d 为任一个步长为 1 的变换, 那么:对于这个最长变换 A 存在一个由 d 结束的长度为 x 的最少步变换 B , 使得:A = B 。

[ 本帖最后由 ggglgq 于 2009-8-2 00:28 编辑 ]
~~ 宇宙在旋转运动 ~~ 魔方在循环变换 ~~

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

Archiver|手机版|魔方吧·中文魔方俱乐部

GMT+8, 2024-5-3 16:46

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部