Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

UnoRubik

你在一个三阶魔方表面的格子上移动,需要从初始位置起,走到目标位置橙色的0。

你可以旋转这个三阶魔方,其规则与一般三阶魔方无异。但你在魔方格子之间的移动受到以下规则的限制:

  • 你只能在同一个面的格子间移动;
  • 你只能移动到上、下、左、右直接相邻的格子上;
  • 你只能移动到颜色相同,或数字相同的格子上。

思路

在本题中,你只能看到魔方的主视图,所以首要工作是掌握它的全貌。直接翻面把所有面都过一遍就好了。

因为起点和终点所在格的颜色不同,所以至少需要用到一次“相同数字”的规则来实现跨颜色的移动。

而红格和橙格间的共同数字只有0和9,于是我们自然期望通过0或9来实现跨颜色。

但试过之后就会很快发现问题所在:无论怎么转魔方,你也不能一次性从红0/9走到橙0/9。原因在于,它们不具备位置上相邻的可能性

为了便于分析,我们将魔方表面的 54 个格分为两大类:

  • I 类格分布于每个面的四角和中心,共 30 个;
  • II 类格分布于每个面的棱上,共 24 个。

不难发现:I 类格只能与 II 类格相邻,反之亦然。

所以红9和橙9都是 I 类格,它们就不可能相邻,也不存在一步走到的可能性。

因此要实现跨颜色移动,必须要找到两个相同数字,而且它们一个在 I 类格上,一个在 II 类格上。

接下来对魔方所有格上的数字进行统计,发现:

颜色I 类格II 类格
0, 1, 8, 9, 122, 5, 11, 12
0, 4, 8, 9, 161, 2, 5, 11
绿0, 4, 7, 13, 142, 5, 11, 16
0, 3, 4, 13, 147, 10, 11, 15
0, 4, 6, 13, 143, 10, 15, 17
0, 4, 8, 9, 136, 10, 15, 17

因此无论怎么规划路线,必定经过的几步移动都是:

  • 从红 0 出发先移动到红 1;
  • 借助数字 1 从红格移动至白格;
  • 借助数字 16 从白格移动至绿格;
  • 借助数字 7 从绿格移动至蓝格;
  • 借助数字 3 从蓝格移动至黄格;
  • 借助数字 6 从黄格移动至橙格;
  • 最后移动到橙 0。

理解以上原理后,实际移动时,只需通过合理的旋转,将两个相同数字的异色格转至相邻位置,即可实现跨色移动;再通过相同颜色的格子作为中介,实现跨数字移动即可。