- 最后登录
- 2015-10-5
- 在线时间
- 764 小时
- 阅读权限
- 100
- 注册时间
- 2005-1-7
- 积分
- 4825
- 帖子
- 2795
- 精华
- 7
- UID
- 383
- 性别
- 男
- 积分
- 4825
- 帖子
- 2795
- 精华
- 7
- UID
- 383
- 性别
- 男
|
<P>20年前的大学毕业设计就是一种通解魔方的方法(三阶),无论什么状态,统统用通用的复原魔方的方法求解,结果是任意二个状态的转换步骤.</P>
<P><BR>在开解魔方的过程中,显然必须遵循状态定律,只是个人是否意识到这一点.从N阶定律的角度,至少可以有以下解法:<BR></P>
<P> </P>
<P><STRONG>1.层先复原法</STRONG></P>
<P>照一个固定顺序让所有块依次复原,在对三阶可以在上层纠正扰动错误,没问题,在更高阶,这种方法可能意味着在可能必须退到更低层处理扰动问题(极端情况会有一半的已复原转层会推翻重做),如果此时不明白状态定律就会"吃大亏",这种方法不适合高阶,我的设计就是三阶上的层先法,对三阶即是不明白状态定律(本质上三阶层先法只须在最后二个块复原时,应用一点色向定律),问题也不太大,更高阶想不理会状态定律而用层先法,一定会饱受挫折,写这样的程序会靠运气来复原魔方.</P>
<P> </P>
<P><STRONG>2.定律复原法</STRONG><BR>先消除所有簇间扰动,再用簇内变换,一个簇一个簇的复原,这是概念最清淅的复原方法,对付高阶编程求解也许是最有效的方法,通用于所有阶魔方,但不一定最有效率.</P>
<P> </P>
<P><STRONG>3.无序复原法</STRONG><BR>消扰动与每个簇的复原交叉进行,此间可能扰动未完全消除就有簇被复原了,然后消扰动又破坏了已复原的簇,这种方法看似无序,但也许基于经验很有效率.</P>
<P> </P>
<P>总之,无论是那种复原方法,不管是否意识到状态规律,所有复原方法都是基于同一原理:<STRONG>消除所有扰动,让每个簇复原</STRONG></P>
<P> </P>
<P><BR> </P>
[ 本帖最后由 pengw 于 2007-11-20 19:07 编辑 ] |
|