Skip to content

从一百万到葛立恒数 · From 1,000,000 to Graham's Number

原文:https://waitbutwhy.com/2014/11/1000000-grahams-number.html · 2014-11-20

欢迎来到数字系列第二篇。

上周,我们从 1 开始,慢慢地、稳稳地一路爬到了 1,000,000。用的是小点点。挺可爱的。

好了,欢乐时光结束。今天,动真格的了。

在事情彻底失控之前,我们先沿着 10 的幂一步步往上爬,趁现在还能理解——

10 的幂

从 1 数到 1,000,000 的时候,我们不需要用幂——用一小串数字就能表示我们说的数。想把一个数乘以 10,加个零就行了。

但一旦你超过了一百万,零就开始泛滥,你需要另一种表示法。这就是我们用幂的原因。当人们谈论指数增长时,指的就是你开始用幂之后会发生的那种疯狂事情。举个例子:

如果你把 9,845,625,675,438 乘以 8,372,745,993,275,结果还是小于 829

今天我们越爬越高的时候,会一直沿着 10 的幂前进,因为一旦谈到真正的大数,重要的就是位数,而不是数字本身——比如说,任何一个 70 位的数都在 1069 和 1070 之间,这就是你需要知道的全部。所以至少在本文的前半部分,10 的幂可以很好地充当数量级的「打卡点」。

每把幂增加 1,我们所处的世界就乘以 10,一切都会发生显著变化。让我们从上次结束的地方开始——

106(一百万 – 1,000,000)—— 就是我们上周结尾那张巨大图片里点的数量。在我的电脑屏幕上,那张图大概是 18cm x 450cm = 0.81 平方米。

107(一千万)—— 这个范围里包括绕地球走一圈需要迈的步数(4000 万步)。如果你绕地球走的每一步都用上一篇里网格中的一个点来表示,这些点能填满一个 6 米 x 6 米的方块。

108(一亿)—— 现在我们来到了人类历史上出版过的书籍总数(1.3 亿),这个范围的上限则是一个人一生中估计说出的单词数(8.6 亿)。中大型彩票的中奖概率也在这个范围里。最近一次 Mega Millions 彩票的中奖概率是 1/175,711,536。为了让你对这个概率有个概念,这大概等于 6 年里的秒数。所以这就好比,你知道一只刺猬在接下来 6 年里只会打一个喷嚏、仅此一次,然后你把辛辛苦苦挣来的钱押在某一秒上——比如 2017 年 3 月 19 日凌晨 2:52 的第 36 秒——只有当那个喷嚏正好在那一秒打出来,你才赢。别买 Mega Millions 彩票。

10⁹ (10 亿1 – 1,000,000,000)—— 一个世纪的秒数在这里(大约 30 亿),现存人类的数量也在这里(71.25 亿),而要塞下 10 亿个点,我们那张点阵图得覆盖两个篮球场。

10¹⁰ (100 亿)—— 现在我们来到了大爆炸至今的年数(137 亿)和耶稣基督在世至今的秒数(600 亿)。

10¹¹ (1000 亿)—— 这大约是银河系的恒星数,也是可观测宇宙中的星系数(1000-4000 亿)——所以如果一台电脑从耶稣时代开始每秒列出一个可观测星系,到现在还差得远呢。

10¹² (1 万亿 – 1,000,000,000,000)—— 一百万个百万。这是把全人类放上秤会显示的磅数(约 1 万亿),是人类存在至今的秒数(约 10 万年 ≈ 3 万亿秒),而比这两个数加起来还大的是一光年的英里数(6 万亿)。1 万亿有多大呢?你只需要 4 万亿毫米的丝带,就能给太阳系个蝴蝶结。

10¹³ (10 万亿)—— 这大概是我们在现实世界里能听到的最大量级数字了,而且几乎总是和国家、美元挂钩——2013 年美国名义 GDP 差一点就 17 万亿美元,目前国债差一点就 18 万亿美元。但这俩加起来都被人体细胞总数(37 万亿)秒杀。

10¹⁴ (100 万亿)—— 100 万亿大约是人类历史上所有出版书籍里的字母总数,也是你身体里细菌的数量。2 这个范围里还有全世界的总财富(241 万亿美元,我们在之前一篇文章里已经长篇大论过了)。

10¹⁵ (1 千万亿/1 quadrillion)—— 好了,再见,正常词汇。人们经常说 million、billion、trillion。没人说 quadrillion。说 quadrillion 这个词真的很不酷。3 大多数人会选择说 "a million billion(一百万个十亿)" 代替。不管怎样,地球上大约有 1 千万亿只蚂蚁。跟前面那个细菌数对比一下,相当于你身体里爬着全世界十分之一的蚂蚁。

10¹⁶ (1 亿亿/10 quadrillion)—— 这个范围里的一个数是:你得不小心从桌上碰翻多少张扑克牌才能盖住整个地球?答案是 8.9 亿亿张。人们会气死你。

10¹⁷ (10 亿亿/100 quadrillion)—— 大爆炸至今的秒数。也是过去一周涌入我耳朵里的 Kim Kardashian(金·卡戴珊)相关话题数量。求求停一下吧。

10^18 (100 亿亿) —— 也叫「十亿个十亿」,quintillion(百亿亿)这个词竟然比 quadrillion(千万亿)更不酷。任何有社交能力的人都不会把 quintillion 挂在嘴边。不管怎么说,这是地球所有海洋里水的立方米数,也是一粒盐里的原子数(1.2 百亿亿)。地球上所有沙滩上的沙粒总数大约是 7.5 百亿亿——跟六粒盐里的原子数一样多。

10^19 (1000 亿亿) —— 从这里到最近的恒星的距离,用毫米算就是这么多(3.8 万亿亿毫米)。

10^20 (1 万亿亿) —— 你要一米一步地走完整个银河系,需要走这么多步。有得听的播客可真多。听过普朗克体积 (Planck volume) 吗?这是科学家讨论的最小体积单位,小到你可以在一个质子里塞进 10 万亿亿个。普朗克体积稍后再说。哦对了,还有我们那张圆点图?当我们数到 6000 亿亿个圆点时,这张图就能覆盖整个地球表面了。

10^21 (10 万亿亿) —— 现在我们已经超出了那些怪咖的词汇范围。我好像从没听谁大声说过「sextillion」这个词,希望以后也不会。

10^23 (1000 万亿亿) —— 可观测宇宙中恒星数量的粗略估计。这个数你高中时也见过——6020 万亿亿,即 6.02 x 10^23——就是一摩尔,或阿伏伽德罗常数,即一克氢里的氢原子数。

10^24 (1 亿亿亿) —— 一万亿个万亿。地球大约重 6 亿亿亿千克。

10^25 (10 亿亿亿) —— 全世界海洋里的水滴总数。

10^27 (1000 亿亿亿) —— 如果地球是空心的,需要 1000 亿亿亿颗豌豆才能把它填满。我觉得 octillion 这个词我们也听够了。

好,现在让我们大跨一步,跳进一个完全不同的领域——在这里,地球的体积太小、宇宙大爆炸的时间又太近,都没法拿来当例子了。在这个新的数字竞技场里,只有可观测宇宙——一个直径约 920 亿光年的球体——才配得上我们要处理的量级。4

10^80 —— 要得到 10^80,你要拿一万亿,再乘以一万亿,再乘以一万亿,再乘以一万亿,再乘以一万亿,再乘以一万亿,再乘以一亿。这个数是没法做成圆点海报卖的。那我为啥停在这儿?因为这是宇宙中原子总数的常见估计值

10^86 —— 那要是你想把整个可观测宇宙这个球全塞满豌豆呢?你需要 10^86 颗豌豆才行。

10^90 —— 这是要把整个宇宙塞满中等大小(直径 0.5 毫米)的沙粒所需要的数量。

一个古戈尔 (Googol) —— 10^100

googol 这个名字的由来是这样的:1938 年的某一天,美国数学家爱德华·卡斯纳 (Edward Kasner) 一时兴起,让他 9 岁的侄子米尔顿 (Milton) 给 10100——也就是 1 后面跟 100 个零——起个名字。米尔顿作为一个不着调的 9 岁小孩,提议叫「googol」。卡斯纳显然觉得这答案挺靠谱,就用上了,事情就这么定了。5

那么一个 googol 到底有多大?

它相当于整个宇宙里能塞下的沙粒数量,再乘以 100 亿。所以想象一下整个宇宙被小沙粒塞得满满当当——地球上方、下方、前方、后方,方圆几百亿光年内全是沙子。无穷无尽的沙子。你可以驾着飞机全速朝任何方向飞几万亿年,也永远飞不到沙子的尽头。多到爆炸的沙子。

现在想象你在某个地方把飞机停下来,伸手到窗外抓一粒沙,放到高倍显微镜下一看——发现它其实不是一粒沙,而是 100 亿颗微观小沙粒裹在一层膜里,加起来才是普通一粒沙的大小。如果这个假想里每一粒沙都是这样——每一粒实际上都是 100 亿颗更小沙粒的集合——那这些微观小沙粒的数就是一个 googol。

我们现在无论在小的一端还是大的一端,都快找不到物理世界里的东西来对应这些数字了,但还是再给你三个:

10113 —— 把整个宇宙塞满氢原子所需要的氢原子数。

10122 —— 宇宙里能塞下的质子数。

10185 —— 回到普朗克体积 (Planck volume)(我听过的科学里讨论过的最小体积)。可观测宇宙这个最大的东西,能装下多少个这种最小的东西?10185。没法再往两端拓展了,我们已经到达了物理世界还能用来可视化的最大数字。

一个 Googolplex —— 10googol

在把新造出来的 googol 一词捧红之后,克拉斯纳兴奋得裤子都快穿不住了,又让侄子再造一个词。他问题还没问完,米尔顿就张开他那张毫无分寸感的嘴,把这个数字命名为 googolplex,并以典型的米尔顿风格解释道:「1,后面一直写零,写到你累趴下为止。」6 这次克拉斯纳一反常态地克制了一下,没搭理米尔顿,给这个数字下了个真正的定义:10googol,也就是 1 后面跟一个 googol 个零。把指数完全写出来,一个 googolplex 长这样:

1010,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000

所以 googol 就是 1 后面跟着 100 个 0,这个数字比填满整个宇宙的沙粒数还要大 100 亿倍。你能想象在 1 后面放上 一个 googol 那么多个 0,会产生一个什么样的数字吗?

根本没办法在脑子里装下这个数——我们能做的最多就是试着理解 这个数字要花多长时间。我上面写的只是 指数 ——真要把 googolplex 写出来 ,得写下一个 googol 那么多的 0。首先,我们得搞清楚这些 0 要 写在哪里

如我们所讨论的,把宇宙填满沙子,也只不过达到 googol 的百亿分之一,所以我们要做的是把宇宙塞满沙子,拿一支非常非常细的笔, 在每一粒沙子上写 100 亿个 0 。如果你这么做了,然后用显微镜看一粒写完的沙,你会看到它上面覆盖着 100 亿个微小的 0。如果你对填满宇宙的每一粒沙子都这么做,你就成功地写下了 googolplex 这个数。

那这要花多长时间呢?

我刚测试了一下人合理速度下能写多快的 0,10 秒能写 36 个。7 按这个速度,如果我从 5 岁到 85 岁,每天 16 小时,每一天都在按这个速度写 0,我这辈子能写完 半粒沙子 。你得搭上两条完整的人生才能写完一粒沙。整个人类历史上大约有 1070 亿人活过。如果每个人从生下来到死前每一个清醒的瞬间都在往沙粒上写 0,作为一个物种,我们到现在也就装满了一个边长 1.7 米——大约一个人身高——的立方体的沙粒。 仅此而已

现在,我们来窥探一下这个 数字 本身有多大——正如 Numberphile 的人解释的,一个人所占据的空间里,所有可能出现的量子态总数(也就是这个空间里所有原子排列的可能方式)都 远远 小于 googolplex。这意味着,如果存在一个体积为 googolplex 立方米的宇宙(这是一个极其巨大的空间),从随机概率的角度看,这个宇宙里就会有 和你一模一样的复制品 。为什么?因为在这么大的空间里,一个人大小的空间中的每一种可能的物质排列都会出现许许多多次,也就是说,一切可能存在的东西都会存在——包括你。包括长着猫胡须但其他都正常的你。包括一英尺高的迷你版你。包括除了左手小指变成了拿破仑的老二作为第五根手指外其他一切都跟你一样的你。我说的这些不是科幻小说——这就是那么大空间的真实情况。

葛立恒数 (Graham's Number)

你知道那种感觉吗?你在生活中晃荡,其实迷失了自己却浑然不觉,然后有一天,对的人出现了,你才突然意识到——原来你一直找的就是这个。

我对葛立恒数 (Graham's number) 就是这种感觉。

巨大的数字一直既让我着迷又让我做噩梦,在了解葛立恒数之前,我以为一个人所能设想的最大的数就是像「一个古戈尔普勒克斯 (googolplex) 的古戈尔普勒克斯次方」这种东西——想想就够我脑洞大开的了。但等我知道了葛立恒数,我才意识到,自己不仅还没摸到真正巨大的数字的皮毛,我根本没能力去摸——我压根没有工具。而现在我有了这些工具(今天你也会有),那个「古戈尔普勒克斯的古戈尔普勒克斯次方」听起来就像一个小孩被问到能想到的最大数字时回答:「100 加 100!」

在我们开始之前——葛立恒数为什么会成为人们讨论的一个数?

我不打算真的解释,因为解释起来又无聊又绕——这是罗纳德·葛立恒 (Ronald Graham)(一位在世的美国数学家)提出这个数时正在研究的官方问题:

把一个 n 维超立方体的每一对几何顶点相连,得到一个 2n 个顶点上的完全图。将该图的每条边涂成红色或蓝色。使得每一种这样的着色都至少包含一个位于四个共面顶点上的单色完全子图的最小 n 值是多少?

我说了吧,又无聊又绕。总之,这个问题没有单一答案,但葛立恒的证明给出了下界和上界,葛立恒数就是他所得到的 n 的上界的一个版本。

他在 1977 年提出了这个数,后来一位同事在《科学美国人》(Scientific American) 上写了篇文章介绍它,称它「大得离谱,保持着有史以来在严肃数学证明中出现过的最大数字的纪录」,这个数字才广为人知。这个数字也因同样的原因于 1980 年被《吉尼斯世界纪录大全》收录,尽管今天它已被超越,但它依旧作为大多数人所听说过的最大数字而闻名。所以葛立恒数就是这么一回事——它不是一个随便挑出来的大数,而是在数学世界里真的有意义的东西。

那么,前面我说过我能想象的数字是有限的,因为我没有工具——那我们需要的工具是什么?

其实关键工具只有一个:超运算序列 (hyperoperation sequence)。

超运算序列是一系列数学运算(比如加法、乘法等等),序列中的每一个运算都是从前一个运算迭代上去的。你马上就会明白。我们从最初、最简单的运算开始:计数。

第 0 级运算——计数

假如我手上有 3,想从这里往上数,我就 3、4、5、6、7 这样一个个数下去,直到数到我要去的地方。这不是什么高级操作。

运算等级 1 —— 加法

加法是数数的上一层迭代,我们可以叫它「迭代式数数」—— 所以我不用 3、4、5、6、7 一个个数,直接说 3 + 4,一步跳到 7。加法是「迭代式数数」意味着加法就像是数数的一个快捷方式 —— 一种把所有数数步骤打包成一个更简洁步骤的方法。

运算等级 2 —— 乘法

再上一层,乘法是迭代式加法 —— 一种加法的快捷方式。我们不用说 3 + 3 + 3 + 3,乘法允许我们把所有这些加法步骤打包成一个更高阶的运算步骤,直接说 3 x 4。乘法是比加法更强大的运算,用它能造出大得多的数。如果我把两个八位数加起来,得到的结果要么是八位数要么是九位数。但如果我把两个八位数相乘,得到的结果就是 15 位或 16 位数 —— 大多了。

运算等级 3 —— 幂运算 (↑)

再上一层,幂运算是迭代式乘法。我不用说 3 x 3 x 3 x 3,幂运算让我可以把这一串打包成更简洁的 34

问题是,大多数人到这里就停下了。在现实世界里,幂运算是我们在超运算序列里通常用到的最高层运算。而我在设想我那个巨大的 googolplexgoogolplex 时,已经是用我知道的最高等级 —— 幂运算 —— 尽了最大努力。在等级 3 上,想尽可能造大数字的办法就是让底数超大而且指数也超大。做完这件事,我就到顶了。

突破天花板、进入真正巨大的数字王国的关键,在于理解你可以往上再走更多层运算 —— 你可以无限地往上迭代。这是数字变得真正庞大的方法。

要做到这一点,我们需要一种不同的记号。到目前为止,我们每一层都用了不同的符号(+、x,还有上标)—— 但如果我们要用一大堆不同的运算等级,我们可不想记一大堆不同的符号。所以我们改用高德纳的箭头记号 (Knuth's up-arrow notation),这一个符号可以用在任何层级上。

高德纳的箭头记号从运算等级 3 开始,把幂运算换成一个向上的箭头:↑。所以用箭头记号的话,我们不写 34,而写 3 ↑ 4,但它们意思一样。

3 ↑ 4 = 81
2 ↑ 3 = 8
5 ↑ 5 = 3,125
1 ↑ 38 = 1

明白了?好。

现在我们再上一层,开始见识超运算序列那种疯狂的威力:

运算等级 4 —— 四级运算 (↑↑)

四级运算 (Tetration) 是迭代式幂运算。在我们弄明白怎么像幂运算打包一串乘法那样打包一串幂运算之前,我们得先搞清楚「一串幂运算」到底是什么。

到目前为止,我们用幂运算做的所有事情都只是一次计算——一个底数和一个指数。但如果我们把两个这样的计算叠在一起,比如:

222

我们就得到了一个幂塔 (power tower)。幂塔的威力惊人,因为它们要从顶端开始往下算。所以 222 = 2(22) = 24 = 16。目前还没什么了不起的,但看看这个:

3333

用括号强调自上而下的顺序:3333 = 33(33) = 3327 = 3(327) = 37,625,597,484,987 = 一个 3.6 万亿的数字

记住,古戈尔 (googol) 和它那填满宇宙的微观小沙粒才只是一个 100 位的数字。所以只需要一座 4 层高的 3 的幂塔,就能碾压古戈尔,以及 10185——填满宇宙所需的普朗克体积数、我们物理世界的最大值。它还没有古戈尔普勒克斯 (googolplex) 那么大,但我们可以轻松搞定,只要再往塔上加一个 3:

33333 = 3(3333) = 3(3.6 万亿位数字) = 远远大于古戈尔普勒克斯,而古戈尔普勒克斯是 10(100 位数字)。至于古戈尔普勒克斯本身,幂塔让我们能立刻羞辱它,把它写成:

1010100 或者更常见的 1010102。所以你可以想象一下,当我们开始建造高高的幂塔时,能得到什么样的数字。四级运算 (Tetration) 相当猛烈。

这些塔属于第 3 级,是指数字符串,就像 3 x 3 x 3 x 3 是第 2 级的乘法字符串一样。我们用第 3 级把那个第 2 级字符串打包成 34,或者 3 ↑ 4。那么我们怎么用第 4 级来打包一个指数字符串呢?双箭头。

3333 等同于 3 ↑ (3 ↑ (3 ↑ 3))。我们把这 4 个单箭头的 3 打包成 3 ↑↑ 4。

同样,3 ↑↑ 5 = 3 ↑ (3 ↑ (3 ↑ (3 ↑ 3))) = 33333

4 ↑↑ 7 = 4 ↑ (4 ↑ (4 ↑ (4 ↑ (4 ↑ (4 ↑ 4))))) = 一座 7 层高的 4 的幂塔。

一般规则如下:

tetration generally

我们马上要再上一个级别,事情要变得更复杂了,所以在继续之前,请确保你真的理解第 4 级和 ↑↑ 的含义——只要记住 a ↑↑ b 就是一座 b 层高的 a 的幂塔。

第 5 级运算 —— 五级运算 (Pentation, ↑↑↑)

五级运算,或者说迭代四级运算,把双箭头字符串打包成一次单一运算。

我们看到的规律是,每一个新级别都会把上一级的一串东西打包起来,用 b 项作为这串东西的长度。例如:

string bundle examples

在每种情况下,a 是底数,b 是被打包字符串的长度。

那么五级运算把什么打包在一起?你怎么能有一串幂塔?

答案是我称之为「幂塔狂吞大餐」的东西。它是这样运作的:

你有一串幂塔一个挨一个地排列着,顺序特定,全都用同一个底数。它们之间的区别在于每座塔的高度。第一座塔的高度就等于底数本身。你把这座塔算出来,得到它完全展开后的结果,而这个结果就成了下一座塔的高度。然后你算出那座塔,结果又成了下一座塔的高度。如此往复。每座塔的结果“喂”给下一座塔,变成它的高度——这就是所谓的喂食狂潮。原因如下:

3 ↑↑↑ 4 表示一串 (3 ↑↑ 3) 运算,长度为 4。所以:

3 ↑↑↑ 4 = 3 ↑↑ (3 ↑↑ (3 ↑↑ 3))

记住,看到 ↑↑ 就意味着一座高度为 b 的幂塔,所以:

3 ↑↑↑ 4 = 3 ↑↑ (3 ↑↑ (3 ↑↑ 3)) = 3 ↑↑ (3 ↑↑ 333)

回想一下前面讲过的,333 = 327 = 7,625,597,484,987。所以:

3 ↑↑↑ 4 = 3 ↑↑ (3 ↑↑ (3 ↑↑ 3)) = 3 ↑↑ (3 ↑↑ 333) = 3 ↑↑ (3 ↑↑ 7,625,597,484,987)

这样,第一座高度为 3 的塔算出来大约是 7 万亿。接下来我们要处理的括号是 (3 ↑↑ 7,625,597,484,987),第一座塔的结果就成了第二座塔的高度。那么这座由约 7 万亿个 3 组成的塔会有多高呢?

假设每个 3 有 2 厘米高——差不多是我手写 3 的大小——那这座塔大约会有 1.5 亿公里高,能一路顶到太阳。就算我们用小小的、打印出来的 2 毫米 3,这座塔也能在到达终点之前,来回地球和月球四十趟。如果我们把这些小 3 平铺在地上,这条“塔”能绕地球 400 圈。我们就把这座塔叫做“太阳塔”吧,因为它一路延伸到了太阳。所以我们现在有:

3 ↑↑↑ 4 = 3 ↑↑ (3 ↑↑ (3 ↑↑ 3)) = 3 ↑↑ (3 ↑↑ 333) = 3 ↑↑ (3 ↑↑ 7,625,597,484,987) = 3 ↑↑ (太阳塔)

最后这个 3 ↑↑ (太阳塔) 运算,是一座由 3 组成的幂塔,它的高度就是把整个太阳塔算出来后得到的那个数(而我们要建的这最后一座塔,连塞进可观测宇宙都远远不够)。而我们要一直算完这最后一座塔,才能得到 3 ↑↑↑ 4 的最终值。

所以用 ↑↑↑,也就是五级运算 (pentation),会引发一场幂塔喂食狂潮——过程中,每座塔的高度本身就开始变得不可理喻,更不用说最终的实际数值了。用通式写就是:

pentation generally

我们再往上升一级——

运算第 6 级——六级运算 (Hexation) (↑↑↑)

那么在第 4 级,我们处理的是一串第 3 级的指数——一座幂塔。在第 5 级,我们处理的是一串第 4 级的幂塔——一场幂塔喂食狂潮。在第 6 级,也叫六级运算 (hexation) 或迭代五级运算 (iterated pentation),我们处理的是一串幂塔喂食狂潮——我们就叫它“幂塔喂食狂潮变态狂欢节”吧。基本思路是这样的:

幂塔喂食狂欢就此上演。这场狂欢产出的最终数字,会变成下一场喂食狂欢里的塔的数量。然后那场狂欢开始,产出一个更荒谬的数字,这个数字又变成再下一场狂欢的塔的数量。如此循环。

3 ↑↑↑↑ 4 就是一场幂塔喂食狂欢精神病节,期间总共发生 3 场 ↑↑↑ 喂食狂欢,每一场都决定下一场里塔的数量。所以:

3 ↑↑↑↑ 4 = 3 ↑↑↑ (3 ↑↑↑ (3 ↑↑↑ 3))

回忆一下之前讲过,3 ↑↑↑ 3 就是那个会变成太阳塔的家伙。所以:

3 ↑↑↑↑ 4 = 3 ↑↑↑ (3 ↑↑↑ (3 ↑↑↑ 3)) = 3 ↑↑↑ (3 ↑↑↑ (太阳塔))

既然 ↑↑↑ 意味着一场幂塔喂食狂欢,那么这里的 3 ↑↑↑ (太阳塔) 就是一场喂食狂欢,其中塔的数量等于把整个太阳塔乘出来的那个数。当那场喂食终于结束时,结果就成了最后一场喂食狂欢里塔的数量。整个精神病节在那最后一场喂食狂欢产出最终数字时结束。以下是六级运算 (hexation) 的一般解释:

hexation generally

这就是超运算序列 (hyperoperation sequence) 的工作方式。你可以不断增加箭头,每加一个箭头,你所处理的规模都会戏剧性地爆炸。到目前为止,我们已经过完了这个序列的前七种运算,包括前四个箭头层级:

↑ = 幂
↑↑ = 幂塔
↑↑↑ = 幂塔喂食狂欢
↑↑↑↑ = 幂塔喂食狂欢精神病节

好,现在我们有工具箱了,让我们开始过一遍葛立恒数 (Graham's number):

葛立恒数将等于一个叫做 g64 的项。我们会走到那一步。首先,我们得从一个叫做 g1 的数开始,然后一路往上爬。那么 g1 是什么?

g1 = 3 ↑↑↑↑ 3

六级运算。你懂的。算是懂了。那我们来过一遍。

因为有四个箭头,看起来我们手上是一场幂塔喂食狂欢精神病节。视觉上是这样的:

grahams festival

所以 g1 = 3 ↑↑↑↑ 3 = 3 ↑↑↑ (3 ↑↑↑ 3),我们有两场喂食狂欢要处理。先处理第一场(红色的):

g1 = 3 ↑↑↑↑ 3 = 3 ↑↑↑ (3 ↑↑↑ 3) = 3 ↑↑↑ (3 ↑↑ (3 ↑↑ 3))

所以第一场喂食狂欢有两座 ↑↑ 幂塔。第一座塔(蓝色的)是个直白的小家伙,因为 b 的值只有 3:

g1 = 3 ↑↑↑↑ 3 = 3 ↑↑↑ (3 ↑↑↑ 3) = 3 ↑↑↑ (3 ↑↑ (3 ↑↑ 3)) = 3 ↑↑↑ (3 ↑↑ 333)

而我们学过 333 = 7,625,597,484,987,所以:

g1 = 3 ↑↑↑↑ 3 = 3 ↑↑↑ (3 ↑↑↑ 3) = 3 ↑↑↑ (3 ↑↑ (3 ↑↑ 3)) = 3 ↑↑↑ (3 ↑↑ 333) = 3 ↑↑↑ (3 ↑↑ 7,625,597,484,987)

而我们知道 (3 ↑↑ 7,625,597,484,987) 就是我们那座 150 公里高的太阳塔:

g1 = 3 ↑↑↑↑ 3 = 3 ↑↑↑ (3 ↑↑↑ 3) = 3 ↑↑↑ (3 ↑↑ (3 ↑↑ 3)) = 3 ↑↑↑ (3 ↑↑ 333) = 3 ↑↑↑ (3 ↑↑ 7,625,597,484,987) = 3 ↑↑↑ (太阳塔)

整理一下:

g1 = 3 ↑↑↑↑ 3 = 3 ↑↑↑ (3 ↑↑↑ 3) = 3 ↑↑↑ (太阳塔)

所以我们两轮觅食狂欢中的第一轮,给我们留下了一座史诗级高的、由 3 组成的太阳塔,要一路乘下来。还记得我们之前展示过幂塔升级得有多快吗:

3 = 3 33 = 27 333 = 7,625,597,484,987 3333 = 一个 3.6 万亿位的数,远远大于一个古戈尔 (googol),如果你把它写出来,能绕地球好几百圈 33333 = 一个指数就有 3.6 万亿位的数,远远远远大于一个古戈尔普勒克斯 (googolplex),这个数你在可观测宇宙里连写下来都做不到,更别说乘出来了

相当疯狂的增长速度,对吧?

而这才只是太阳塔顶上的几厘米。

sun tower

一旦我们往下走一米,这个数就已经远远远远超出我们所能理解的范围了。而这才往下一米

这座塔往下延伸 1.5 亿公里。

我们把这座太阳塔一路乘完的最终结果叫做「疯狂」(INSANITY),全大写。我们连乘出几厘米都无法理解,所以 1.5 亿公里我们就直接叫「疯狂」了,凑合过吧。

回到我们刚才所在的地方:

g1 = 3 ↑↑↑↑ 3 = 3 ↑↑↑ (3 ↑↑↑ 3) = 3 ↑↑↑ (太阳塔)

现在我们可以把太阳塔替换成它算出来的最终数字:

g1 = 3 ↑↑↑↑ 3 = 3 ↑↑↑ (3 ↑↑↑ 3) = 3 ↑↑↑ (太阳塔) = 3 ↑↑↑ 疯狂

好了,我们准备进入两轮觅食狂欢的第二轮。关于第二轮,是这样的——

你知道我刚才对整个「疯狂」这事儿有多崩溃吧?

那可是只有两座塔的觅食狂欢产生的结果。第一座小塔乘完喂给第二座,结果就是「疯狂」。

现在这第二轮觅食狂欢……

有「疯狂」这么多座塔

我们马上就往下走,我保证我不再搞这种一句话一段的戏剧性写法——但请你先花几秒消化一下这件事。「疯狂」大到根本没法谈论。宇宙中的普朗克体积数就是个笑话。古戈尔普勒克斯可笑至极。它大得根本无法进入我的生活。而这就是第二轮觅食狂欢中的数量。

insanity

所以我们有「疯狂」这么多座塔,每一座都要一路乘乘乘乘乘乘乘乘到底,来决定下一座的高度,直到不知怎么的、不知哪里、在未来某个宇宙的某个时刻,我们把第二轮觅食狂欢的最后一座塔乘完……那个数——我们叫它「不行我真受不了」(NO I CAN'T EVEN)——就是 3 ↑↑↑↑ 3 这个幂塔觅食狂欢精神病狂欢节的最终结果。

这个数——「不行我真受不了」——就是 g1

现在……

我要你看着我,我要你听我说。

我们即将进入一个全新的疯狂境界,我要说一些不太对劲的话了。你准备好了吗?

所以 g1 就是 3 ↑↑↑↑ 3,也就是「不,我真的接受不了」。

下一步,我们要到达 g2。方法如下:

g2

仔细盯着那张图看,直到你意识到这事儿有多不对劲。然后我们继续。

对,就是这样。我们花了一整天,艰难地从一个箭头爬到四个箭头,硬扛着每一层新运算带来的折磨,吸收着每加一个新箭头所产生的荒谬效应。我们缓慢而坚定地走着,最终抵达了「不,我真的接受不了」。

然后 Graham 决定,对于 g2,他要做和 g1 一样的事,只不过不是四个箭头,而是「不,我真的接受不了」个箭头。

是箭头。*整个 g1 现在都被塞进 g2,作为它的箭头*数量。

光是加到第五个箭头就已经能把我脑袋炸开,而 g2 里的箭头数量不是五——它远远、远远超过整个宇宙能容纳的普朗克体积数,远远、远远超过一个 googolplex,远远、远远超过 INSANITY。而这仅仅是箭头的数量。 这只是 g2 所使用的运算层级。葛立恒数在「迭代」这个概念上再迭代。它把整个超运算序列本身给打包了。

当然,我们也不会假装能拿这个信息做点什么,除了笑它、盯着它看、被它挑起兴致。关于 g2 我们没什么可说的,所以就不说了。

那 g3 呢?

你猜对了——一旦那个可笑的 g2 被全部展开,它就成了 g3 里箭头的数量。

然后 g4 又这么来一遍。g5 再来一遍。一遍又一遍又一遍,一直到 g64。

g64 就是葛立恒数。

整体看起来是这样的:

grahams number

好了,这就是给你的新噩梦素材。

附言:写完这篇文章之后,我大大降低了在本周餐桌问题里选「无限」作为答案的概率。想象一下活葛立恒数那么多年8 就算假设宇宙、太阳系、地球的条件永远保持不变,人类的大脑也绝对不是被设计来承受那种时间跨度的。我一想就毛骨悚然。我觉得往计算器里敲「无限」会是天大的、天大的错误——这话可是出自一个公开承认自己怕死怕得要命的人之口。奇怪的是,思考葛立恒数这件事居然让我对死亡这件事平静了一点点,因为它提醒了我我其实并不想永生——我确实希望在某个时刻死去,因为永恒地保有意识比死更可怕。是的,死亡来得太快、太快了,但「我确实希望在某个时刻死去」这个念头对我来说非常新鲜,并且实际上让我对我们的必死性比平常更放松了一些。

再附言:如果你实在还想看,这里还有一篇 Wait But Why 关于大数的文章

如果你喜欢这篇,大概也会喜欢:

把 73 亿人塞进一栋楼里

是什么让你成为你?

241 万亿美元你能买到什么?

如果你喜欢 Wait But Why,请订阅我们的**邮件列表**,新文章一发布我们就会发给你。

要支持 Wait But Why,请访问我们的**Patreon 页面**。


  1. 我用的是美式短级差 (short scale) 系统——在英式长级差 (long scale) 系统里,得到 10^12 才叫 billion。

  2. 令人不安。

  3. 幸好我不酷

  4. 我下面会用「宇宙」这个词指代可观测宇宙,这样我就不用在这篇文章里打 49 次「可观测」了。

  5. 59 年后,谢尔盖·布林 (Sergey Brin) 和拉里·佩奇 (Larry Page) 用这个数命名了他们的新搜索引擎,因为他们想强调这个引擎能提供的海量信息。他们不小心拼错了。

  6. 该死的 Milton。

  7. 我父亲在我这个年纪的时候,已经有孩子了。

  8. 或者 g65 年,也就是 (3 [葛立恒数个箭头] 3)……或者 gg64 年……我可以一直这么写下去。

Tweet