比乘法更大的是乘方,比乘方更大的是什么?
小学时,老师说,由于生活中经常需要把同一个数加很多很多次,因此人们发明了乘法。 a × b 就表示 b 个 a 相加。初中时,老师说,由于生活中经常需要把同一个数乘很多很多次,因此人们发明了乘方。 a ^ b 就表示 b 个 a 相乘。令人失望的是,到了高中时,我们并没有学到更牛 B 的运算符号;大学都快学完了,似乎也没见到乘方升级的苗头。乘方之上究竟是什么?下面,有请今天的主角——超级幂——登场!
加法、乘法、乘方、超级幂的表示方法如下:
这里的每一个a都在角标位置上,比原来的要小,所以其作用于前面临近的那个a,而不是前面整个数字。这里计算的顺序是从右往左的。
超级幂或超乘方是比乘方跟进一级的运算,可以用来表示更大的数。
很容易想到,比乘方更大一级的运算就是把 b 个 “a 次方” 重叠起来。不过,这里我们却遇到了一个之前不曾遇到的问题: a ^ a ^ a 究竟应该等于 (a ^ a) ^ a ,还是 a ^ (a ^ a) ?。我们不妨来算一算,不同算法得到的结果相差多远:
(2 ^ 2) ^ 2 = 4 ^ 2 = 16
2 ^ (2 ^ 2) = 2 ^ 4 = 16
难道两种不同的计算顺序,得到的结果总是相同的吗?让我们换 a = 3 试试:
(3 ^ 3) ^ 3 = 27 ^ 3 = 19683
3 ^ (3 ^ 3) = 3 ^ 27 = 7625597484987
哇,这下可就差远了。可以想象,如果把 “a 次方” 再多迭代几次,从右往左算和从左往右算会差得更多。恐怖的是,当有多重指数时,运算正是按照从右往左算的顺序进行的。试想,若有一种运算专门用来表示 b 个 a 构成的指数塔,这种运算的威力会多大。
1947 年,数学家 Goodstein 发现,不管初始时选取哪个自然数,按照某种预先定义好的规则进行迭代,数列最终将变成 0 。但是,数列收敛到 0 的速度极其缓慢,以至于 Goodstein 需要处理一些连乘方也无法表达出来的大数。于是, Goodstein 便正式提出了这种超越乘方的运算。他把 n 个指数 a 迭代的结果记为 ,也就是把 n 放在 a 的左上角。在国外的一些论坛上,有时也能看见 a^^n 的表示方法,便于在纯文本格式下的传播。不过,当时 Goodstein 并没有用超级幂 (superexponentiation) 一词,而是用的 tetration 一词。这是由前缀“四” (tetra-) 和迭代 (iteration) 一词合成的,意即排在加法、乘法、乘方之后的第四级运算。事实上, tetration 比 superexponentiation 更常用一些。网上甚至有一个tetration 论坛,论坛里活跃着一群热爱 tetration 的数学 geek 。
我们能轻松定义出超级幂的概念,但为什么这个东西却如此“小众”呢?当然,超级幂缺乏很多加减乘除和乘方运算具有的性质,这是一个重要的原因;不过,我想应该还有一个最基本的原因吧——超级幂本身没有什么实用价值。重复对折纸张、增长率的叠加、赌博游戏中的翻番,它们都可以用乘方来描述。实际生活中有什么事情正好能用超级幂来描述的吗?我想应该不会有吧。
参考: