魔方吧·中文魔方俱乐部

标题: 把四阶当做二阶还原可行么 [打印本页]

作者: LAMBO    时间: 2012-2-13 20:09:42     标题: 把四阶当做二阶还原可行么

我的意思是说
把每四个处于边缘的块(即把四阶当做二阶时的角块)分别拼出来
成为一个大的二阶
再复原二阶
方法可行不可行
求大神级人物解答
作者: S轨迹K    时间: 2012-2-13 20:12:32

可以,记得以前乌木老师发过四阶降二阶的实例
作者: 铯_猪哥恐鸣    时间: 2012-2-13 20:13:11

@乌木 曾经尝试过。。http://bbs.mf8-china.com/viewthread.php?tid=72357
作者: 战斗机    时间: 2012-2-13 21:19:43

可以是可以,时间等各方面不是很可观啊。
作者: feifucong    时间: 2012-2-13 21:41:08

理论上可以,但实际操作难度相当大
作者: BLZBOBO    时间: 2012-2-13 22:25:19

我先在连二阶都不会。。。。
作者: 乌木    时间: 2012-2-13 22:26:50

在通常的四阶魔方上,先弄成一个打乱着的“大二阶”,再复原这大二阶,只是一种“无事忙”,玩玩而已。
但是,对于四阶的变形物,比如四阶八面体魔方,恐怕反而是先弄成一个打乱着的“大二阶”来得更简捷(各块只要调动到同色的小三角形面心块即可),而且也到此就算完成了,无需再按照二阶复原下去的了,八面分别同色即可(也即复原态不是唯一的)。
如果仍按照通常的四阶方法复原四阶八面体,不是不可以,但实在是折磨自己了!
好像还没有合适的四阶八面体java助手,下面且用胡波四阶代替四阶八面体(颜色多),演示一下先做成大二阶的一个块——黄色大块(即四阶八面体的一个面同色了):
[KBMFjava=450,400]
[param=MFlength]4[/param]
[param=MFwidth]4[/param]
[param=MFheight]4[/param]
[param=Speed]10[/param]
[param=initScript]U;R;F;D;B;L;2R;2D;2B;2L;2U;U';F';D';B';L';2R';2U2;[/param]
[param=Script]2R';2L2;2U';2D';U';F';U;B2;2F;D;2R;D';R2;D;2R';D';R2;2F';D';2U;L;2F;L';F2;L;2F';L';F2;2U';[/param]
[param=bgcolor]f3a0e2[/param]
[param=butbgcolor]99d658[/param]
[param=FaceU]aa55aa5533113311[/param]
[param=FaceF]3311331166226622[/param]
[param=FaceL]aa33aa33bb66bb66[/param]
[param=FaceB]55aa55aa44bb44bb[/param]
[param=FaceR]1155115522442244[/param]
[param=FaceD]66226622bb44bb44[/param]
[/KBMFjava]

相当于四阶八面体的一个黄面复原了:
四阶八面体宜逐面复原.png

[ 本帖最后由 乌木 于 2012-2-14 21:13 编辑 ]

附件: 四阶八面体宜逐面复原.png (2012-2-14 21:12:55, 6.02 KB) / 下载次数 121
http://bbs.mf8-china.com/forum.php?mod=attachment&aid=MTczNTA4fGM5NjRlMzZifDE3MzIyMTE3MTR8MHww
作者: pengw    时间: 2012-2-15 20:08:59

二阶只是单簇魔方,三阶是最低的多簇魔方,高于三阶的魔方,角块簇不变,棱块簇只是三阶棱簇的自然扩展,心块簇只是三阶中心块的自然扩展,四阶的心块簇性质与二阶的性质完全不同,就连状态数都不相同,很多人将二者混为一谈。


三阶以上,角簇保持不变,但所有棱簇匀为三阶棱的派生簇,所有心块簇都是三阶心的派生簇,意识到这一点,对理解N阶正方体色子阵魔方变换是极其重要的。


若想将将四阶当着二阶玩,那么任意一个转层都应该是表层加一内层构成的二层转层,若以一个复原的四阶为始态,以这样的约定转四阶,那么任意一个角及其相邻的“三心三棱”的相对位置与四阶复原态相同。


对N阶而言,通用的方法就是:

1。将所有簇转换为偶态簇
2。用奇元变换(如三元轮换)一个簇一个簇独立地进行簇复原,至到复原所有簇

这种方法极其适合电脑处理

[ 本帖最后由 pengw 于 2012-2-16 11:37 编辑 ]
作者: 铯_猪哥恐鸣    时间: 2012-2-20 12:53:14

原帖由 pengw 于 2012-2-15 20:08 发表
对N阶而言,通用的方法就是:

1。将所有簇转换为偶态簇
2。用奇元变换(如三元轮换)一个簇一个簇独立地进行簇复原,至到复原所有簇

这种方法极其适合电脑处理


这点完全同意,对于高阶魔方的计算机求解基本就是类似的处理思路,暂时没有更好的想法。不过某些软件的算法是无视1,碰到parity再特别处理。
尽管这一算法带来的问题是它的步数随着阶数增长成O(n^2),与理论最优的O(n^2 / log n)不符,不过后者也许只有理论意义。
ps。前几天看到一篇论文已经证明N阶魔方的求最优解问题是NP完全的。。。
作者: pengw    时间: 2012-2-20 14:11:49

我提出的那种方法:即先消扰动再用簇内变换遂一复原所有簇的方法,具有以下特点:
1.消扰动所需的步数几乎可以忽略不计,像三阶,任意表层90转度就消掉三个簇的扰动(即变为偶态簇)
2.用簇内变换复原每个偶态簇的难度与魔方阶数无关

因此可以近似地认为,复原魔方的步数是簇数c与某个平均单位x(即所有类型的偶态簇的平均复原步数)的积,即cn

我们知道,n阶簇数 c=int(n/2)2-int(n/2)+1+(int(n/2)+1)*mod(n/2)

因此,n阶数的复原步数应以c=x*(int(n/2)2-int(n/2)+1+(int(n/2)+1)*mod(n/2))为考量

即N阶复原步数是簇数的倍数。

从每类簇的簇数随阶数增加的情况来看,复原步数最终将由Exy簇决定

注:n>=2

[ 本帖最后由 pengw 于 2012-2-20 14:23 编辑 ]
作者: 小明的马甲    时间: 2012-2-21 01:14:19

楼上,国外已经有人给出了一个算法,其步数随n增长比你那个还小。。。而且证明了他那个是理论界
作者: sjont    时间: 2012-2-21 06:57:30

参见乌木老师的实例~~~~~~

并且  作为娱乐 可以自己尝试  作为速拧 事倍功半
作者: gbg    时间: 2013-8-5 21:51:37

应该可以的      
作者: 黑白子    时间: 2013-8-6 09:29:09

小明的马甲 发表于 2012-2-21 01:14
楼上,国外已经有人给出了一个算法,其步数随n增长比你那个还小。。。而且证明了他那个是理论界

能给出链接吗?
作者: 速度制胜s    时间: 2013-8-7 13:51:50

应该是可以的
作者: yougi    时间: 2013-8-9 20:52:12

可以,不过感觉转起来不顺
作者: hmlx    时间: 2023-7-20 00:17:27

feifucong 发表于 2012-2-13 21:41
理论上可以,但实际操作难度相当大

可以,需要进一步完善公式
作者: 一样很高    时间: 2023-7-20 13:05:42

当然可以啊




欢迎光临 魔方吧·中文魔方俱乐部 (http://bbs.mf8-china.com/) Powered by Discuz! X2