BigNum Bakeoff重新启动


12

你们中的有些人可能对BigNum Bakeoff很熟悉,但最终却非常有趣。在某种约束和理论条件下,例如,可以运行该程序的计算机,该目标或多或少可以概括为编写一个输出最大的C程序。

本着同样的精神,我向所有语言提出了类似的挑战。条件是:

  • 最多512个字节

  • 最终结果必须打印到STDOUT。这是你的分数。如果打印多个整数,则将它们串联在一起。

  • 输出必须是整数。(注意:Infinity不是整数。)

  • 内置常数不能大于10,但是数字/数字都可以(例如Avogadro的常数(作为内置常数)无效,但10000无效)。

  • 当提供足够的资源来运行时,程序必须终止

  • 提供足够的运行资源时,打印输出必须是确定性的

  • 提供给您足够大的整数或bigints,以使您的程序可以运行。例如,如果您的程序要求对小于10 1,000,000的数字进行基本运算,那么您可以假定运行此功能的计算机可以处理至少10 1,000,000的数字。(注意:您的程序也可能在可处理最大10 2,000,000的数字的计算机上运行,因此仅调用计算机可处理的最大整数将不会产生确定的结果。)

  • 为您提供了足够的计算能力,使您的程序可以在5秒内完成执行。(因此,不必担心您的程序是否已经在计算机上运行了一个小时,并且很快就无法完成。)

  • 没有外部资源,因此不要考虑导入Ackermann函数,除非它是内置函数。

所有魔法物品都是暂时从一个大神那里借来的。

极大,未知限制

其中B³F是Church-Kleene的序数,其基本序列为

B³F[n] = B³F(n), the Busy Beaver BrainF*** variant
B³F[x] = x, ω ≤ x < B³F

排行榜:

  1. 简单地美丽的艺术,红宝石 ˚F ψ 0(X(Ω M + X(Ω M + 1 Ω M + 1))+ 29(9 9 9

  2. 史蒂芬^ h,Pyth ˚F ψ(Ω Ω)+ω2 + 183(256 27!

  3. 漏泄嫩,Python 3中 ˚F ε 0(9 9 9

  4. fejfo,Python 3中 ˚F ω ω 6(F ω ω 5(9e999))

  5. 史蒂芬ħ,Python 3中 ˚F ω ω +ω2(9 9 9 99

  6. 简单地美丽的艺术,红宝石 ˚F ω+ 35(9 9 99

  7. i ..,Python 2,f 3(f 3(141))

一些注意事项:

如果我们无法验证您的分数,就无法将其放在排行榜上。因此,您可能希望对程序有所解释。

同样,如果您不知道您的人数多少,请解释您的程序,我们将尽力解决。

如果您使用Loader的数字类型程序,我将把您放在一个单独的类别中,该类别称为“具有未知限制的极大”,因为就“标准的基本顺序。

数字将通过快速增长的等级进行排名。

对于那些想学习如何使用快速增长的层次结构来近似大量数字的人,我为此专门托管了一个Discord服务器。还有一个聊天室:Ordinality

类似的挑战:

可打印的最大数量

打高尔夫球的数目大于树的数目(3)

输出大小超过Graham数的最短终止程序

对于那些希望看到一些简单的程序,这些程序为小数值输出快速增长的层次结构的人,这里是:

Ruby:快速增长的层次结构

#f_0:
f=->n{n+=1}

#f_1:
f=->n{n.times{n+=1};n}

#f_2:
f=->n{n.times{n.times{n+=1}};n}

#f_3:
f=->n{n.times{n.times{n.times{n+=1}}};n}

#f_ω:
f=->n{eval("n.times{"*n+"n+=1"+"}"*n);n}

#f_(ω+1):
f=->n{n.times{eval("n.times{"*n+"n+=1"+"}"*n)};n}

#f_(ω+2):
f=->n{n.times{n.times{eval("n.times{"*n+"n+=1"+"}"*n)}};n}

#f_(ω+3):
f=->n{n.times{n.times{n.times{eval("n.times{"*n+"n+=1"+"}"*n)}}};n}

#f_(ω∙2) = f_(ω+ω):
f=->n{eval("n.times{"*n+"eval(\"n.times{\"*n+\"n+=1\"+\"}\"*n)"+"}"*n);n}

等等

从去f_xf_(x+1),我们添加的一个循环n.times{...}

否则,我们将对等所有先前的

f_ω(1) = f_1(1)
f_ω(2) = f_2(2)
f_ω(3) = f_3(3)

f_(ω+ω)(1) = f_(ω+1)(1)
f_(ω+ω)(2) = f_(ω+2)(2)
f_(ω+ω)(3) = f_(ω+3)(3)

等等


数字是否算作内置常数?
PyRulez

3
@CloseVoters这怎么可能太宽泛...好吧,要求用户以无限多个数字输出一个数字与要求用户选择无限多个任务之一来进行操作是不同的。公平地说,这个问题也请用户做同样的事情。4接近的投票已经太广泛了…
user202729 '17

1
@OOurous是的,您可以假设。但是要意识到,当为程序提供更多资源(包括更快的计算)时,输出仍必须是确定性的。
Simply Beautiful Art

1
我在其他评论部分中说明了为什么我认为有限的Brainfuck Busy Beaver函数将是指数函数,但我想补充一点,我认为Church-Kleene序数不适用于任何计算机程序。一个可以用程序编码的函数是可计算的,因此应该属于一些足够强大的递归声音理论可证明的递归函数。该理论将具有递归证明理论序数,并且假设合理的基本序列,该函数将低于FGH中的序数。
Deedlit

1
当然,实际的Busy Beaver函数不能编码为程序(不包括超计算语言),并且可以编程的受限Busy Beaver函数必须增长得慢得多。
Deedlit '17

Answers:


7

红宝石,F ψ 0(X(Ω M + X(Ω M + 1 Ω M + 1))+ 29(999

其中M是第一个Mahlo“序数”,X是chi函数(Mahlo折叠函数),ψ是序数折叠函数。

f=->a,n,b=a,q=n{c,d,e=a;!c ?[q]:a==c ?a-1:e==0||e&&d==0?c:e ?[[c,d,f[e,n,b,q]],f[d,n,b,q],c]:n<1?9:!d ?[f[b,n-1],c]:c==0?n:[t=[f[c,n],d],n,c==-1?[]:d==0?n:[f[d,n,b,t]]]};(x=9**9**9).times{x.times{x.times{x.times{x.times{x.times{x.times{x.times{x.times{x.times{x.times{x.times{x.times{x.times{x.times{x.times{x.times{x.times{x.times{x.times{x.times{x.times{x.times{x.times{x.times{x.times{x.times{x.times{x.times{x.times{h=[];x.times{h=[h,h,h]};h=[[-1,1,[h]]];h=f[h,p x*=x]until h!=0}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}

在线尝试!

代码分解:

f=->a,n,b=a,q=n{          # Declare function
                c,d,e=a;          # If a is an integer, c=a and d,e=nil. If a is an array, a=[c,d,e].compact, and c,d,e will become nil if there aren't enough elements in a (e.g. a=[1] #=> c=1,d=e=nil).
                        !c ?[q]:          # If c is nil, return [q], else
                                a==c ?a-1:          # If a==c, return a-1, else
                                          e==0||e&&d==0?c:          # If e==0 or e is not nil and d==0, return c, else
                                                          e ?[[c,d,f[e,n,b,q]],f[d,n,b,q],c]:          # If e is not nil, return an array inside an array, else
                                                                                             n<1?9:          # If n<1, return 9, else
                                                                                                   !d ?[f[b,n-1],c]:          # If d is nil, return [f[b,n-1],c], else
                                                                                                                    c==0?n:          # If c==0, return n, else
                                                                                                                           [t=[f[c,n],d],n,c==-1?[]:d==0?n:[f[d,n,b,t]]]          # t=[f[c,n],d]. If c==-1, return [t,n,[]], else if d==0, return [t,n,n], else return [t,n,[f[d,n,b,t]]].
                                                                                                                                                                        };          # End of function
                                                                                                                                                                          (x=9**9**9)          # Declare x
                                                                                                                                                                                     x.times{...}          # Looped within 33 x.times{...} loops
                                                                                                                                                                                                 h=[];          # Declare h
                                                                                                                                                                                                      x.times{h=[h,h,h]};          # Nest h=[h,h,h] x times
                                                                                                                                                                                                                         h=f[h,p x*=x]          # Apply x*=x, print x, then h=f[h,x]
                                                                                                                                                                                                                                      until h==0          # Repeat previous line until h==0

数学细目:

f减少a基于n,b,q

基本思想是拥有一个极其嵌套的结构a,并反复减少它,直到减少到a=0。为简单起见,让

g[0,n]=n
g[a,n]=g[f[a,n],n+1]

现在,让我们只担心n

对于任何整数k,我们得到f[k,n]=k-1,因此我们可以看到

g[k,n]=n+k

然后,对于任何d,我们都有,f[[0,d],n]=n所以我们可以看到

g[[0,d],n]
= g[f[[0,d],n],n+1]
= g[n,n+1]
= n+n+1

然后,我们有,对于任何c,d,ef[[c,0,e],n]=f[[c,d,0],n]=c。例如,

g[[[0,d],0,e],n]
= g[f[[[0,d],0,e]],n+1]
= g[[0,d],n+1]
= (n+1)+(n+1)+1
= 2n+3

然后,对于任何c,d,e不属于先前情况的情况,我们都有f[[c,d,e],n]=[[c,d,f[e,n]],f[d,n],e]。这就是开始变得复杂的地方。一些例子:

g[[[0,d],1,1],n]
= g[f[[[0,d],1,1],n],n+1]
= g[[[0,d],1,0],0,[0,d]],n+1]
= g[f[[[0,d],1,0],0,[0,d]],n+1],n+2]
= g[[[0,d],1,0],n+2]
= g[f[[[0,d],1,0],n+2],n+3]
= g[[0,d],n+3]
= (n+3)+(n+3)+1
= 2n+7

#=> Generally g[[[0,d],1,k],n] = 2n+4k+3

g[[[0,d],2,1],n]
= g[f[[[0,d],2,1],n],n+1]
= g[[[[0,d],2,0],1,[0,d]],n+1]
= g[f[[[[0,d],2,0],1,[0,d]],n+1],n+2]
= g[[[[[0,d],2,0],1,n+1],0,[[0,d],2,0]]],n+2]
= g[f[[[[[0,d],2,0],1,n+1],0,[[0,d],2,0]]],n+2],n+3]
= g[[[[0,d],2,0],1,n+1],n+3]
= ...
= g[[[0,d],2,0],3n+6]
= g[f[[[0,d],2,0],2n+6],3n+7]
= g[[0,d],3n+7]
= (3n+7)+(3n+7)+1
= 6n+15

它从那里迅速上升。一些兴趣点:

g[[[0,d],3,[0,d]],n] ≈ Ack(n,n), the Ackermann function
g[[[0,d],3,[[0,d],0,0]],63] ≈ Graham's number
g[[[0,d],5,[0,d]],n] ≈ G(2^^n), where 2^^n = n applications of 2^x, and G(x) is the length of the Goodstein sequence starting at x.

最终引入了更多的f函数自变量以及数组的更多情况,使我们能够超越大多数命名的可计算符号。一些特别知名的:

g[[[0],3,[0,d]],n] ≈ tree(n), the weak tree function
g[[[[0],3,[0,d]],2,[0,d]],n] ≈ TREE(n), the more well-known TREE function
g[[[[0,d]],5,[0,d]],n] >≈ SCG(n), sub-cubic graph numbers
g[[[0]],n] ≈ S(n), Chris Bird's S function

1
序数解释?
CalculatorFeline

这是您定义的最大数字吗?看来是这样!
ThePlasmaRailgun

3

Pyth,F ψ(Ω Ω)+ω 2 +183(〜256 27!

=QC`.pGL&=^QQ?+Ibt]0?htb?eb[Xb2yeby@b1hb)hbXb2yeb@,tb&bQ<b1=Y_1VQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQVQ.v%%Fms["*s[.v"*\\^2d"\"%s"*\\^2d"\"")Qs["=Y.v+*"*\\^2Q"\"*3]"*\\^2Q"\"Q\YuyFYHpQ)

需要任何非空输入,但不使用其值。

说明(针对新的且得分合理的版本):

=QC`.pG                   Sets the value of the autofill variable to app. 256^27!  
                                  27! ~= the number of characters in the string
                                  containing all permutations of the alphabet. 
                                  We interpret that string as a base-256 number.
       L                  Define a function y(b,global Q):
        &=^QQ             Set Q to Q^Q and:
        ?+Ibt]0           If (?) the variable (b) is (I)nvariant on (+)adding itself
                             to the empty array (i.e. if it's an array itself):
               ?htb        If the second element of b is not 0:
                   ?eb         If the last element is not 0
                       [Xb2yeby@b1hG)   return [b with its last element replaced with y(b[-1]), y(b[1]), b[0]]
                     hb                 else return b[0]
                 Xb2yeb     else return b with its last element replaced with y(b[-1])
           @,tb&bQ<b1      If b isn't an array,return:
                               either b-1 if it's a standard ordinal (1 or more)
                               or Q if b is ω
                               or 0 if b is 0
 =Y_1                          Set the global variable Y to -1 (representing ω)
 VQ                        Q times, do (the rest of the explanation):
  VQVQ....VQ               Iterate from 0 to Q-1 183 times, each subiteration
                              reading the most recent value of Q when it starts:
  .v%%Fms["*s[.v"*\\^2d"\"%s"*\\^2d"\"")Q
                            Iterate from 0 to Q-1 Q times, each subiteration 
                               reading the most recent value of Q when it starts:                        
 s["=Y.v+*"*\\^2Q"\"*3]"*\\^2Q"\"Q
                             Y = [Y,Y,Y] Q times, stacking with previous iterations.
 uyFYHpQ)                    Run y_x(Y) for x incrementing until y_(x-1)(Y)=0

我很难计算它的大小,主要是因为它太晚了,而且我对快速增长的层次结构还不甚了解,我甚至不知道如何计算Q经历了多少次。y()绞扭 现在,我对序数有了更多的了解,但我仍然不知道如何计算程序中递归定义所表示的序数的值。我将加入Discord服务器,但这是一个化名,我不想链接到我的真实姓名。

不幸的是,由于我对所说的快速增长的层次结构知之甚少,所以我很可能已经对Ruby的答案失去了。我很难说。 我可能打败了Ruby的答案,但我不确定100%。¯\ _(ツ)_ /¯


如果我理解正确,那么您的分数可能在27^^^27^^27^^4或的大致范围内f<sub>4</sub>(27^^27^^4)) ≈ f<sub>4</sub>(f<sub>3</sub>(f<sub>3</sub>(19)))
Simply Beautiful Art

我做了一个我昨天应该想到的小改动,但是不知何故- y递归操作y(Q-1)而不是仅仅操作Q。这如何影响分数?
史蒂文H.

1
我不完全知道发生了什么。的确y(Q) = L(y(Q-1)),本身?
Simply Beautiful Art

1
我认为我们最好在聊天室中这样做。
史蒂文H.

@SimplyBeautifulArt最好不要为此使用快速增长的层次表示法,因为它很小。
PyRulez

3

Pyth,F 3 +σ -12(256 26

其中σ [n]为阶忙海狸函数Σ m呼吁n:σ [N] =Σ (N)。顺序-1是要表示此处的“忙碌的海狸”不是在真正的图灵机上调用,而是用有限的Q元素包装带近似。这使得这些程序的停止问题可以解决。

=QCGM.x-Hlhf!-/T4/T5.__<GH0M.x+Hlhf!-/T4/T5._>GHlGL=.<QC`m.uX@[XN2%h@N2l@N1XN2%t@N2l@N1XN1X@N1@N2%h@@N1@N2l@N1XN1X@N1@N2%t@@N1@N2l@N1XW!@@N1@N2N2nFKtPNXW@@N1@N2N2gFK)@hNeN3%heNlhNd)bLym*F[]d^UQQUQUld)^U6QJ"s*].v*\mQ"
.v+PPPP*JQ"+*\mQ\'

TL; DR可以创建长度为Q的所有可能的BrainF ** k程序,在整数的最大值为Q且磁带长度为Q的环境中运行它们,并将这些操作的所有状态汇总为追加(这是3+)至Q,关于f的规模重复上述ω 2

如果我想做更多的事情,我还有一半的角色可以使用,但是直到我们弄清楚这是什么之前,我还是将其保留下来。


我对排行榜中的σ进行了更好的解释。
Simply Beautiful Art

4
在我看来,这种特殊的Busy Beaver功能并没有那么快发展。在0和Q之间有Q个整数的限制,程序中只有(Q + 1)^ Q个可能的磁带,并且在程序中有Q个可能的位置,因此最多有Q *(Q + 1)^ Q个可能的状态。正在运行的程序。因此,程序必须在Q *(Q + 1)^ Q步内停止或根本不停止。可能的程序数量也受到指数上限的限制。因此,在我看来,这个Busy Beaver函数具有指数上限,最终函数将在$ f _ {\ omega ^ 2} $量级。
Deedlit

2

python,f 3(f 3(141)),512字节

import math
def f(x):
    return math.factorial(x)  
x=9
for j in range(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(x))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))):
    x=f(x)
print x

这实际上不是一个有效的答案,但是我还是想发布它。快速总结:

import math # imports the factorial function
def f(x):
    return math.factorial(x) # shortens the factorial operation
x=9 # sets x to highest available number
for j in range(f(...f(x)...)): # repeats * A LOT *
    x=f(x) # does the factorial of x
print x # outputs the result

无论如何,我不知道这个答案在技术上是否合法,但是写起来很有趣。随意编辑在代码中发现的任何错误。


我认为这是f_3(9),并且绝对合法。for j in range(f(x)): for j in range(f(x)): x = f(x)但是,即使嵌套也可以得到更大的数字。加入我们的聊天室,讨论原因!
史蒂文H.

为什么它不是一个有效的答案?
Simply Beautiful Art

我不太得到的问题,所以我只是做了我认为是正确的。
我..

1

红宝石,可能是〜fω+ 35(9 9 99

G=->n,k{n<1?k:(f=->b,c,d{x=[]
c<G[b,d]?b-=1:(x<<=b;c-=G[b,d])while c>=d
x<<[c]}
x=f[n-1,k,b=1]
(b+=1;*u,v=x;x=v==[0]?u:v==[*v]?u<<[v[0]-1]:u+f[n-1,G[v,b]-1,b])while x[0]
b)};(n=9**9**99).times{n.times{n.times{n.times{n.times{n.times{n.times{n.times{n.times{n.times{n.times{n.times{n.times{n.times{n.times{n.times{n.times{n.times{n.times{n.times{n.times{n.times{n.times{n.times{n.times{n.times{n.times{n.times{n.times{n.times{n.times{n.times{n.times{n.times{n.times{n=G[n,n]}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}};p n

在线尝试!

近似数学解释:

下面的代码与上面的程序大致相同,但经过简化后使其更易于理解。

G(0,k) = k 是我们的基本功能。

为了评估G(n,k),我们将k其记为G(n-1,1) + ... + G(n-2,1) + ... + G(0,1)

然后改变所有的G(x,1)的到G(x,2)的,并减去1从整个结果。

使用G(x,2),where x<n和重写以上形式,其余部分保留在最后。重复,更改G(x,2)G(x,3),等等。

结果到达时-1,返回基数(b将在中G(x,b)。)

例子:

G(1,1):

1: 1 = G(0,1)
2: G(0,2) - 1 = 1
3: 1 - 1 = 0
4: 0 - 1 = -1      <----- G(1,1) = 4

G(1,2):

1: 2 = G(0,1) + G(0,1)
2: G(0,2) + G(0,2) - 1 = G(0,2) + 1
3: G(0,3) + 1 - 1 = G(0,3)
4: G(0,4) - 1 = 3
5: 3 - 1 = 2
6: 2 - 1 = 1
7: 1 - 1 = 0
8: 0 - 1 = -1      <----- G(1,2) = 8

G(1,3):

1: 3 = G(0,1) + G(0,1) + G(0,1)
2: G(0,2) + G(0,2) + G(0,2) - 1 = G(0,2) + G(0,2) + 1
3: G(0,3) + G(0,3)
4: G(0,4) + 3
5: G(0,5) + 2
6: G(0,6) + 1
7: G(0,7)
8: 7
9: 6
10:5
11:4
12:3
13:2
14:1
15:0
16:-1      <----- G(1,3) = 16

G(2,5):

1: 5 = G(1,1) + G(0,1)
2: G(1,2) + 1
3: G(1,3)
4: G(0,4) + G(0,4) + G(0,4) + G(0,4) + G(0,4) + G(0,4) + G(0,4) + 3
5: G(0,5) + G(0,5) + G(0,5) + G(0,5) + G(0,5) + G(0,5) + G(0,5) + 2
6: G(0,6) + G(0,6) + G(0,6) + G(0,6) + G(0,6) + G(0,6) + G(0,6) + 1
...
1024: -1      <----- G(2,5) = 1024

做一些数学运算,我发现

G(1,n-1) = 2ⁿ
G(2,n+6) ~ 2^G(2,n),  large enough n.

除此之外,它还会变得有些毛茸茸。

一般来说,我们有

G(n,k+G(n-1,1)) ~ G(n-1,G(n,k)), large enough n.

1

Python 3中,F ω ω +ω*ω(9 9 9 99

from functools import*
h=lambda a,x,b:h(h(a,x,b-1),x-1,a)if x*b else a+b
def f(*x):
    if(any(x[:2]):return reduce(lambda y,z:h(z,y,f(x[0],x[1]-1,*x[2:])),x[::-1])if x[0]*x[1]else(f(x[0]-1,f(x[0]-1,x[0],*x[2:]))if x[0]>x[1]else(f(x[1]-1,f(*([x[1]-1]*2+x[2:])),*x[2:])))
    for a,k in enumerate(x):if k:return f(*[f(*[k]*a,k-1,*x[a+1:])]*a,k-1,*x[a+1:])
    return 0
x,s,g,e,r,z=9**9**9**99,"f(*[%s]*%s)",lambda a,b:a%((b,)*a.count("%")),"x*=eval(\"%s\");","x","x=g(e,g(reduce(g,[s]*x,s),r));"
print(exec(z*x)or eval(r))

我很快就会得到解释。


1

Python 3中,〜F ε 0(9 9 9

N=9**9**9
def f(a,n):
 if a[0]==[]:return a[1:]
 if a[0][0]==[]:return[a[0][1:]]*n+a[1:]
 return [f(a[0],n)]+a[1:]
a=eval("["*N+"]"*N)
n=2
while a:a=f(a,n);n+=1
print(n)

在线尝试!


N = 9 ** 9e99应该稍大
fejfo

比谁的答案?
Leaky Nun

我的意思是,如果您将第一个替换为N = 9 ** 9e99,则输出会稍大一些,因为9e99> 9 ** 9。当然,这仍然是您的答案。
fejfo

@fejfo我的意思是这不会改变我的排名。
Leaky Nun

2
有关系吗
fejfo

1

Python 3,323字节,g 9e9(9)

exec("""a=`x:9**x
n=`a,f:`x:a and n(a-1,f)(f(x))or x
c=`n:`l:l[~n](l)
e=`x:n(x,c(0))([x,`l:[a(l[0]),n(*l)],c(0),`l:[a(l[0]),l[2](l[:2])[1]]+map(`i:l[1]((l[0],i))[1],l[2:])]+list(map(c,range(a(x),1,-1))))[1]
f=`l:[l[1](l[0]),e(l[1](l[0]))(l)[1]]
g=`x:e(x)((x,f))[1]((x,a))[1](x)
print(n(9e9,g)(9))""".replace('`','lambda '))

在线尝试!

说明

Python 3是一种真正的递归语言,这意味着函数不仅可以调用自身,而且还可以将其他函数用作输入或输出函数。使用函数使自己变得更好是我程序的基础。

f = lambda x,a:[a(x),e(x)((x,a))[1]]

定义

a(x)=9^x
b(x,f)=a(x), f^x
c(n)(*l)=l[~n](l)
c(0)=c0 <=> c0(…,f)=f(…,f)
d(x,b,c,*l)=a(x), c0(x,b), b(x,c0), b(x,f) for f in l
e(x)=c0^x(x,b,c0,d,c(a(x)),c(a(x)-1),c(a(x)-2),…,c(3),c(2),c(1))[1] 
f(x,a)=a(x),e(a(x))(x,a)[1](x)
g(x)=e(x)(x,f)[1](x,a)[1](x)
myNumber=g^9e9(9)

定义说明

a(x)=9^x a是基本函数,我之所以选择此函数是因为x> 0 => a(x)> x`避免了固定点。

b(x,f)=a(x), f^xb是一般的改进功能,它可以接受任何功能并输出更好的版本。b甚至可以应用于自身:b(x,b)[1]=b^x b(x,b^x)[1]=b^(x*x)

但是要充分利用的b改进功能,b您需要将b的输出用作新的b,这就是c0的作用:

c0(…,f)=f(…,f)
c0(x,b^x)=b^x(x,b^x)[1]>b^(9↑↑x)

更一般的c(n)函数采用n个最后一个参数(从0开始),所以 c(1)(…,f,a)=f(…,f,a)c(2)(…,f,a,b)=f(…,f,a,b)*l表示l是一个数组,并l[~n]接受最后一个参数n

d(x,b,c,*l)=a(x), c0(x,b), b(x,c0), b(x,f) for f in ld使用c0升级b和b升级所有其他输入功能(由于列表的原因,可以有任意数量),
d(x,b,c,d)>9^x,b^x,c^x,d^x并且d²(x,b,c,d)>a²(x), b^(9↑↑x), c^(9↑↑x), d^(9↑↑x)

但如果将其与c结合使用,d会变得更好:
c0²(x,b,c0,d)=d^x(9^x,b^x,c0^x,d^x)=… c0(x,b,c0,d,c1)=c1(x,b,c0,d,c1)=d(x,b,c0,d,c1)=9^x,b^x,c0^x,d^x,c1^x c0²(x,b,c0,d,c1)=c0(9^x,b^x,c0^x,d^x,c1^x)=c1^x(9^x,b^x,c0^x,d^x,c1^x)=…

最后添加的c(x)越多,它的功能就越强大。第一个c0始终为d:c0(x,b,c0,d,c4,c3,c2,c1)=c1(…)=c2(…)=c3(…)=c4(…)=d(x,b,c0,d,cX,cX-1,…,c3,c2,c1)=…
但是第二个将迭代版本留在后面:

c0²(x+1,b,c0,d,c4,c3,c2,c1)
=c0(9^x+1,b^x+1,c0^x+1,d^x+1,c4^x+1,c3^x+1,c2^x+1,c1^x+1)
=c1^x(c2^x(c3^x(c4^x(d^x(9^x+1,b^x+1,c0^x+1,d^x+1,c4^x+1,c3^x+1,c2^x+1,c1^x+1)))))

d^x最后计算c4将采取更加迭代版本的d下一次。c4^x最终计算出的when c3将使用的更多迭代版本c4,…
会创建一个真正强大的迭代版本,因为d

  1. 改善b使用c0
  2. 改善c0使用b
  3. 使用b 改进自身的嵌套,改进所有嵌套层。这意味着d进行更多迭代时,它会变得更强大。

创建c的长链是做什么的e(x)=c0^x(x,b,c0,d,c(a(x)),c(a(x)-1),c(a(x)-2),…,c(3),c(2),c(1))[1]
它使用c0^x绕过那只c0会给d
[1]手段,它最终会回归的第二输出d^…。所以b^…

在这一点上,除了增加输入之外,我想不出与e(x)有任何关系来显着增加e(x)的输出。

因此f(x,a)=a(x),e(a(x))(x,a)[1](x)使用b^… generate by e(x)输出更好的基本函数,并使用该基本函数调用e(x)更大的输入。

g(x)=e(x)(x,f)[1](x,a)[1](x) 使用决赛 e(x)一个巢f并产生真正强大的功能。

Fgh近似

我将需要帮助,以任何形式的fgh近似此数字。

旧版本:F ω ω 6(F ω ω 5 (9e999)),网上试试吧! 解释的修改历史


实际上,f_1(x) = x+x但从长远来看,这并没有太大关系。
Simply Beautiful Art

您能否再解释一下基本顺序?
Simply Beautiful Art

@SimplyBeautifulArt哇,是的,我从更改后忘了更新x*x
fejfo

@SimplyBeautifulArt我的回答没有使用任何序数,因此我很难用序数来解释它。我真正能做的就是给出函数的定义以及fgh中效果的近似值。例如:a2(f_n)~=f_{n+1}
fejfo

1

红宝石,F ε 0 2(5),271个字节

m=->n{x="";(0..n).map{|k|x+="->f#{k}{"};x+="->k{"+"y=#{n<1??k:"f1"};k.times{y=f0[y]};y";(2..n).map{|l|x+="[f#{l}]"};eval x+(n<1?"":"[k]")+"}"*(n+2)}
g=->z{t="m[#{z}]";(0...z).map{|j|t+="[m[#{z-j-1}]]"};eval t+"[->n{n+n}][#{z}]"}
p m[5][m[4]][m[3]][m[2]][m[1]][m[0]][g][6]

在线尝试!

这基于m(n)映射

说明:

m[0][f0][k] = f0[f0[...f0[k]...]]与的k迭代f0

m[1][f0][f1][k] = f0[f0[...f0[f1]...]][k]k迭代f0

m[2][f0][f1][f2][k] = f0[f0[...f0[f1]...]][f2][k]k迭代f0

通常,m[n]接受n+2参数,然后迭代第一个参数f0k倍到第二个参数,然后应用所得到的功能上的第三个参数(如果存在),然后应用所产生的功能到所述第四个参数(如果它存在),等等

例子

m[0][n↦n+1][3] = (((3+1)+1)+1 = 6

通常,m[0][n↦n+1] = n↦2n

m[0][m[0][n↦n+1]][3] = m[0][n↦2n][3] = 2(2(2(3))) = 24

通常,m[0][m[0][n↦n+1]] = n↦n*2^n

m[1][m[0]][3]
= m[0][m[0][m[0][n↦n+1]]][3]
= m[0][m[0][n↦2n]][3]
= m[0][n↦n*2^n][3]
= (n↦n*2^n)[(n↦n*2^n)[n↦n*2^n(3)]]
= (n↦n*2^n)[(n↦n*2^n)[24]]
= (n↦n*2^n)[402653184]
= 402653184*2^402653184

通常,m[1][m[0]][n↦n+1] = f_ω在快速增长的层次结构中。


g[z] = m[z][m[z-1]][m[z-2]]...[m[1]][m[0]][n↦2n][z]

最后的输出是

m[5][m[4]][m[3]][m[2]][m[1]][m[0]][g][6]
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.