魔方转动的二进制描述法
作者:
最近,大家为魔方转动的描述争论不休,现在我来提一种绝对无争议的描述法,就是二进制描述法。即完全用1和0来描述魔方的转动。
我就以三阶为例吧。三阶魔方三个方向上共有九个不同的转层,于是我就给这九个转层按一定的顺序分配9个数位。我定义的顺序为“先从后往前(X正方向)数,再从左往右(Y正方向)数,末从下往上(Z正方向)数”。这就是我定义的9个转层的转动顺序。它决定占位的顺序。
然后依照该顺序审查这九个转层的转动情况。如果某个转层没转动就记为0。以该层转动轴的正方向为轴,以右手法则转动单个90度,这样的转动就记为1。如果该层转动180度,就相当于将该层转动90度的过程再重复一次,共两次。如果逆转动90度,就看成是正转动270度,就相当于将该层转动90度的过程再重复两次,共三次。所以这里转180,270度是要分解为多个90度来考虑的。就这样九个层一轮一轮地审查,直到里历遍所有的转动过程。
干说无益,还是举几个例子,画几个图吧。(有的图片及描述是摘自邱志红的帖子里的。)
图1,2,3分别指明我定义的九个层转动的顺序。图4就是这里的X,Y,Z的方向取向。图5就是右手螺旋法则以确旋转的正方向,具体的确定方法见邱志红的《一式解万方》。
举一个具体的转动吧。右+ 上- 左- 上+ 右- 。上标不好处理,大家将就着看吧。开始审查了。
第一轮:第1个层没有转,记为0,第2个层没有转,记为0,第3个层没有转,记为0,第4个层没有转,记为0,第5个层没有转,记为0,第六个层转了逆转90度,相当于正转270,但在一轮里面只能正转90,然后继续,第7,8,9层都没有转,都依次记为0。那么第一轮的结果是:000001000
第二轮:其实还是将第6个层在继续正转90度。其他的都不转,都为0。那么第一轮的结果也是:000001000
第三轮:将第6个层在继续正转90度,至此第一个转动操作“右+”终于完了,但这一轮还没有完,继续审查第7,8,9个层的转动情况,第7,8个层没有转,第九个层转动了90度,还好是正转,就记为1。第二转动操作“上-”也完了,第三轮也结束了。第三轮的结果是:000001001
第四轮:开始进行第三个转动“左-”描述了。第1,2,3层没有转,第4个层正转270,转动90度先,然后后面的层都没有转,都为0。第四轮的结果为:000100000
第五轮:再将上面的第4个层转动90,其他不转,第五轮的结果为:000100000
第六轮:再将上面的第4个层转动90,第三个转动操作“左-”也完了,继续描述第四个转动操作“上+”,也继续本轮的历遍,第7,8个层没有转,第九个层转动270度,转动90度先,本轮结束。结果为:000100001
第七轮:继续历遍“上+”,再使第九个层转动90度,本轮的结果为:0000000001
第八轮:继续历遍“上+”,再使第九个层转动90度,本轮结束,并且第四个转动操作 “上+” 历遍完。开始历遍第四个转动操作 “右-”,本轮的结果为:0000000001
第九轮:继续以上的历遍方法,得000001000
至此所有的操作都历遍了,终于结束了。
经过9轮的历遍。最后的总结果为:
000001000,000001000,000001001,000100000,000100000,000100001,0000000001,0000000001,000001000
中间有逗号是为了将每一轮间隔开,可以省去。那么结果为:000001000000001000,00000100100010000000010000000010000100000000010000000001000001000
这就是我的二进制描述法在三阶魔方中的应用举例。
n阶魔方中的操作也可以这样历遍,只不过,每个方向有n个层,每一轮的长度为3n。3n个层的编排顺序也是按“先从后往前(X正方向)数,再从左往右(Y正方向)数,末从下往上(Z正方向)数”的规则排列。历遍及转动的规则也一样。
广而言之,任何形态的魔方都可以这样历遍。魔方总是有很多个转层组成的,我们可以人为地给它们的转动排个序。假如总共有P个转层,那么就对着转动操作按照顺序依次历遍就可以了。注意:所有转层的转动都是单方向进行的(视具体规定而定),比如三阶魔方中逆转90度要看作正转270度。还有所有的转动操作都要分解为最小的转动来历遍,就像三阶魔方一个层转动270度一样,要看成是在三轮里面每次转动90。最后在某一轮里面历遍完一个转动操作,还要注意本轮可能还没有完,要接着开始历遍下一个转动操作。
这样,所有种类的魔方的转动都可以统一用二进制来描述,大家也不用为了转动符号而争来争去。只不过对人来说这个历遍过程很烦琐,不大现实,但计算机最喜欢处理二进制的问题了。
我只是在这里提一下这种方法。说明该方法的可行性。
啊,有消息来了,离开一下……………………… [em01][em01][em01] |