Practica sobre Funciones

 Las funciones recursivas son funciones que se llaman mientras se ejecutan. Funciona de manera similar a la recursividad, pero debe planificar cuidadosamente cuándo dejan de llamarse o terminará con una función recursiva infinita.

Estas funciones a menudo se usan para dividir una tarea en subtareas más simples para facilitar la resolución de problemas.

1.Funciones recursivas directas:Es cuando una funcion efectua una llamada asi misma; 

función A … A(…) … fin función

>>> def factorial(numero):
...     print "Valor inicial ->",numero
...     if numero > 1:
...         numero = numero * factorial(numero -1)
...     print "valor final ->",numero
...     return numero
...
>>> print factorial(5)
Valor inicial -> 5
Valor inicial -> 4
Valor inicial -> 3
Valor inicial -> 2
Valor inicial -> 1
valor final -> 120
valor final -> 24
valor final -> 6
valor final -> 2
valor final -> 1 


2.Funciones recursivas indirectas:Es cuando una funcion efectua una llamada asi misma; 

función A … B(…) … fin función.       función B … A(…) … fin función

int par (int n)   

{

        if (n == 0) return n+1;   

        return impar(n-1);  

}  

int impar(int n) 

{  

        if (n == 0) return 0;   

        return par(n-1);

} 


3.Funciones recursivas multiple: La ejecución de una llamada recursiva da lugar a más de una llamada a la función recursiva; es decir de una forma simple es una funcion recursiva anidada.

función A … si condición A(…) fin.  si … A(…) … fin función:  La recursividad será no lineal si se cumple condición, pues en tal caso se producen dos llamadas recursivas.

int ackerman(int n, int m)

{

    if(n == 0) return m + 1;

    else if(m == 0) return ackerman(n - 1, 1);

    return ackerman(n -1, ackerman(n, m - 1));

}


Comentarios

Entradas populares de este blog

Construcción de especificación funcional - Mockups

Estudio de línea base de tiempo y costos del proyecto

Principales diagramas de UML