Ey ey buenas! para el lunes tengo un problema, tengo que programar la función de Ackerman con el programa Mathematica usando listas (vectores) y for, while o ambos.
Es una función muy extraña que no se usa para nada salvo para tocar las narices a los matemáticos e informáticos en algunos contraejemplos, y que si veis la tabla de valores que hay en el enlace de más abajo de la wikipedia observaréis que toma valores altísimos para m y n pequeños, lo que hace que el algoritmo sea realmente lento (probad los valores {m=4,n=2} y veréis jeje, tiene casi 20.000 cifras, que sólo en imprimirlo en pantalla podréis imaginar lo que tarda). Aquí os la dejo escrita para que la tengáis y a ver si me podéis echar una mano, please:
A[0, n_Integer?Positive] := n + 1;
A[m_Integer?Positive, 0] := A[m - 1, 1]
A[m_Integer?Positive, n_Integer?Positive] := A[m - 1, A[m, n - 1]]
No sabía en qué apartado postear esto y lo he posteado aquí porque el c++ lo entiendo, así que si me queréis escribir en c++ el código también me vale.
Más información sobre esta función en la wikipedia: http://es.wikipedia.org/wiki/Función_de_Ackermann
Gracias, y para quien le guste la programación puede ser un pequeño reto
Marcadores