本帖最后由 zhzhanzy 于 2021-2-2 22:21 编辑
经过检验,朝向编号有问题,导致后面的变换矩阵不唯一。整个模型基本不可用,转动对应的矩阵不唯一并且较复杂。
一种魔方的数学模型。
1、将块用初始块的位置信息表示:令魔方中心不可见块为坐标原点,过原点的红、绿、黄面法线分别为x、y、z轴,正方向分别为原点至红、绿、黄面。
示例:白色中心块:(0、0、-1)红绿黄块:(1、1、1)
2、用数字表示块的朝向:为每个位置规定一个默认面,同时给每个块的颜色编号,位于默认面的颜色编号即块的朝向编号。
三颜色块:-1、0、1,两颜色块:0、1。复原状态并使白色朝下,一三层白、黄为默认面,第二层块取左侧。颜色编号方式:白黄为0,上下十字侧面为1、剩余面左为1、右为-1。
3、每个魔方块的信息可以用四位数表示,写成对角矩阵。
初始状态下顶层顺时针转动时,原红蓝黄块位置中块信息的变化:
如写成向量形式:……
4、简化魔方的转动:固定中心不可见块,基本转动为六个面单层单方向转动。每次转动改变八个块的位置和朝向。
另一种简化方式:固定一个块,基本转动为不含该块的单层或双层转动。
5、组成分块矩阵,信息矩阵在分块阵中的位置与块的实际位置对应。三层魔方需要20个对角矩阵,再添加5个的单位矩阵或零矩阵组成方阵,通过改变矩阵信息可表示特定位置的块发生了变化。
魔方的转动可理解为特定位置的块发生了改变
这样,魔方转动可写为两矩阵相乘,复原公式就可写为矩阵的组合。
如不了解魔方转动原理可作为参考
魔方的复原
魔方的复原是指把每一个块都恢复到初始的位置和朝向,颜色可视为块初始信息的标记。所有的复原方法都是将复原分成若干步骤,使每一步仅需处理少量的块,从而降低难度。这里有两个问题:1)步骤如何划分;2)怎么避免已复原的块被再次打乱。下面简单介绍一下常用的复原方法
首先说明一下这种复原方法的步骤划分,首先把魔方分为上、中、下三层,还有魔方的两种位置不能互换的块,即这种有三种不同颜色的块和有两个不同颜色的块,有时同一个块的位置和朝向也会被分开复原。
先复原底层,中心是白色,所以底层所有的块都应该有一个白色。其中一种块(十字),另一种块(一层)。接下来第二层,这时候就要考虑第二个问题了,怎样保证已复原的块不被打乱。如果底层的块不动,能转动的只有顶层。所以可以确定的是,复原的时候底层的块一定会被暂时的移开(演示)。学习的时候可以直接用公式,复原完第一层后,可能遇到的分布情况已经很少了,每一种都有已经总结好的公式对应。按照公式完成第二层(二层)。复原第三层时要保证前两层不被打乱,所以这里的公式最为复杂,初学时可以分为四个步骤。前两步处理顶面两种块的朝向(O),最后还原两种块的位置。
经过这样的拆分,魔方复原就变成了几个简单的步骤。学会这种方法并不难,但不要被其限制了你的思维。
CFOP
再介绍一种复原方法,算是刚才那种方法的改进版。开始是一样的(C)。第二个步骤(演示)需要同时复原位于前两层的块,在学习时一定要按公式要求转动,不能通过改变魔方整体朝向使转动适应常用手指。这一步的复原可以分为四类:这两个块在顶面的颜色相同(演示);这两个颜色不同(演示);第三种:这两个块其中一个或两个块不在第三层(演示);最后一种:位置正确,但朝向不对(演示)。初学时可以将所有情况都处理成前两种(演示)。这样前两层就完成了(F剪掉复原段)。第三层分为两个步骤,分别完成所有块的朝向和位置,第一步(O),第二步(P)。第三层先把公式背下来,背诵顺序要找一些参考,不要按公式表的顺序背。
复原速度和所需转动次数有关,转动次数又大致取决于步骤的分割。但步骤的减少会增加每一步需完成的块的数量,难度也会随之增大。魔方比赛是一个观赏性不高的小众运动,理解这种方法的原理比利用它提高速度更有意义。
|