ACK-Ackermann, 阿克曼函数

 A(m, n) =
\begin{cases}
n+1 & \mbox{if } m = 0 \\
A(m-1, 1) & \mbox{if } m > 0 \mbox{ and } n = 0 \\
A(m-1, A(m, n-1)) & \mbox{if } m > 0 \mbox{ and } n > 0.
\end{cases}

以前好几次在学语言的使用都有实现这个ack函数的经历,今天读本算法书,偶尔又提到了这个,查了下wiki来头好大

 

Values of A(mn)
m\n01234n
0 1 2 3 4 5 n + 1
1 2 3 4 5 6 n + 2 = 2 + (n + 3) - 3
2 3 5 7 9 11 2n + 3 = 2\cdot(n + 3) - 3
3 5 13 29 61 125 2^{(n+3)} - 3
4 13

={2^{2^{2}}}-3
65533

={2^{2^{2^{2}}}}-3
265536 − 3

={2^{2^{2^{2^{2}}}}}-3
{2^{2^{65536}}} - 3

={2^{2^{2^{2^{2^{2}}}}}}-3
{2^{2^{2^{65536}}}} - 3

={2^{2^{2^{2^{2^{2^{2}}}}}}}-3
\begin{matrix}\underbrace{{2^2}^{{\cdot}^{{\cdot}^{{\cdot}^2}}}} - 3 \\n\mbox{ + 3}\end{matrix}

posted @ 2014-03-06 15:13  卖程序的小歪  阅读(768)  评论(0)    收藏  举报