上帝的数量

2008年7月,来自世界各地的许多最优秀的魔方玩家聚集在捷克中部的帕杜比斯,参加魔方的一项重要活动:捷克公开赛。在这次比赛中,荷兰选手E. Akkersdijk创下了一项惊人的纪录:仅用了7.08秒就还原了一个颜色被完全打乱的魔方。无独有偶,今年8月,人们对魔方背后的数学问题的研究也取得了重要进展。在本文中,我们将介绍魔方及其背后的数学问题。

1.在全世界都受欢迎的玩具

1974年春天,布达佩斯应用艺术学院建筑学教授E. Rubik有了一个有趣的想法。他想设计一种教学工具,帮助学生直观地理解空间几何的各种旋转。他想了想,决定做一个由小方块组成的3×3×3的立方体,每个面都可以随意旋转。这样的立方体可以方便地演示各种空间旋转。

这个想法虽然好,但是在实践中面临一个棘手的问题,就是如何让这样一个立方体的各个面随意旋转?鲁比克尝试了很多想法,比如用磁铁或者橡皮筋把小方块连接起来,但是都失败了。那年夏天的一个下午,他正在多瑙河边乘凉,目光不经意间落在了河边的鹅卵石上。突然,一个新的想法闪过他的脑海:用类似鹅卵石表面的圆形表面来处理立方体的内部结构。这个新想法成功了,rubik很快完成了自己的设计,并向匈牙利专利局申请了专利。这个设计就是大家熟悉的魔方,也叫魔方)[注1]。

6年后,由一位匈牙利商人兼业余数学家领导的魔方(rubik's Rubik's Cube)进入西欧和美国市场,并以惊人的速度成为风靡全球的时尚玩具。之后的25年,魔方销量突破3亿。魔方的玩家中,既有牙牙学语的孩子,也有跨国公司的老板。魔方虽然没有像鲁比克设想的那样成为空间几何的教学工具,但却成为了历史上最畅销的玩具。

畅销魔方的魔力在于它惊人的颜色组合数量。一个魔方出厂时,每一面都有一种颜色,总共有六种颜色。但这些颜色被打乱后,可以形成的组合数量高达4325亿个【注2】。如果我们把这些组合中的每一个都做成一个魔方,那么从地球到250光年外的遥远星空,这些魔方可以排列在一起。换句话说,如果我们把一盏灯放在这样一排魔方的一端,需要250年的时间,光才能照射到另一端。如果一个勤奋的玩家想要尝试所有的组合,即使不吃不喝不睡,他也需要654.38+0500亿年才能得到(作为对比,我们的宇宙目前还不到654.38+0400亿岁)。相比于这样的组合数字,平日里广告商常用的“几千”、“几亿”、“几十亿”这些虚张声势、忽悠客户的形容词,都成了难得的谦虚。我们可以有把握地说,即使一个人从BIGBANG开始玩魔方,也几乎没有希望还原一个颜色被打乱的魔方。

2.魔方和“神数”

魔方的玩家很多,相互之间有竞争是很自然的。从1981开始,魔方爱好者开始举办世界范围的魔方比赛,从而创造自己的世界纪录。这个记录不断被刷新。截至本文撰写之时,还原魔方的最快记录——正如我们在本文开头提到的——已经达到了惊人的7.08秒。当然,单个恢复的记录是有一定偶然性的。为了减少这种偶然性,从2003年开始,魔方比赛的冠军由多次回收的平均分来决定【注3】。目前这个平均成绩的世界纪录是11.28秒。这些记录的出现说明,魔方虽然有天文数字的颜色组合,但只要掌握窍门,还原任何组合所需的旋转次数并不多。

那么,至少需要旋转多少次才能保证无论什么颜色组合都能还原[注4]?这个问题引起了许多人的兴趣,尤其是数学家。恢复任何组合所需的最小旋转数被数学家们戏称为“神数”,而魔方这个玩具界的宠儿也因为这个“神数”一举入侵了学术界。

研究“神数”,当然要先研究魔方的还原方法。在玩魔方的过程中,人们早就知道还原任何给定的颜色组合都是很容易的,这一点已经被无数玩家的优秀记录所证明。而魔方玩家使用的还原方法,虽然人脑很容易掌握,但并没有最少的旋转次数,所以对寻找“神数”没有帮助。寻找旋转次数最少的方法是一道数学难题。当然,这个问题对于数学家来说并不难。早在90年代中期,人们就有了实用的算法,平均十五分钟左右就能找出还原给定颜色组合的最小旋转次数。从理论上讲,如果有人能为每种颜色组合找到这样的最小圈数,那么最大的圈数无疑就是“神数”。但遗憾的是,4325亿这个庞大的数字却成了人们窥视“神数”的绊脚石。如果采用上面提到的算法,即使同时使用1亿台机器计算,也需要1000多万年才能完成。

看来蛮力是行不通的,于是数学家转而从事他们的老本行:数学。从数学的角度来看,魔方的颜色组合虽然千变万化,但实际上是由一系列的基本运算(即旋转)产生的,而那些运算也有几个非常简单的特点,比如任何运算都有一个相反的运算(比如与顺时针旋转相反的运算就是逆时针旋转)。对于这样的运算,数学家们的武库中有一个非常有效的工具来应对。这个工具叫群论,出现在魔方出现的140多年前。据说德国数学家d·希尔伯特曾经说过,学习群论的关键是选择一个好的例子。自从魔方问世以来,数学家们通过魔方写了几本关于群论的书。所以魔方虽然没有成为空间几何的教学工具,但一定程度上可以作为学习群论的“好榜样”。

对于魔方的研究,群论有一个很重要的优势,就是可以充分利用魔方的对称性。当我们提到4325亿这个庞大的数字时,其实有一个疏漏,就是没有考虑魔方作为立方体的对称性。结果就是,4325亿种颜色组合,其实很多都是一模一样的,只是从不同的角度看(比如让不同的脸朝上)。所以,4325亿这个令人望而生畏的数字,其实是“注水猪肉”。那么,这种“猪肉”中有百分之几的“水”呢?说出来吓唬大家:占了将近99%!换句话说,数学家仅通过对称性就可以将魔方的颜色组合减少两个数量级[注5]。

但减少两个数量级还不足以找到“神数”,因为那只是把前面提到的1000万年减少到10万年。对于解决一个数学问题来说,10万年显然太长了,我们也不指望有人会用1亿台计算机来计算神的数量。数学家虽然聪明,但在其他方面不一定富有。也许他们真正能使用的是他们桌子上的机器。所以,为了找到“神数”,人们需要找到更巧妙的思路。幸运的是,群论工具的力量远没有被用来分析像立方体的对称性这样明显的东西。在它的帮助下,新的想法很快出现了。

3.寻找“上帝之数”

1992年,德国数学家H. Kochiemba提出了一个新的想法,寻找恢复魔方的方法。他发现魔方的一些基本旋转模式可以形成自己的系列,通过这种旋转可以形成近200亿种颜色组合[注6]。利用这200亿种组合,柯贤巴把魔方的还原分解成两步:第一步,把任意颜色组合转换成那200亿种组合中的一种,第二步,还原那200亿种组合。如果把魔方的复原比作汪洋大海中驶向固定目的地的小船,那么柯贤八提出的200亿种颜色组合就像一个特殊的水域——比那个固定地点大200亿倍的特殊水域。他提出的两步,就好比让船先驶向那个特殊的水域,再从那里驶向那个固定的目的地。在汪洋大海中找到一个巨大的特殊水域,显然要比直接找到那个小小的目的地容易得多,这就是科善巴新想法的优势。

即便如此,用柯恰巴的方法估算神的数量也不是一件容易的事。特别是为了快速计算,最好在计算机的内存中存储恢复200亿种颜色组合(这相当于那个“特殊水域”的地图)的最少旋转数,大约需要300兆内存。300万亿在今天并不是一个很大的数字,但在柯贤巴提出新思想的那一年,普通机器的内存还远不及它的十分之一。所以直到三年后,才有人用Kochenba的方法给出了第一个估算结果。他叫M. Reid,是美国中佛罗里达大学的数学家。在1995中,Reid通过计算发现,魔方的任何颜色组合最多经过12次旋转,就可以变成科克伦拜尔娜的200亿种组合之一。而最多18次旋转之后,那200亿个组合中的任何一个都可以恢复。这说明魔方的任何颜色组合最多旋转12+18=30次就可以恢复。

得到上述结果后,里德很快改进了他的计算,将结果从30个减少到29个,这说明“神数”不会超过29个。此后,随着计算机技术的发展,数学家们进一步完善了Reid的结果,但进展并不迅速。直到11年后的2006年,奥地利约翰尼斯·开普勒大学符号计算研究所的博士生席尔武·拉杜才把这个结果推到了27。第二年,也就是2007年,美国东北大学的计算机科学家D. Kunkle和G. Cooperman把这个结果推到了26。他们的工作采用了并行计算系统,使用了700万兆内存,消耗了8000小时的计算时间(相当于近一年24小时不间断计算)。

这些计算表明“神的数量”不会超过26。然而,所有这些计算的最大优点——即利用了科山坝的“特殊水域”——也是他们最致命的弱点,因为他们给出的修复方法必须经过那个特殊水域。但实际上,很多色彩组合的最佳修复方法根本不经过那个特殊的水域。比如,任何一艘离目的地很近,只是不在特殊水域的船,显然不需要像大陆台湾省的直航包机那样,在前往目的地之前刻意绕过那个特殊水域。所以用柯先巴的思路得到的复原方法未必是最好的,对“神数”的估计也极有可能被高估。

但是,如果不引入科神巴的特殊水域,计算量又太大怎么办?数学家们决定采取一种折中的办法,即扩大那个特殊水域的“面积”,因为特殊水域越大,最佳回收路径刚好经过它的可能性就越大(当然计算量也会相应增加)。2008年,已经研究了15年的计算机专家Rokic,使用了一种相当于将Koshanba的特殊水域扩大几千倍的巧妙方法,在几个月内对神的数量发起了四次猛烈的攻击,将其估计值从25降低到22。截至本文撰写之时,这是世界上最好的结果。Rokic的计算得到了电影特效制作公司Sony Pictures Imageworks的支持,该公司曾为《蜘蛛侠》等著名电影制作特效,并为Rokic提供了相当于50年不间断计算的计算机资源。

所以,现在我们知道“神数”一定不能超过22。不过Rokic里的特殊水域虽然很大,但是颜色组合还是很多的。最好的恢复方法就是不要经过那片特殊的水域。所以“神数”很可能小于22。那么,多少钱?虽然人们无法确切知道,但种种迹象表明,极有可能是20。这是因为人们在过去多年的所有努力中,从来没有遇到过任何一种颜色组合必须经过20次以上的翻转才能还原——包括Rokic直接计算出来的大约4万亿种颜色组合。这说明“神数”很可能不超过20。另一方面,人们找到了上万种颜色组合,必须经过20转才能还原,可见“神数”不能少于20。结合这两个方面,数学家们普遍认为“神数”的真实值是20。当然,“神”可能是微妙的,我们谁也不敢保证它是否会在某个角落给我们惊喜。我们唯一有理由相信的是,这个游戏和数学交织而成的神秘“神数”,离它问世的那一天已经不太遥远了。

给…作注解

1.魔方由鲁比克自己命名,魔方由美国玩具公司Ideal Toys命名。在西方国家,魔方这个名字更受欢迎,而在中国,魔方这个名字更受欢迎。另外要提醒读者的是,魔方有很多种,本文介绍的3×3×3魔方只是最常见的一种。

2.具体计算如下:组成魔方的小立方体中,有8个顶点,它们之间有8个!物种更替;这些顶点每一个都有3种颜色,方位有37种组合(由于结构限制,魔方只有7个顶点可以有独立的方位)。同样,魔方有12个带边的立方体,中间还有12个!/2种排列(除以2是因为魔方的顶点一旦确定,只有一半的边排列是可能的);这些面各有两种颜色,方位有211种组合(由于结构限制,魔方只有11个面可以有独立的方位)。所以魔方的颜色组合总数是8!×37×12!×211/2 = 4325200327489856000,约为4325亿。另外,值得一提的是,如果我们允许魔方被拆解重组,前述的结构限制将不复存在,其颜色组合的数量将多达5190亿。但是,组合数量的增加并不意味着更难恢复。事实上,魔方结构对组合数量的限制是魔方难以还原的主要原因。比如,26个英文字母在相邻字母的交换下,大概有400亿种组合,远远多于魔方颜色的组合数,但是通过相邻字母的交换,把随机排列的26个英文字母从A到Z恢复到初始排列是非常简单的。

3.确切地说,取五次尝试中间的三次得分的平均值。

4.为了让这个问题有意义,当然首先要定义什么是旋转。在魔方的数学研究中,旋转是指将魔方的任意一面(包括九个小方块)顺时针或逆时针旋转90°或180°。对于每张脸,这样的旋转有三种(请想一想,为什么不是四种?)。因为魔方有六个面,所以有18种基本旋转模式。

5.确切的说,有18种基本旋转模式,得到的颜色组合* * *是8!×8!×4!/2(约6543.8+095亿)。