首页 > 解决方案 > 魔方:如何检查随机面是否与实际可解的立方体匹配?

问题描述

我想知道,给定一个随机生成的魔方面,我是否可以判断该面是否(至少)对应于魔方的一个可解配置。也许每个随机面都可以匹配到一个可解的立方体,或者不是,我也不确定。

我认为一个好的方法是,对于固定的随机面,以最终可解的方式构建立方体的其余部分。如果我能做到这一点,那么这张脸就是有效的,否则就不是。

我需要实现一个算法来做到这一点,但我真的不知道从哪里开始。

有什么建议么?

标签: algorithmrubiks-cube

解决方案


每个面都可以来自一个可解的立方体。构造面,然后以某种方式完成立方体。立方体可解的三个条件是“置换奇偶校验”、“边缘奇偶校验”和“角奇偶校验”。如果排列奇偶校验错误,可以通过将对面的两条边交换到您关心的边来修复。如果边缘奇偶校验错误,可以通过翻转对面的单个边缘来修复。如果角落奇偶校验错误,扭转一个角落一次或两次修复它。

这个证明取决于每个面都是可构造的这一事实,但这很容易,因为你选择了中心正方形,然后选择任何带有正确颜色的边缘和角落。你必须想一想才能说服自己,不会缺少合适的颜色。


推荐阅读