一个生成打乱的魔方的算法应该怎么写呢(正文里有详情)
2. 要求打乱后的魔方必须能够还原(比如拧一个角块这样的因为不能还原就不行)
3. 不能使用逐步打乱记录法(不能从已还原的魔方一步一步逐渐打乱,必须直接生成打乱后的魔方)
最后解释一下,这不是啥面试题或者实际当中用到的问题,只是无聊忽然想到了。
讲道理其实想问一下有没有 “打乱公式” 这种东西 。。。。
最后解释一下,这不是啥面试题或者实际当中用到的问题,只是无聊忽然想到了。
讲道理其实想问一下有没有 “打乱公式” 这种东西 。。。。
一个想法,不知道对不对
3 阶魔方将六个面分别标上字母
上 U 下 D 前 F 后 B 左 L 右 R
以其中一个面为例
U 代表上层顺时针转 90 度
U’代表上层逆时针转 90 度
U2 代表上层转动 180 度,顺逆时针效果一样
如果我记得没错 wca 的打乱规则是随机生成 20 步(相连步骤不重复, 就是不会有连着的两个 U 这种)
看 LZ 的需求,是要直接“生成”一个乱序的魔方,不然不存在第二条需求
可以先研究拧魔方映射的群,然后依据群的结构抽样。然而这样做的结果很可能就是“从还原魔方逐步打乱”。
群的结构也可以导出识别轨道的算法(即如何识别一个魔方是还原魔方被拧魔方映射作用后的结果的方法)。
================
只是判断打乱是否正确比较简单,不使用数学算法的话,可以考虑盲拧的处理方式,判断色相、位置是否有矛盾。
如果想要生成合理的打乱,可以看下 wca 官方打乱工具: https://github.com/thewca/tnoodle