Entradas

Mostrando las entradas de noviembre, 2017

Algoritmo de Ackermann: Funcionamiento y Código en C

Imagen
Función de Ackermann En teoría de la computación, la función de Ackermann es una función recursiva que toma dos números naturales y devuelve un único número natural. En 1928, Wilhelm Ackermann observó que A(x,y,z), la z-ésima exponenciación iterada de x con y como exponente, es una función recursiva que no es recursiva primitiva. En 1935, Rózsa Péter simplificó A(x,y,z) a una función de dos variables. En 1948, Raphael M. Robinson simplificó la condición inicial, quedando una función doblemente recursiva de  N 2   en N, definida recursivamente por las tres condiciones siguientes: A[0, n_] := n + 1; A[m_, 0] := A[m - 1, 1]; A[m_, n_] := A[m - 1, A[m, n - 1]]; Esta última versión es conocida hoy día como la función de Ackermann, el ejemplo más simple de una función total que es computable. O sea, que se puede implementar con ciclos de tipo "While". Pero que no es primitiva recursiva. Por tanto no se puede implementar sólo con ciclos de tipo "For". Esto...