擅长:python、mysql、java
<p><strong>A(3,4)</strong>的计算并不像最初从参数的小值中显示的那样简单或简短。阿克曼函数的复杂性(迭代步骤的复杂性)随着参数的增加而迅速增加,计算结果也是如此。</p>
<p>以下是来自<a href="http://en.wikipedia.org/wiki/Ackermann_function" rel="noreferrer">Wikipedia</a>的Ackermann函数的定义:</p>
<p><img src="https://i.stack.imgur.com/3mPy9.png" alt="enter image description here"/></p>
<p>如您所见,在每次迭代中,<strong>m</strong>的值都会减小,直到达到<strong>0</strong>为止,这将是最后一步,此时<strong>n</strong>(+1)的最终值将给出答案。因此,对于答案,您只需要跟踪在递归迭代过程中<strong>n</strong>的变化。对于Ackermann函数为何增长如此迅速,您可以查看wiki的<a href="http://en.wikipedia.org/wiki/Ackermann_function#Expansion" rel="noreferrer"><strong>this</strong></a>小节。</p>
<p>正如Joran Beasley已经提到的,<strong>A(3,4)</strong>确实是维基百科上写的125。然而,达到这个结果的过程并不短。事实上,正如我发现的,需要通过递归计算<strong>315</strong>Ackermann函数值来得到<em>A(3,4)</em>,所需的迭代次数与此大致成正比。</p>
<p>如果您仍然希望可视化这个结果是如何得到的,那么您可以查看<a href="http://www.gfredericks.com/sandbox/arith/ackermann" rel="noreferrer"><strong>this page</strong></a>,它可以动态地计算每个递归步骤。不过,请注意,<em>A(3,4)</em>在这里完成动画需要花费很长时间,但至少您可以用较小的参数了解这个过程。</p>