2种闪蝶魔方(待更新)

极光闪蝶魔方

魔方三要素

(1)组成部件

共126个部件,分为5组,分别是大圆块、小圆块、棱块、中心尖块、中心小块

大圆块是4*6=24个,每种颜色的4个是一样的

小圆块是4*6=24个,每种颜色的4个是一样的

棱块是24个,都不一样

中心尖块是8*6=4*12=48,每种颜色有4个一样的和另外4个一样的

中心小块是6个,都不一样

整个魔方的第一种理解方式:正方形+大角块

大圆块、棱块组成8个大角块,每个大角块6个部件,一共48个部件

中心尖块、中心小块、小圆块组成6个面的中心正方形,每个中心正方形14个部件,一共78个部件

第二种理解方式:飞镖+翅膀+中心正方形

棱块、中心尖块组成12个飞镖,每个飞镖6个部件,一共72个部件

大圆块、小圆块组成24片翅膀,每一片2个部件,一共48个部件

中心正方形就是中心小块,一共6个部件

(2)可执行操作

分为3类操作

第一类是斜转60度,实现正方体和非正方体之间的切换,这一类有4种操作,因为有4个轴(同枫叶魔方)

第二类是正方体状态下,圆盘旋转某个角度,不考虑角度参数的前提下,这一类有12种操作

第三类是非正方体状态下,圆盘旋转某个角度,不考虑角度参数的前提下,每一种非正方体状态下有6种操作。

第一类操作的限制:外形曲线需要吻合,有特例1。

第二类和第三类操作的限制:外形曲线需要吻合,有特例2。

特例1:

这种情况下,也可以执行斜转60度。左边一半不动的情况下,右边一半只能顺时针旋转,不能逆时针旋转。

理论上,这种情况也可以认为是满足某种外形曲线吻合的情况,但是需要把曲线吻合重新定义,需要定义单向吻合的概念,比较麻烦。

所以我们就直接认为,这个是特例就行。

特例2:

这种情况下,右边的圆盘无法转动。

比如右边的圆盘想逆时针转动,那么1号小圆块和2号大圆块就会撞上。

(3)目标态

外形恢复正方体,且六个面都是纯色。

复原方法

(1)棱块平衡

这个圆盘只有1个棱块。

恢复成每个圆盘都是2个棱块

(2)恢复所有飞镖外形

(3)恢复正方体外形

海云闪蝶魔方

魔方三要素

(1)组成部件

除了中间的大球,剩下的128个部件分成5类(角外侧块、角内侧块、棱块、中心圆块、中心尖块)

1类我称之为角外侧块,是4*6=24个,每种颜色的4个是一样的

2类我称之为角内侧块,是8个,都不一样

3类我称之为棱块,是24个,都不一样

4类我称之为中心圆块,是4*6=24个,每种颜色的4个是一样的

5类我称之为中心尖块,是8*6=4*12=48个,每种颜色有4个一样的和另外4个一样的

PS:中心圆块的外表面接近等腰三角形,所以有1个顶点加2个底点

整个魔方的第一种理解方式:正方形+大角块

角外侧块、角内侧块、棱块组成8个大角块,每个大角块7个部件,一共56个部件

中心圆块、中心尖块组成6个面的中心正方形,每个中心正方形12个部件,一共72个部件

第二种理解方式:飞镖+翅膀+内部部件

棱块、中心尖块组成12个飞镖,每个飞镖6个部件,一共72个部件

角外侧块、中心圆块组成24片翅膀,每一片2个部件,一共48个部件

角内侧块就是内部部件,一共8个部件

(2)可执行操作

分为3类操作

第一类是斜转60度,实现正方体和非正方体之间的切换,这一类有4种操作,因为有4个轴(同枫叶魔方)

第二类是正方体状态下,圆盘旋转某个角度,不考虑角度参数的前提下,这一类有12种操作

第三类是非正方体状态下,圆盘旋转某个角度,不考虑角度参数的前提下,每一种非正方体状态下有6种操作。

第一类操作的限制:外形曲线需要吻合。

第二类和第三类操作的限制:

(1)外形曲线需要吻合

(2)当角内侧块挨着某一面的正方形中心点时,另外一个圆盘的挨着中心点的中心圆块不能离开中心点。

这个例子中的白线标注表明了角内侧块对于下面这个圆盘的限制。

这个角内侧块对于右边的圆盘也是一样的限制,但是对于左边的和上边的圆盘不限制。

(3)当中心圆块的底点挨着某一面的正方形中心点时,其他圆盘的中心圆块不能离开这个中心点。

PS:可执行操作非常多,操作限制也比较复杂,这就是导致这个魔方复杂的原因。

(3)目标态

外形恢复正方体,且六个面都是纯色。

具体来说,中间的大球是看不见的,另外128个部件需要位置和朝向正确。

角外侧块、棱块、中心圆块、中心尖块只需要位置正确,没有朝向的区分

角内侧块有3个朝向

PS:正方体外表面的颜色就是角外侧块、棱块、中心圆块、中心尖块组成,而角内侧块是通过孔洞去看颜色的。

拼装方法

先拼飞镖

再拼翅膀+内部部件就好了

复原方法

(1)恢复所有飞镖的外形

相关推荐
東雪木8 小时前
编程算法学习——栈与队列算法
学习·算法·排序算法
CSDN_Colinw8 小时前
C++中的工厂方法模式
开发语言·c++·算法
liulilittle9 小时前
范围随机算法实现
开发语言·c++·算法·lua·c·js
2401_857918299 小时前
C++中的访问者模式实战
开发语言·c++·算法
elseif1239 小时前
CSP-S提高级大纲
开发语言·数据结构·c++·笔记·算法·大纲·考纲
熊猫_豆豆9 小时前
Python 基于Dlib和OpenCV实现人脸融合算法+代码
图像处理·python·算法·人脸融合
Book思议-9 小时前
【数据结构实战】双向链表:在指定位置插入数据
c语言·数据结构·算法·链表
lightqjx10 小时前
【算法】前缀和
c++·算法·leetcode·前缀和
窝子面10 小时前
LeetCode练题三:链表
算法·leetcode·链表
扶摇接北海17610 小时前
洛谷:P1104 生日
算法