アッカーマン関数とは、自然数m,nを変数とした関数で、または
または
などと表記される。
とりあえず、定義にしたがって、例えばA(10,10)を展開しようとすると、
A(10,10)
=A(9,A(10,9))
=A(9,A(9,A(10,8))))
=A(9,A(9,A(9,A(10,7)))))
=・・・
訳がわからないことになります。
ただ、変形する毎に、括弧の階層が重なる、ということは、チェーン表記でもやったように、階層を縦に記述する記法を用いれば、もうちょっと解りやすくなるのではないか、という事になります。
この変形の仕方、実はチェーン表記と良く似ています。チェーン表記では、…→y→zのzを減らしてyを変形する、というのが基本手法でした。結果、数のオーダーを決める重要度はzが最重要で、yはその次に重要、となりました。
一方このアッカーマンではどうでしょうか、A(m,n)のmを減らしてnを変形させる、ということは、数のオーダーを決める最重要項目は、nよりもmということにならないでしょうか。
チェーン表記においては、…→y→2、…→y→3、…→y→4と帰納的に実体を見ていきました。アッカーマンにおいても同様に、A(0,n)は定義より明らかにn+1ですから置いといて、A(1,n)、A(2,n)、A(3,n)、…について順々に実体を見ていけば、アッカーマン全体の実体が見えてきそうです。
A(0,k)=k+1なので、
となる。