打开/关闭菜单
打开/关闭外观设置菜单
打开/关闭个人菜单
未登录
未登录用户的IP地址会在进行任意编辑后公开展示。

BEAF

来自Googology Wiki
Z留言 | 贡献2025年8月20日 (三) 16:08的版本
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
曾经最为重要的大数记号早早地止步于 ε0,并最终湮没于历史的长河之中,这不禁令人扼腕叹息。[1]
------ 曹知秋

Bowers' Exploding Array Function(BEAF,鲍尔斯爆炸数组函数)是由乔纳森·鲍尔斯(Jonathan Bowers)发明的一种表示大数的符号系统。BEAF 类似于链式箭头符号,都是一种历史记号,但强度远超后者。

BEAF 是一个在大数历史上非常重要的数阵记号,它是单行线性数阵(Bowers' Array Notation)和扩展数阵记号(Extended Array Notation)的超集,两者均由Bowers发明。然而,对于四维数阵以上的符号系统,目前尚无统一认可的定义。因此,严格来说,四维数阵以上的 BEAF 是未明确定义的,而四维数阵及以下的 BEAF 则是定义明确的。

定义

以下是对 BEAF 工作原理的大致框架性描述。如前所述,对于原始 BEAF 在四维数阵之外的扩展,目前尚未达成共识的定义,因此这并非一个完整的定义。

一个 BEAF 表达式形如:

{b,p,c,d,e,(n)α,β,γ,(m)}

其中b,p,c,d,e,α,β,γ均为正整数,n,m是自然数(序列),(n),(m)分别表示n级分隔符与m级分隔符,特别地,0级分隔符 (0),(即逗号,用于分割数组中同一行内的每个项)。

我们定义如下概念:

  • 底数(base):数组的第一个元素,记为 b
  • 指数(prime):数组的第二个元素,记为 p
  • 驾驶员(pilot):指数之后第一个非 1 的元素,可能最早出现在第三个元素的位置。
  • 副驾驶(copilot):驾驶员左侧的第一个元素。若驾驶员是某行的第一个元素,则副驾驶不存在。
  • 结构(structure):数组中由低维组构成的部分。例如:一个数为0维结构,一行为1维结构,一个平面为2维结构,一个立方块为3维结构,...,以此类推。记为 Xn
  • 前结构(previous structures)
    • 前项(previous entry):驾驶员之前、且与所有其他前项在同一行的元素。
    • 前行(previous row):驾驶员所在行之前、且与所有其他前行在同一平面的行。
    • 前平面(previous plane):驾驶员所在平面之前、且与所有其他前平面在同一立方块的平面。
    • ...
    • 这些统称为“前结构”,即若驾驶员处于X维结构中,那前结构为0维到X-1维的所有结构。
  • 指数块(prime block)
    • 对于自然数n,某 n+1 维结构的指数块指的是该 n+1 维结构的前 p 个n维结构,若n维结构的个数少于 p,则使用由1填充的n维结构补充直到满足该条件。
    • 对于序列 A=a1,a2,a3,,an,某 A 维结构的指数块指的是a0+a1p+a2p2++anpn 维结构;若序列 A 内存在高级分隔符,则按BEAF定义展开。
  • 飞机(airplane):包含驾驶员、所有前项以及所有前结构的指数块。
  • 乘客(passengers):飞机中既非驾驶员也非副驾驶的元素。

规则

A是一个 BEAF 表达式,其值计算有以下规则:

  1. 主规则(Prime rule)
    • p=1,则 A=b.
  2. 初始规则(Initial rule)
    • 若不存在驾驶员,则 A=bp.
  3. 灾难性规则(Catastrophic rule):若上述两条规则均不适用,则执行以下操作:
    • 驾驶员减 1;
    • 副驾驶变为 原数组中指数 p 减 1 后的数组;
    • 所有乘客变为 b
    • 数组其余部分保持不变。

线性数阵

BEAF 中的单行线性数阵是几乎所有数阵记号的基础。上文已经介绍过其原版规则,这里不再赘述。

这里介绍一种改进的线性数阵。它将经典的线性数阵改成了容易分析增长率的一元函数,将每一项的默认值改成了 0,且删除了对增长率提升没有帮助的操作。

一个合法的线性数阵表达式形如F(x,a1,a2,,an),其中,x,n,ai均为非负整数。

我们用"#"表示任意序列,"Z"表示由若干个 0 组成的序列。

该线性数阵的展开规则如下:

  1. (基础规则)只有一项时,有 F(x)=x+1
  2. (后继规则)若第二项不为 0,有 F(x,a+1,#)=fx(x),其中 f(x)=F(x,a,#)。例如:F(3,1,4)=F(F(F(3,0,4),0,4),0,4)
  3. (删尾规则)若末项为 0,有 F(#,0)=F(#),例如:F(2,1,0)=F(2,1)
  4. (借位规则)否则,第二项为 0 且存在不为 0 的项。此时有 F(x,Z,0,a+1,#)=F(x,Z,x,a,#)。例如:F(2,0,2,5)=F(2,2,1,5)

下面用快速增长层级对改进的线性数阵进行增长率分析:

F(x)=F(x,0)=x+1=f0(x)

F(x,1)=Fx(x)f0x(x)=f1(x)

F(x,2)f1x(x)=f2(x)

F(x,n)fn(x)

F(x,0,1)=F(x,x)fx(x)=fω(x)

F(x,1,1)=F(F(,0,1),0,1)fω+1(x)

F(x,n,1)fω+n(x)

F(x,0,2)=F(x,x,1)fω+x(x)=fω2(x)

F(x,0,n)fωn(x)

F(x,0,0,1)=F(x,0,x)fωx(x)=fω2(x)

F(x,1,0,1)fω2+1(x)

F(x,0,1,1)=F(x,x,0,1)fω2+x(x)=fω2+ω(x)

F(x,0,0,2)=F(x,0,x,1)fω2+ωx(x)=fω22(x)

F(x,0,0,0,1)=F(x,0,0,x)fω2x(x)=fω3(x)

F(x,0,0,0,0,1)fω4(x)

F(x,0,,0n,1)fωn(x)

一般来说,单独的线性数阵的极限增长率为ωω,但其强度会随"后继规则"的变化而变化。

例如,若把第二条规则改为 F(x,a+1,#)=F(x+1,a,#),则上述分析应该在哈代层级下进行,故极限函数的增长率相当于Hωω(x)fω(x)

对于上文中的记号,通过如下方法可以快速得到增长率:

  1. 取出一个表达式 F(x,a0,a1,,an)
  2. 取出 a0,a1,,an 的部分并反转,得到 an,,a1,a0
  3. F(x,a0,a1,,an) 的增长率即为 ωn×an++ω1×a1+ω0×a0

举个例子:F(x,0,1,1) 的增长率即为 ω2×1+ω1×1+ω0×0

由于以上原因,(单行)线性数阵也被称为 ω 进制数阵,因为 ωn×an++ω1×a1+ω0×a0 类似于一个“ω 进制数”。

另外,表达式 ωn×an++ω1×a1+ω0×a0 对于每个 ai(i=0,1,,n) 都是“线性”的,这也是线性数阵中“线性”一词的来源。

拓展

由于 BEAF 的知名度,其衍生出了十分多样的数阵记号。但大多数增长率超过 ε0 的拓展记号是不良定义的。

带 & 的 BEAF

定义 & 符号如下,它生成扩展数阵中的项和分隔符:

  • 1&na=a
  • b&a=a,(b1)&a
  • b&k+1a=b&ka(k)(b1)&k+1a

注:在大部分版本中,& 的指标写在左上侧。此处写在右上侧是为了避免与 bk 混淆。

注:有的地方认为形如 b&a 的表达式直接表达了一个(扩展)数阵 {a,a,,a},实际上这是错误的。

对于扩展数阵 {a01,a02,,a0m0(x1)a11,,a1m1(x2)(x3)(xn)an1,an2,,anmn},其展开规则如下:

  1. 如果扩展数阵只有 a01,a02 两项,扩展数阵的值为 bp
  2. 如果指数为 1,扩展数阵的值为 b
  3. 如果某个 akmk=1,扩展数阵的值相当于删掉 akmk 后得到的扩展数阵的值。
  4. 如果某个 mk=0,而且 k=nxk<xk+1,那么扩展数阵的值相当于删掉 (xk) 后得到的扩展数阵的值。
  5. 如果扩展数阵中没有分隔符,按数阵记号的规则展开。
  6. 如果以上规则均不适用:此时扩展数阵形如 {a,b(x1)(x2)(x3)(xn)b1,b2,,bt#},满足 x1x2xnb1=b2==bt1=1
    1. 如果 t=1,其展开为 {b&x1a(x1)b&x2a(x2)b&x3a(x3)b&xna(xn)b11#}
    2. 如果 t>1,其展开为 {b&x1a(x1)b&x2a(x2)b&x3a(x3)b&xna(xn)a,a,,a,{a,b1(x1)(x2)(x3)(xn)b1,b2,,bt#},bt1#}

类似于数阵记号,“乘客”的定义可以如下理解:

分隔符 (k) 给出了一个尺寸为 pk 的“块”(类似于 & 符号的结构),“乘客”则是驾驶员左侧的所有这样的块(不完整的用 1 补齐)去掉副驾驶员。于是上述展开规则 5. 和 6. 可以写为:

  1. 复制一个这个扩展数阵的副本,并将副本中指数的值减 1。
  2. 将原本扩展数阵的驾驶员减 1,全体乘客替换为底数。
  3. 如果副驾驶存在,将副驾驶换为之前得到的扩展数阵副本。

-gions 表示法

-gions 表示法是基于&符号的一类表示法,分为如下表示:

  • Legions(分隔符为 L1)
  • Lugions(分隔符为 L2)
  • Lagions(分隔符为 L3)
  • Ligions (分隔符为 L4)
  • ...

枚举

BEAF 及其 -gions 表示法的枚举详见 HypCos 的分析 Analysis - BEAF, FGH and SGH, (Part1) (Part2) (Part3)

历史

数阵记号对整个大数领域的影响是重要的,其思想至今仍然可以在许多记号之中找到痕迹,而 BEAF 则是早期最为重要的数阵型记号。

在更强大的 Array 型记号(如 BANSAN)与 Worm 型记号发明之前,由于其简洁性和极快的增长速度,BEAF 在 Googology 中颇具名气,更不用说那些用该函数定义的充满奇思妙想的命名数(如 golapulus 和传奇的 meameamealokkapoowa oompa——这是 Bowers 定义的最大数之一)。尽管克里斯·伯德(Chris Bird)和约翰·斯宾塞(John Spencer,Bowers 的朋友)协助构建了 BEAF,但通常认为该函数完全由 Bowers 独立创造。

萨比斯·赛比安(Sbiis Saibian)指出,是否存在一种完全符合 Bowers 规则的符号系统,是大数研究领域的一个未解决问题。尽管他仅直接提到五级超运算数阵,但这一问题可能也适用于 BEAF 的其他层级。

由于四级超运算以上的 BEAF 是非形式化的,并且对其形式化仍然是 Googology 中的一个重要开放问题,因此四级超运算以上的 BEAF 的可计算性在数学上没有意义。

参考资料

  1. 曹知秋 (2025). 大数理论. (EB/OL), Vol.1, pp.126-127. https://github.com/ZhiqiuCao/Googology