ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Recursividad


Enviado por   •  10 de Febrero de 2014  •  609 Palabras (3 Páginas)  •  1.075 Visitas

Página 1 de 3

RECURSIVIDAD

La recursividad, es un concepto bastante importante y bien básico de la programación. Sin embargo es bastante difícil de asimilar al principio. Se supone que es algo que se va entendiendo con práctica y tiempo.

La mejor definición sin duda de la recursión, es la encontrada en el diccionario hacker:

recursión

-ver recursión.

Por ejemplo GNU, es un acrónimo recursivo (GNU’s Not Unix), ya que la G en GNU, significa GNU, cuya G significa GNU, y así recursivamente…

Pensar de forma recursiva es complicado, y no es un proceso intuitivo.

En programación, una función es recursiva cuando se llama a sí misma. A continuación un ejemplo para intentar entender recursividad. A mí me viene bien para practicarlo para mi examen de algoritmos en marzo. Espero que quede entendible!

Uno de los ejemplos más clásicos es el factorial de un número. Intenta seguir la explicación razonando cada paso. Para cualquier entero positivo N, el factorial de N (que se expresa como N!) es el producto (multiplicación) de todos los enteros menor a él:

• 1! = 1

• 2! = 1 x 2 = 2

• 3! = 1 x 2 x 3 = 6

• 4! = 1 x 2 x 3 x 4 = 24

• 5! = 1 x 2 x 3 x 4 x 5 = 120

• 6! = 1 x 2 x 3 x 4 x 5 x 6 = 720

Ahora, repasando atentamente, se puede ver que el factorial de cada número incluye el factorial de todos los números anteriores a él. Lo escrito en corchetes rectos a continuación es una referencia, no a nivel matemático:

“2!” es “1[1!] x 2″

“3!” es “(1 x 2)[2!] x 3″

Y así sucesivamente. Para cualquier entero N mayor a 1, podemos decir que el factorial de N es igual al factorial del número anterior a N multiplicado por N. La fórmula N! = (N-1)! x N. Vuelve a la lista de factoriales de 1 a 6. Busca en cada caso los términos que son factorial del número anterior para darte cuenta. Entonces se podria decir que una buena practica es encontrar el factor en el resultado que se repite.

Pasando ésto a función en C, podemos hacer una función a la que le pasamos un número, y nos devuelve el factorial:

int factorial(int n){

return n * factorial(n - 1);

}

Ahí tenemos nuestra primera función recursiva. Pero si compilamos el código y ejecutamos el programita, obtenemos una hermosa violación de segmento.

El problema es que la función

...

Descargar como (para miembros actualizados)  txt (3.3 Kb)  
Leer 2 páginas más »
Disponible sólo en Clubensayos.com