An indepth look at Ackermann's Function


Written by and (C) 1999 Daniel Kovacs

A few months ago, I posted an algorithm for Ackermann's function, but I did not give a very good background or explanation for it. Here it is:

In the 1920's the German logician and mathematician Wilhelm Ackermann defined a function that now bears his name. This function is very important in computer science because it helps answer the question of what can and cannot be computed on a computer. It's definition is as follows:

A(0,n) = n+1			For all nonnegative integers n,
A(m,0) = A(m-1, 1)		For all positive integers m,
A(m,n) = A(m-1, A(m, n-1))	For all positive integers m and n.

The special properties of the Ackermann function are a consequence of it's phenominal rate of growth. While the values of A(0,0) = 1, A(1,1) = 3, A(2,2) = 7, and A(3,3) = 61 are not especially impressive,

	A(4,4) = 22265535

and the values A(n, n) continue to grow with extraordinary rapidity.