大数入门(1)——FGH与基本列
虽然是英文但是讲的不错,稍微翻译一下罢(虽然已经有挺多人写过这个了)
网站
说起来发明FGH这个标尺的确实是神,简洁明了
前置知识
超运算
这倒是非常自然的想法
若将加法看作第一级运算,乘法看作第二级运算,乘方看作第三级运算,如何继续推广呢?
我们观察以下乘法和乘方是怎么定义的
那么我们定义第\(n\)级运算(边界显然,故略去)
对角化
我们考虑一个函数\(x^2\),怎么将它变大(在增速上)?
一种简单的方法是变成\(x^3\),这样它的增速就变成\(O(n^3)\)了
然而把指数换掉也终究只是多项式级,即使是\(O(n^{100})\)远远比不上指数级的\(O(2^n)\)
于是这启发我们把指数也换掉,变成\(x^x\),于是它的增速比指数级还高了
一般的,我们把对一个二元运算中的两个元设置成同一个变量的操作称为对角化
例如\(x+x>x+c,x*x>x*c,x^x>x^c\)
注意对角化是一个非常强的操作,在我们卡壳的时候常常可以用这个突破
一些基础的定义
序数与基本列
从集合的角度可以定义自然数\(0=\{\},1=\{0\}=\{\{\}\},2=\{0,1\}=\{\{\},\{\{\}\}\}\)
于是我们定义后继\(n+1=n\cup\{n\}\),由归纳公理我们可以定义出自然数集
然而定义出的这些数终究是常数,有没有办法让它变化,或者说比任何常数都大?
于是我们开启了序数的大门
我们定义极限序数\(\omega=\{1,2,3,...\}\),这个序数比先前定义的任何常数都大
于是我们定义:序数(ordinal number) \(\alpha=\sup\{\beta|\beta<\alpha\}\)
后继序数\(\alpha+1=\alpha\cup\{\alpha\}\)
我们称\(\{\beta\}\)为序数\(\alpha\)的基本列,例如\(\omega\)的基本列为\(\{1,2,3,...\}\)
于是我们知道\(\omega+1=\{1,2,3,...,\omega\}\)
注意
序数运算不满足交换律
例如\(1+\omega=\sup\{1+n\}=\sup\{n\}=\omega\),中间两个等号相等是因为两个基本列的上界是一样的
例如\(2\omega=2+2+...+2=\sup\{2+n\}=\sup\{n\}=\omega\),第一个等号可以用归纳法证一下
有一种简单的办法是数括号层数
F(ast)G(rowth)H(ierarchy) 快速增长层级
FGH的想法尽管很自然,但我大概想不到(
FGH将序数映射为定义在自然数上的单元函数,定义:
其中\(\alpha[n]\)表示基本列中的第\(n\)项
然后是大数不可不品的一大堆例子爆算
到了\(f_3\)的时候已经不能用乘方展开了,但是显然大概在第四级运算的级别
一般的,\(f_{n-1}\)大概在第\(n\)级超运算的级别
然后我们看看当我们用上极限序数会发生什么
是否觉得不过如此?
仅仅将\(\omega\)换成\(\omega+1\)效果就恐怖如斯了
典中典的葛立恒数\(G\)的增长率也就在这里
严格定义的基本列
定义
与FGH的形式类似,我们严格定义基本列(fundamental sequence)如下(Wainer Hierarchy):
将\(\omega\)不断累加,我们得到\(\omega+\omega=\sup\{\omega+n\}=\sup\{\omega+1,\omega+2,...\}\),我们将其记为\(\omega2\)
其基本列为$$\omega2[n]=\omega[n]+\omega[n]=n+n=2n$$
于是我们继续累加得到\(\omega2+\omega=\omega3\),一直加到\(\omega\omega\),记作\(\omega^2\)
\(\omega^2\)的基本列是$$\omega^2[n] = \omega^{2[n]} = \omega^2[n] = n\omega[n]=n^2$$
然后我们可以使用对角化技术得到\(\omega^\omega\)这一序数,其基本列为
There is a negligible beginning in all great action and thought.