@ 2020.02.04 , 11:00

需要几步才能把魔方拧到足够复杂?

魔方40年来一直是世界上最受欢迎的玩具之一。有大量介绍如何解开魔方的书籍,设计出几种不同的复原公式。专业的“speedcubers”可以在几秒钟内还原一个魔方。

除了惊人的技巧之外,还有许多关于魔方的有趣的数学问题。通过一系列拧转和变换,可以获得惊人的43252003274489856000个可能状态。

根据百科—三阶魔方词条,三阶魔方由一个连接着六个中心块的中心轴以及结构不一的20个方块构成,当它们连接在一起的时候会形成一个整体,并且任何一面都可水平转动而不影响到其他方块。

正确计算式如下:

(8! * 3^8 * 12! * 2^12)/(3 * 2 * 2)= 43252003274489856000

首先六个中心块是不可以移动的,他们由于颜色的区分正好构成一个坐标系。在这个坐标系里有8个角位置,和12个棱位置。

对于8个角位置,我们有全排列8!而8个小角色块有3种的朝向,所以要乘上3^8。对于12个棱色块,同样的道理,有12!*2^12。

以上两种组合要合在一起,它的变化数就是把这样两个数字相乘,就是上面算式的分子(8! * 3^8 * 12! * 2^12)。

这个结果其实就是如果我们把魔方拆掉,再随机的组装起来,一共可以得到的变化数。这个数字是上面结果的12倍。也就是说我们随意组装的一个魔方有11/12的概率不能还原到六面分别同色的状态的。对于分母的3*2*2,它们分别的意义是,保持其他色块的位置和朝向不变,不可能单独翻转一个棱色块(也就是将其两个面对调),不可能单独翻转一个角色块,不可能单独对调一对色块的位置。

尽管存在如此惊人的复杂性,但数学家在2010年证明,无论初始状态如何,三阶魔方都可以在20步内完成求解。该数字被称为“上帝数字”,因为人类目前使用的公式还未能达到如此效率。

但是反过来呢:打乱一套齐整的多维数据集需要多少个步骤?乍一看,这听起来十分容易。毕竟,捣乱和弄糟无需任何技巧。

类似如洗牌问题,是已经被解决的例子。根据1990年数学家Dave Bayer和Perci Diaconis对“鸽尾式洗牌”的著名研究,如一副扑克的顺序是随机的,则将其定义为“洗好的”,Bayer和Diaconis表明,7次洗牌是足够的,足以洗好标准扑克。

去年,数学家对数字推盘游戏-15进行了类似的研究——数字推盘游戏的板上会有十五个方块和一个大小相当于一个方块的空位(供方块移动之用)。

试图打乱魔方的典型操作,产生的随机状态序列被数学家称为马尔可夫链。关键属性是,给定当前状态,下一个状态的概率不取决于之前任何状态。

对标准3x3x3魔方的加扰目前还是一个引人入胜的开放问题,不过我们可以界定魔方的打乱程度。将马尔可夫链理论应用到多维数据集加扰中,可以得出结论,随着随机移动次数的增加,处于任何一种特定状态的可能性越来越接近1 / 43252003274489856000。数学家称其为“均匀概率分布”,因为每种可能的状态都以相同的概率发生。

对于简化版的2×2×2小魔方来说,科学家证明,至少需要19步,才可使魔方的排布足够随机

本文译自 phys,由 majer 编辑发布。

其实原文的要点是“马尔可夫链蒙特卡洛”方法。但是,翻出来估计也没人懂,且还需要配图辅助理解。有特殊兴趣的可以点击上面的原文。文内末尾的超链接是github上的分析和代码。

赞一个 (16)