The Ackermann function is a recursive function that takes two non-negative integers as inputs and returns a non-negative integer as output. The function is defined as follows:
阿克曼函数是一个数学函数,它是递归定义的,并且增长非常快。它是最简单的例子之一,它是一个可计算的全函数,但不是原始递归的。这意味着它可以由图灵机计算,但不能由一个更简单的计算模型计算,该模型对于任何输入都有有限的步骤。
阿克曼函数有不同的版本,但最常见的一个是两个参数的阿克曼-彼得函数,它对于非负整数 m 和 n 的定义如下:
A(m, n) = - n + 1 if m = 0 - A(m-1, 1) if m > 0 and n = 0 - A(m-1, A(m, n-1)) if m > 0 and n > 0
Ackerman函数的反函数:
ackerman函数的反函数——α(x)增长极为缓慢。对于可以想象到的n,α(n)都是在5之内的
用途:
并查集的“路径压缩”算法:在集合的查找过程中顺便将树的深度降低。采用路径压缩后,每一次查询所用的时间复杂度为增长极为缓慢的ackerman函数的反函数——α(x)。对于可以想象到的n,α(n)都是在5之内的。
�(1,0)=1
�(1,1)=�(0,�(1,0))=�(0,1)=2
�(1,2)=�(0,�(1,1))=�(0,2)=22
�(1,3)=�(0,�(1,2))=�(0,22)=23
⋯⋯
�(1,�)=�(0,�(1,�−1))=2�
�(2,0)=2
�(2,1)=�(1,�(2,0))=�(1,2)=22=
标签:function,彼得,函数,22,阿克曼,反函数 From: https://www.cnblogs.com/sddai/p/17370990.html