不背公式,电脑也能找到最快的复原方法。秘诀只有一个:把魔方变成一张地图。
前三步用二阶魔方(2×2)把道理讲清楚,第四步用同样的办法,真的把三阶魔方解开。
中间这个魔方,就是你现在站着的路口。拧一下,它变成另一个样子,就等于走到了旁边的路口。
我们只拧顶层、右层、前层,每层可以顺时针、逆时针、或者转半圈。所以每个路口正好有 9 条路,通向周围这 9 个魔方。
点一点周围的小魔方,走过去看看。走着走着你会发现:路口太多了,很快就绕晕了。
二阶魔方一共有 3,674,160 种样子,也就是 367 万个路口。每秒走一个,不吃不睡也要走 42 天。乱拧碰运气,基本回不了家。
电脑的办法像往水里丢一颗石子:从“复原”这个终点开始,拧 1 下能到的有 9 种,拧 2 下能到的有 54 种,3 下有 321 种……一圈一圈往外数,数到第 11 圈,367 万个路口全部数完。
所以:任何打乱的二阶魔方,最多 11 下就能复原。大部分落在第 9 圈,最外面第 11 圈的不到千分之一。
数学上,这种“路口 + 路”叫做“图”,一圈圈往外数叫做“广度优先搜索”。打开这个页面时,你的浏览器已经在后台把这 367 万个路口数了一遍。
数完之后,每个路口都贴上了一个数字:离复原还差几步。
现在回家就太简单了:看看身边 9 条路,选那条数字比自己小 1 的(绿色那条)走过去。再看,再走。数字变成 0,魔方就复原了。
这样走出来的一定是最短的路,因为每一步都让距离少 1,不可能更快。就像手机导航,每个路口都知道离家还有多远。
三阶魔方大约有 4300 亿亿种样子,一张地图根本装不下,没法像二阶那样整张数一遍。
办法是分四段走,每段只完成一个小目标。而且越往后,能用的拧法越少(18 → 14 → 10 → 6 种),地图也就小到电脑能数完。像回家先上高速,再走主路,最后拐进小区。
每张小地图,电脑都像第二步那样一圈圈数过;走的时候照第三步,一路往数字小的地方走。四段接起来,任何打乱都能复原,一般 30 步左右。
魔方旁边那张圆圈图,是把 54 张贴纸摊平画出来的:每个点是一张贴纸,每一圈是一条轨道。拧一层,那几圈会亮起来,圈上的点就沿着轨道滑过去。打乱时颜色混在一起,复原时同色的点各自聚成一团。
每一段内都是最短的,但四段接起来不一定是全局最短:数学家已证明三阶魔方任何打乱最多 20 步就够,只是找那条路要难得多。这个分段方法叫 Thistlethwaite 算法。