大数分析(1)——BEAF

发布时间 2023-12-10 16:22:31作者: 123789456ye

写在前面:本分析相当于习题,不保证正确性(虽然我会去对一下)

定义

BEAF

基础版——线性数阵

数阵的第一个为底数(base,\(a\)),第二个为指数(prime,\(b\)),之后第一个非1的数为驾驶(pilot),驾驶前的一个数是副驾驶(copilot),副驾驶之前的所有被称为乘客(passenger)(所以底数必定为乘客)
注意以上定义不是互斥的,换句话说某个位置可能有几个属性;驾驶员可以没有;换句话说定义很丑
听起来很麻烦吧(而且stm驾驶乘客
下面是基础的计算规则,记数阵(array,\(A\))的值为\(v(A)\)

\[v(A)=a~if~b=1\\ v(A)=a^b~if~no~pilot\\ \]

如果以上规则不满足,那么执行以下操作

  • \(pilot=pilot-1\)
  • \(copilot=v(A')\),其中\(A'\)\(A\)\(b-1\)之后的数阵
  • 所有乘客换成\(b\)

听起来非常莫名其妙对吧(
我们看看形式化的表达
规则由上往下优先度递减

\[\begin{split} (a,b)&=a^b\\ (a,1,...)&=a\\ (a,b,1,...,1,c,...)&=(a,a,a,...,(a,b-1,1,...,1,c,...),c-1,...)\\ (a,b,c,...)&=(a,(a,b-1,c,...),c-1,...) \end{split}\]


那么我们来试一下一些简单的数阵,以下省略\(v(A)\)而是直接记\(A\)

\[\begin{split} (8,1)&=8\\ (8,5)&=8^5\\ (8,5,1)&=(8,5)=8^5\\ \end{split}\]

由归纳法,末尾的\(1\)可以任意增删,为简便起见我们一般省略末尾的\(1\)

\[\begin{split} (8,3,2)&=(8,(8,2,2),1)\\&=(8,(8,(8,1,2),1))\\&=(8,(8,8))\\&=8^{8^8}\\ (8,3,1,2)&=(8,8,(8,2,1,2),1)\\&=(8,8,(8,8,(8,1,1,2),1))\\&=(8,8,(8,8,8))\\ &= 8\uparrow^{8\uparrow^88}8 \end{split}\]


然后我们稍微分析一下增长率,右边是FGH

\[\begin{split} (n,n,2)&=3\\ (n,n,3)&=4\\ (n,n,n)&=\omega\\ (n,n,1,2)&=(n,n,(n,n-1,1,2))=(n,n,n)+1=\omega+1\\ (n,n,2,2)&=(n,(n,n-1,2,2),1,2)=(n,n,1,2)+1=\omega+2\\ (n,n,n,2)&=\omega 2\\ (n,n,n,n)&=\omega^2\\ (n,n,1,1,2)&=(n,n,n,(n,n-1,1,1,2))=(n,n,n,n)+1=\omega^2+1\\ (n,n,2,1,2)&=(n,(n,n-1,2,1,2),1,1,2)=(n,n,1,1,2)+1=\omega^2+2\\ (n,n,1,2,2)&=(n,n,(n,n-1,1,2,2),1,2)=(n,n,n,1,2)+1=\omega^2+\omega+1\\ (n,n,...,n)&=(n,2,1,...,2)=\omega^\omega \end{split}\]

三元的线性数阵相当于高德纳箭头,从而增长率在\(\omega\),四元的线性数阵相当于康威链,从而增长率在\(\omega^2\)
\(n+2\)元线性数阵的极限在\(\omega^n\),从而线性数阵的极限大概是\(\omega^\omega\)

进阶版——多维数阵与分隔符的引入

我们可以将一个矩阵压成一列数阵

\[\left( \begin{array}{l} 1& 2& 3\\ 1&2& 3\\ 1& 2& 3\\ \end{array} \right)=(1,2,3(1)1,2,3(1)1,2,3)\]

从而\((n)\)表示\(n+1\)维分隔符,例如上面那个就是二维数阵的分隔符
结合上行末可以任意增删\(1\)的性质,我们有

\[(4,3,1,1(1)2,3,1)=(4,3(1)2,3)\\ (4,3(1)1,1,1,1(1)5)=(4,3(1)(1)5)\]

然后我们拓展到高维

\[(4,3,(1)1(1)1,1,1(2)1,1(1)1,6)=(4,3(1)(1)(2)(1)1,6)=(4,3,(2)(1)1,6) \]

最后一个等号是因为可以直接补\(1\)
推广一下就是\((A(m)(n)B)=(A(n)B)~if~m<n\)
然而中间的\(1\)的数量确实会影响最后的值,那么如何确定\(1\)的数量呢?


为了统一记号,我们令逗号为\((0)\)
然后是定义(为什么要这么定义?
定义\(\&\)为矩阵操作符,满足

\[\begin{split} b\&^0a&=a\\ b\&^na&=(b-1)\&^na(n-1)b\&^{n-1}a \end{split}\]

然后与上面类似的,定义

\[\begin{split} (a,b(n_1)(n_2)...(n_i)1,...,1,c...)&=(b\&^{n_1}a(n_1)b\&^{n_2}a(n_2)...b\&^{n_i}a(n_i),...,(a,b-1(n_1)(n_2)...(n_i)1,...,1,c...),c-1...)\\ (a,b(n_1)(n_2)...(n_i)c...)&=(b\&^{n_1}a(n_1)b\&^{n_2}a(n_2)...b\&^{n_i}a(n_i)c-1...) \end{split}\]

由此可以把分隔符换成多项的,通过迭代进行升级,可以叠到\(\epsilon_0\),进一步可以叠到\(\text{LVO}\)
但是我觉得这实在是太丑了,而且\(\&\)的定义会有不兼容的地方,所以还是到此为止吧
下一个是BEAF的改进版,鸟之记号