アッカーマン関数がどのように機能するかを理解するのが難しいと感じています。再帰についての私の理解に欠陥があると思いますか?
Python のコードは次のとおりです。
def naive_ackermann(m, n):
global calls
calls += 1
if m == 0:
return n + 1
elif n == 0:
return naive_ackermann(m - 1, 1)
else:
return naive_ackermann(m - 1, naive_ackermann(m, n - 1))
naive_ackermann(3,4) の関数呼び出しを行うと、125 になるのはなぜですか?
コメントをお待ちしております。
ありがとう