Hola amig@s!! Continuando con la serie de tutoriales de C++, en esta oportunidad veremos lo que son funciones recursivas o de recursividad en C++, en el anterior post vimos las Reglas de alcance en esta ocasión explicaremos en qué consiste una función de recursividad, la importancia que tiene así como un ejemplo práctico sobre el mismo tema, sin mas pasamos al tutorial!
¿Qué es recursividad?
Una función recursiva es una función que se llama a sí misma, ya sea de manera directa o indirecta o sea a través de otra función. Los métodos para solucionar problemas recursivos tienen un conjuntos de elementos en común, se llama a una función recursiva para resolver un problema. En realidad, la función sólo sabe cómo resolver los casos mas sencillos, o lo que se conoce como casos y bases. Si a la función se le llama con el caso base, la función de forma sencilla devuelve el resultado, si por el contrario se le hace llamado con un problema mas complejo, la función lo divide en 2 partes, la que sabe resolver y la que no sabe resolver. Para hacer recursividad factible es la primera y la segunda tiene que replantear el problema original, pero todo esto tiene que ser y verse de una manera sencilla o pequeña de la versión original...
Este nuevo problema se parece al problema original, de manera que se llama a una "nueva copia" de sí misma para trabajar en el problema mas pequeño, a esto le llamamos llamadas recursivas o pasos recursivos.
Es muy común que dentro de las llamadas recursivas se incluya la palabra reservada return debido a que, su resultado se combinará con la parte del problema que la función sabe como resolver, todo esto para formar un resultado el cual se transmitirá hacia la llamada original incluso dentro de main.
Veamos un ejemplo fácil con la serie Fibonacci para mostrar un ejemplo de recursividad, para aquellos que aún no saben que es la serie fibonacci es simplemente cuando un número que se da mediante la suma de los 2 números anteriores... Por ejemplo 0,1,1,2,3,5,8,13,21,34,55,89... y así sucesivamente.
La serie fibonacci se puede definir de manera recursiva de la siguiente manera:
- fibonacci( 0 ) = 0
- fibonacci( 1 ) = 1
- fibonacci( n ) = fibonacci( y - 1 ) + fibonacci( y - 2 )
Vamos a calcular un número que ocupa un lugar indeterminado en una serie o sucesión, o sea enésimo numero de fibonacci, usaremos el tipo de dato unsigned long ya que como fibonacci tiende a crecer rápidamente usaremos este dato para el tipo de parámetro y para el valor de retorno de la función.
Código de Recursividad de fibonacci:
Los resultados según el número ingresados por nosotros:
Si "y" es mayor que 1 el paso recursivo línea 39 genera 2 llamadas recursivas cada una, para un problema sencillo que el de la llamada original a fibonacci.
Bien amig@s esto es todo por el momento, espero sea de ayuda para ustedes y por favor si tienen dudas háganlas saber y con mucho gusto podemos orientar y ayudar, en próximos tutoriales veremos las funciones con listas de parámetros vacías y las funciones inline, a su vez estaremos empezando con las series de tutoriales de Php, Python, Javascript entre otros...Me suscribo de ustedes atentamente...by 4uxx!
0 comentarios :
Publicar un comentario