魔方吧·中文魔方俱乐部

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

基于层先法的纯色三阶编程算法 [复制链接]

Rank: 8Rank: 8

积分
4825
帖子
2795
精华
7
UID
383
性别

魔方理论探索者 八年元老

跳转到指定楼层
1#
发表于 2008-8-16 07:20:09 |只看该作者 |倒序浏览
<P>层先法最容易实现编程,20多年前,我就是用这种方法交了毕业论文</P>
<P><BR><STRONG>原理描述</STRONG></P>
<P>------------</P>
<P>1。一个块一个块地依序复原</P>
<P>2。复原每一个块的公式只考虑不破坏已复原的块,只它不管。</P>
<P>3。第一个棱块可能存在于是12个位置共有24个状态,第一个棱块复位后,第二个棱块只可能在另外11个可能的位置,共有22个状态,以此类推。</P>
<P>4。复原顺序是,第一层四个棱块,第一层四个角块,第二层四个棱块,第三层四个棱块,第四层四个角块,在这个原则下,自已决定所有块一个固定复原顺序,注意每一个块的复原顺序是固定的,直接决定公式库的顺序。</P>
<P>41。每一块复原后,得到一个当前状态,再在当前状态中找出下一个要复位的块实施复原,以此类推,至到全部块复位。</P>
<P>5。依照块的复原顺序,找出每一个块的每个状态复原所须的一个公式,例如,第一层的第一个角块有24状态可能的状态,对应24-1个公式,复原状态无须公式。每一个块的复位公式组的集合构成一个公式库</P>
<P>6。由于扰动原因,倒数第二个棱块可能有4种状态,对应三个公式。最后一个棱块显然只有一种状态。</P>
<P>7。棱块复位后,角块不可能有扰动,所以倒数第二个角块有三种状态对应二个公式,最后个角块显然只有一种状态</P>
<P>8。每一个块复位后,记录它的复位公式,所有块的复位公式依照块的复位顺序窜在一起,就是我们所求的解。</P>
<P>&nbsp;</P>
<P><STRONG></STRONG>&nbsp;</P>
<P><STRONG>建立魔方转动模型</STRONG><BR>-----------------------<BR>建一个魔方转动模型程序,只能用公式来调用,调用完成后保持当前状态</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P><STRONG>建立魔方公式库<BR></STRONG>---------------------<BR>2。第一层,四个棱块可能的状态分布是:24,22,20,18。找出对应的84-4个公式<BR>3。第一层,四个角块可能的状态分布是:24,21,18,15。找出对应的78-4个公式<BR>5。第二层,四个棱块可能的状态分布是:16,14,12,10。找出对应的52-4个公式<BR>6。第三层,四个棱块可能的状态分布是:8,6,4,0。找出对应的18-3个公式<BR>7。第三层,四个角块可能的状态分布是:12,9,3,0。找出对应的24-3个公式</P>
<P><STRONG></STRONG>&nbsp;</P>
<P><STRONG>调用公式库</STRONG><BR>---------------<BR>1。分别用第一层四个棱块的状态调用公式库中的对应公式,完成四个棱块复位<BR>2。分别用第一层四个角块的状态调用公式库中的对应公式,完成四个角块复位<BR>3。分别用第二层四个棱块的状态调用公式库中的对应公式,完成四个棱块复位<BR>4。分别用第三层四个棱块的状态调用公式库中的对应公式,完成四个棱块复位<BR>5。分别用第三层四个角块的状态调用公式库中的对应公式,完成四个角块复位</P>
<P>&nbsp;</P>
<P><STRONG>记录复原公式</STRONG></P>
<P>------------------</P>
<P>将每次调用的公式按调用顺序全部拼接在一起就是求解步骤,并且可以对获得的解进行适当优化,当然这些事情都由计算机自动完成</P>
<P><STRONG></STRONG>&nbsp;</P>
<P><STRONG></STRONG>&nbsp;</P>
<P><STRONG>说明<BR></STRONG>------<BR>以上方法最简单,最麻烦的事情就是编写238个独立公式及这些公式的校验,仅仅只是麻烦,绝对不复杂,对于记忆上千公式的快手来说,完全是不在话下。但要特别注意,公式编写与调用顺序密切相关,每一个公式将不得影响已复原的块。</P>
<P>&nbsp;</P>
<P>本质上,只要掌握了N阶定律,可以毫不困难地随意编写复原程序,自然无须劳驾“中华民族的爱因斯坦”,植物人是无法理解这些“贫下中农”思维,哈哈哈</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P><STRONG>引深意义</STRONG></P>
<P>-----------</P>
<P>1。以上方法可以轻易给出任意二个合法状态的解,加入一些条件可以轻易识别错误安装</P>
<P>2。这种算法可以推广到二阶,四阶,五阶,六阶,七阶。</P>
<P>3。须说明的是,四阶及四阶以上,有边棱扰动问题,复原一半转层后,在复位某个块时要识别和消除边棱扰动,否则边棱扰动会出现在最后层,而最后一层是无法解决边棱扰动</P>
<P>4。阶数越大,公式库越大,所以这种方法只适合于低阶</P>

[ 本帖最后由 pengw 于 2008-8-17 09:43 编辑 ]

Rank: 7Rank: 7Rank: 7

积分
1938
帖子
1678
精华
11
UID
8262
性别

论坛建设奖 爱心大使 八年元老

2#
发表于 2008-8-16 07:36:12 |只看该作者
顶啊!好帖,支持楼主最后留下的观点!
玩出个性,转出精彩!----努力练习才是王道!

使用道具 举报

红魔

小猪 Xylon

Rank: 4

积分
1071
帖子
895
精华
0
UID
38939
性别
3#
发表于 2008-8-16 07:48:00 |只看该作者
我怎么就看不懂呢
Avg of 12: 23.28s

使用道具 举报

Rank: 8Rank: 8

积分
4825
帖子
2795
精华
7
UID
383
性别

魔方理论探索者 八年元老

4#
发表于 2008-8-16 08:07:45 |只看该作者
你只要会层先法,明白层先法是一块一块地在复原魔方,你就会明白楼主的方法

[ 本帖最后由 pengw 于 2008-8-16 08:12 编辑 ]

使用道具 举报

Rank: 2

积分
311
帖子
285
精华
0
UID
37115
性别
保密
5#
发表于 2008-8-16 08:22:33 |只看该作者
谢谢楼主..长见识了........

使用道具 举报

Rank: 2

积分
308
帖子
268
精华
0
UID
39648
性别
保密
6#
发表于 2008-8-16 08:24:13 |只看该作者
厉害,不错啊~~~~~

使用道具 举报

Rank: 8Rank: 8

积分
18050
帖子
16478
精华
9
UID
449
性别

魔方理论探索者 论坛建设奖 爱心大使 十年元老

7#
发表于 2008-8-16 08:57:43 |只看该作者
<P>1楼说“3。第一层,四个角块可能的状态分布是:24,21,16,15。找出对应的76-4个公式”,其中“16”是否笔误?是否应为18?</P>
<P>&nbsp;</P>
<P>此外,1楼说“每一个公式将不得影响已复原的块”,这可以理解,但一定会影响别的还未复原的块(至少是另两块,只要恰当地充分运用相似变换),看来,每调用、执行一次公式后,要对魔方的还未复原的块的状态做一次修正,才可以调下一个公式,这些是具体的重要“细节”,对吗?不懂编程,只是猜想。</P>
<P>&nbsp;</P>
<P>&nbsp;</P>

[ 本帖最后由 乌木 于 2008-8-16 09:27 编辑 ]

使用道具 举报

红魔

祖师爷

Rank: 4

积分
2800
帖子
2359
精华
1
UID
26037
性别
8#
发表于 2008-8-16 09:01:22 |只看该作者
<P>好像挺容易的,就是没有看明白啊,LZ解释一下吧</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>已补充了算法原理</P>

[ 本帖最后由 pengw 于 2008-8-18 09:02 编辑 ]
我只是喜欢魔方而以


沈阳、天津魔友QQ:289726960

使用道具 举报

红魔

小猪 Xylon

Rank: 4

积分
1071
帖子
895
精华
0
UID
38939
性别
9#
发表于 2008-8-16 09:06:45 |只看该作者
层先我忘了啊 .是不是用层先法复原高阶魔方
Avg of 12: 23.28s

使用道具 举报

Rank: 8Rank: 8

积分
18050
帖子
16478
精华
9
UID
449
性别

魔方理论探索者 论坛建设奖 爱心大使 十年元老

10#
发表于 2008-8-16 09:41:08 |只看该作者

回复 9# 的帖子

本帖说的是纯色三阶。

使用道具 举报

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

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

GMT+8, 2024-11-30 02:16

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部