《哥德尔、艾舍尔、巴赫:集异璧之大成》一书的作者曾经说过,他小时候曾经有一个最让他激动的想法:3﹢3﹢3,用3个3和自身运算!
但我小时候并不觉得这很令人激动,因为我很早就知道,3个3相加就是3乘以3。但我好奇的是,这会有什么样的应用题呢?每次买 3个苹果,连续买了 3次,问一共买了多少个苹果?这听上去似乎不太自然。
后来我才知道,长方形的面积计算就是乘法应用最常见的例子。而倍数关系的表达更是让我大开眼界——在比较两个相差甚远的数量时,我们可以利用乘法的关系,直接使用“我比你多多少倍”的句型!
于是我自然往下想了下去,如果拿3个3和自己相乘,会得到什么呢?后来我知道了乘方的概念。乘方,或者叫幂,这个概念并不是自古就有的。古希腊人发明了平方和立方,但只用于面积、体积的计算。在当时,4 次方、5 次方是没有任何实际意义的。随着人类文明的进步,人们需要应付的数字也越来越庞大。重复对折纸张、增长率的叠加和赌博游戏中的翻番都会涉及相同数量的连乘。于是,到了文艺复兴时期,数学家们开始用乘方来表示把同一个数连乘多次的结果,ab就表示b个a相乘。和科技、建筑、能源、生产力一样,发明大数记号也成了人类历史中不可缺少的一环。
利用乘方的记号,我们已经能表示宇宙中几乎所有有意义的数了,整个宇宙的基本粒子数量也不过1080。
但不知大家是否曾想过,乘方之上究竟是什么?
很容易想到,比乘方更大一级的运算就是把b个“a次方”重叠起来。不过,这里我们却遇到了一个之前不曾遇到的问题:究竟应该等于,还是?我们不妨亲自算一算,不同算法得到的结果相差有多远:
难道用两种不同的计算顺序得到的结果总是相同的吗?换a=3试试:
哇,这下可就差远了。可以想象,如果把“a次方”再多迭代几次,从右往左算和从左往右算会差得更多。恐怖的是,我们通常约定,当有多重指数时,运算正是按照从右往左算的顺序进行的。试想,若有一种运算专门用来表示b个a构成的指数塔,这种运算的威力会有多大。
1947年,当英国数学家鲁本·古德斯坦(Reaben Goodstein)研究前一节提到的那个序列时,他遇到了一些连乘方也无法表达出来的大数。于是,古德斯坦便正式提出了这种超越乘方的运算。他把b个指数a迭代的结果记为ba,也就是把b放在a的左上角(见图 1)。这也就是我们现在所说的“超级幂”。在国外的一些论坛上,有时也能看见a^^b的表示方法,便于在纯文本格式下传播。
不过,当时古德斯坦并没有用超级幂(superexponentiation)一词,而是用的tetration一词。这是由前缀“四”(tetra-)和迭代(iteration)一词合成的,意即排在加法、乘法、乘方之后的第四级运算。事实上,tetration比superexponentiation更常用一些。网上甚至有一个tetration论坛,论坛里活跃着一群热爱tetration的数学玩家。
图1
超级幂是一个极为厉害的运算,它的增长速度非常惊人。在很小的数之间进行超级幂运算,就有可能得到一个巨大的天文数字。32等于=16,而42就等于=65536。那么,52等于多少呢?它应当等于2的65 536次方,其结果是一个上万位的数。那62呢?100100呢?大家自己去想象吧。
这时,我们仿佛重新遇到了我小学时代的困惑:超级幂有什么用途?我们能用超级幂编出什么应用题来?刚才说到,古希腊人生活太简单,不知道乘方有什么实际意义。现在,我们自己似乎也变成了窘迫的古希腊人。是否随着人类文明的进一步发展,未来人会随手使用超级幂,并在某本数学书上分析 21世纪的人类为什么还要如此吃力地发明超级幂呢?我觉得有可能,不过这并不重要。现在的我们已经认识到,数学发展的动力并不是解释生活中的现象,数学发展的动力是数学这个学科本身。超级幂在生活中没有实际意义,并不妨碍我们发明超级幂这个记号。
人类的想象力是无止境的。即使超级幂已经大到没有任何实际意义的地步,大家还是会问,再把“a次超级幂”迭代b层(注意运算顺序仍是从最深那一层开始),又会得到什么?是否就得到了第五级的运算呢?或许你马上就意识到了,这样扩展上去是没有尽头的,每一级运算迭代之后都能产生更高一级的运算。虽然此时脑子已经有点乱了,但是数学语言的严格性和理想性告诉我们,利用某种清晰的数学符号和递归法则,我们一定有办法定义出等级越来越高的运算来。
图2
古德斯坦厉害就厉害在这儿。他定义了古德斯坦记号G(n,a,b),以此表示a与b之间的第n级运算。当n=0时,规定G(0,a,b)=b﹢1。也就是说,第0级运算是一个一元运算——自然数的后继。当n=1时,规定边界值示对G(1,a,0)的值进行上一级操作(后继操作),并重复迭代b次,其结果也就是a加上b。一般地,有:
G(n,a,b)=G(n-1,a,G(n,a,b-1))
其中边界值为:
……
这就形式化地给出了第n级运算的意思。
其实,类似的东西不止一次地被提出过。高德纳(Knuth)箭头记号也是一种常用的大数表示方法,其思想与古德斯坦记号几乎完全一样。阿克曼(Ackermann)函数也是一个神速增长的函数,它的定义也有异曲同工之处。很多外文数学论坛则用a[n]b来表示a与b之间的第n级运算,是我比较喜欢的一种符号。
当然,有a[n]b,必然会有a[a[n]b]b,从而又会有a[a[a[n]b]b]b……没有最大的数,只有更大的数。人脑和数学是两个神奇的东西,没有什么数大到人脑想不出来,也没有什么数大到数学表示不出来。仅仅在脑中试想一下100[100]100,你的思维就已经超越了整个宇宙的大小了。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。