PDA

Ver la Versión Completa : Función de Ackerman



161803398874
09/10/2008, 23:52
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: [Only registered and activated users can see links]ón_de_Ackermann

Gracias, y para quien le guste la programación puede ser un pequeño reto ;)

161803398874
16/10/2008, 23:27
Bueno, por si a alguien le interesa, que lo hice y al parecer lo hice "medianamente bien" usando listas, pero no funcionaba en el caso más sencillo, precisamente en el primero o al pasar del segundo al primero, no lo tengo muy claro. En fin, lo entregué más o menos... Estoy esperando la respuesta del profesor a ver si me lo corrige.