Esta función es aparentemente simple y se utiliza para examinar el comportamiento del compilador en un problema fundamental bien conocido de interés para la ciencia computacional teórica. La Función de Ackermann es una función altamente recursiva que no sirve para nada útil, ya que no calcula nada de importancia, la función de Ackermann a menudo se utiliza para probar los niveles de optimización de un compilador. Sin embargo, la manera en la que un compilador genera código para esta función se reduce fácilmente a un par de números que son significativos. A continuación te mostramos una tabla de valores, dado pequeños valores de entradas en la función de Ackermann.
A continuación el algoritmo de Ackerman realizado en java:
long ackermann(long m,long n){
if(m == 0){
return (n + 1);
}else if(m > 0 && n == 0){
return ackermann(m - 1, 1);
}else{
return ackermann(m - 1, ackermann(m, n - 1));
}
}