运行:>>digrub
这个程序允许你生成一个任意尺寸的随机混乱立方体,然后可以手动操作或由计算机解决。你也可以使用网络摄像头(3x3x3)输入你自己的状态,或者简单地输入每个小块的颜色(2,3,4x.x.)。
有几种内置的解决机制可用:
-上帝的2x2x2算法:这是给定状态(半圈度量)的最佳解决方案。
-Thistlethwaite 45(T45)对于3x3x3:此算法将始终找到45步或更少的解,平均值为31。
-逐层(初学者)解决方案:这是初学者常用的解决多维数据集的方法。比T45更直观,但范围更广,效率更低。
423T45用于4x4x4(读4到3,T45):这个算法使立方体进入一种状态,可以处理它是一个3x3x3立方体。当达到这个目标时,T45可以用来解决它(平均180步)。
-所有立方体的逆争夺:这是像作弊,但当争夺是已知的,每个立方体可以通过反序列来解决。
上面所有的方法(除了简单的逆置)都在附带的PDF中进行了详细的解释。PDF还包含了立方体的大量理论描述。
包含函数/文件的描述:
algrot。M -计算立方体旋转时算法的变化。
digrub。图- GUI图形主程序
digrub。m- guide生成的m-file与digub .fig。
editstate。图-用于手动输入程序的GUI图
m-GUIDE生成的m文件与editstate.fig一起使用。
m-Peek finder,用于在网络摄像头图像中查找多维数据集的位置。
GetCorners.m-计算给定3x3x3立方体的角置换/方向。
GetCorners2。M -计算给定2x2x2立方体的角排列/方向。
GetEdge.m-计算给定3x3x3立方体的边置换/方向。
GetFacelets。M -将方向/排列表示中的状态转换为小块repr。
m-将索引转换为状态
move2rub。转换形式'x11'的移动到鲁比克代码'B'。
奇偶校验。M -计算置换的奇偶性。
rub2move。将魔方代码中的一个动作转换为轴'x11'形式。
rubcheck.m-检查2x2x2或3x3x3状态的有效性。
m-在立方体上搜索十字。
m-生成一个立方体
m-返回有关多维数据集状态的信息
rubopt。优化一个移动序列
ruborient。M -立方体的方向
m-绘制立方体的三维图像
m-对立方体应用移动
rubrot2。旋转整个立方体
m-使用逐层方法求解立方体
Solve45.m-使用T45求解立方体
Solve222.m-查找2x2立方体的上帝算法
Solve444。找到任意4x4x4立方体的解。
谢谢下载!感谢所有反馈!
jorenheit[在]gmail.com
引用为
乔伦·海特(2021年)。魔方模拟器和解算器(//www.tatmou.com/matlabcentral/fileexchange/31672-rubik-s-cube-simulator-and-solver),MATLAB中央文件交换。恢复.