[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [escepticos] Ackermann
Alfonso A. C. wrote:
>
> Hola Mig.
>
> Miguel Angel Velilla Mula wrote:
> >
> > La funcion recursiva de Ackerman es asi:
> >
> > | n+1 , para m = 0
> > A(m,n) = | A(m-1,1) , para n = 0
> > | A(m-1,A(m,n-1)) , para los otros casos
> >
> > Por ejemplo:
> >
> > A(0,0) = 1
> > A(1,0) = 2
> > A(2,0) = 3
> > A(1,1) = A(0,A(1,0)) = A(0,2) = 3
> >
> > etc etc....
> >
> > Estuve tratando de calcular manualmente A(10,10) pero me dio suenho.
> > Alguien en la lista que sea bueno en C puede hacer un programita
> > recursivo y me pasa el resultado manhana?
> >
> > Gracias
> >
> > Mig
>
> No soy bueno, simplemente "lo hablo un poco" ;-)
>
> Te envio el codigo en C adjunto en este mensaje (bueno, c++, diferencia
> minima pues simplemente es por gusto, el definir los contadores dentro de los
> bucles).
>
> Para compilarlo, en unix-linux :
>
> gcc -o Ackermann Ackermann.cc
>
> No he volcado los resultados en fichero ni nada de eso, asi que para ver los
> resultados pon:
>
> Ackermann >Ackermann.txt
>
> Espero te sea util (hay mas modos de hacerlo, entre ellos con parametros de
> entrada para pedirle solo un valor, convertirlo en funcion y demas, pero creo
> que con esto tienes lo que pediste con el menor costo posible) :-)
>
> Un saludo.
>
> P.D.
>
> Compila tb. en DOS y WINDOWS y demas basuras operativas, pero como yo voy en
> Linux, pues eso te indico.
>
> Si hay algun problema, avisad caballero.
>
> --
> Alfonso A.C. (Fonso en el irc)
> email: aafonso en mx3.redestb.es
> www: http://personal.redestb.es/aafonso
>
> ------------------------------------------------------------------------
> #include <stdio.h>
>
> void main()
> {
> long int resultados[100][100];
>
> for (int m=0;m<100;m++)
> {
> for (int n=0;n<100;n++)
> {
> if (m==0) resultados[m][n]=n+1;
> else if (n==0) resultados[m][n]=resultados[m-1][1];
> else resultados[m][n]=resultados[m-1][resultados[m][n-1]];
> printf("M=%d, N=%d , Resultado:%d\n",m,n,resultados[m][n]);
> }
> }
> }
Alfonso, que eres informatico.
A ver deberes. Si la funcion es recursiva hagase el codigo recursivo.
Queda muuuucho mas potito.
--
/-----------------------------------\
| Eloy Anguiano Rey |
| Dpto. Ing. Informatica |
| U.A.M. |
\-----------------------------------/