Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Recursividad
14 de junio de 2022
1
Álgebra y lógica computacional
Índice
Objetivo..............................................................................................................................................3
Desarrollo..........................................................................................................................................4
Inducción...........................................................................................................................................4
Recursividad.....................................................................................................................................5
Creación de algoritmos recursivos............................................................................................6
Recursividad e Iteración...............................................................................................................6
Estructura de una función recursiva........................................................................................7
Funciones recursivas.....................................................................................................................8
Tipos de recursividad.....................................................................................................................9
Ejemplos de fórmulas recursivas para sucesiones geométricas y algebraícas.......12
Conclusiones...................................................................................................................................14
Bibliografía......................................................................................................................................15
2
Álgebra y lógica computacional
Objetivo:
b) Recursividad e iteración
d) Funciones Recursivas.
e) Tipos de Recursividad.
f) Eficiencia de la Recursividad.
3
Álgebra y lógica computacional
Inducción
que expresa una propiedad característica de los números naturales, hay que distinguir
claramente entre la inducción empírica, la cual se emplea en las ciencias naturales y cuya
entero positivo o de la buena ordenación de los enteros positivos que se expresa así:
Todo subconjunto S, no vacío, de los enteros positivos contiene un elemento menor que todos
los demás. Un elemento a es el mínimo del conjunto S si a satisface las dos condiciones:
1. a pertenece a él subconjunto S.
2. a ≤ x, para todo x en S.
4
Álgebra y lógica computacional
Recursividad
(ciclos). Los módulos se hacen llamar recursivas. Se puede usar en toda situación en la cual la
solución pueda ser expresada como una secuencia de movimientos, pasos o transformaciones
5
Álgebra y lógica computacional
Las claves para crear un algoritmo recursivo para resolver un problema son:
Cada llamada recurrente se debe definir sobre un problema menor.
Debe existir al menos un caso base para evitar recurrencia infinita.
Se debe analizar en qué momento se realizará la llamada recursiva. Ejemplo:
El factorial de un numero n se define como n!
1*2*3*4*5*6*...*n
Considerar el caso cuando n=5
En este caso:
5! = 5 * 4!
4! = 4 * 3!
3! = 3 * 4!
De esta forma se tiene:
n! = n * (n-1)!
El caso base en el factorial por definición es:
0! = 1
6
Álgebra y lógica computacional
Recursividad e Iteración
directa o de forma indirecta. Una de las construcciones esenciales de programación son los
bucles, las cuales pertenecen a las construcciones de la mayor parte de los idiomas.
con iteración. Solo hay una sentencia en el procedimiento de recursividad, y existe bastante
que tienen dentro numerosos bucles son complejos de leer y comprender. La recursividad es
a que en la recursividad una utilidad se denomina a sí misma, implica tiempo y espacio: debe
usar mucha memoria de la pila de datos para trabajar los resultados. Entonces, la satisfacción
error denominado: stack overflow, como se puede observar en la figura inferior. Al usar los
dos procedimientos, en mi máquina, al hacer el cálculo para n=12 000, el procedimiento que
usa iteraciones llevó a cabo el cálculo, en tanto que el procedimiento que usa recursividad
opción preferible.
7
Álgebra y lógica computacional
Funciones recursivas
a la propia función. Dentro de una función recursiva suelen distinguirse dos partes:
- Los casos base: Son aquellos que para su solución no requieren utilizar la función que se
está definiendo.
- Los casos recursivos: Son aquellos que sí que requieren utilizar la función que se está
definiendo.
recursivas se realicen de forma que en algún momento se lleguen a los casos base.
Una función es recursiva final cuando tras la llamada recursiva no hay que
realizar ningún cómputo adicional. Es decir, el valor devuelto en la llamada recursiva es igual
8
Álgebra y lógica computacional
Ejemplo:
Resultado
f (1) 4
Tipos de recursividad
9
Álgebra y lógica computacional
-Recursión lineal: en la recursión lineal cada llamada recursiva genera, como mucho, otra
llamada recursiva. Se pueden distinguir dos tipos de recursión lineal atendiendo a cómo se
genera resultado.
se combina en una expresión para dar lugar al resultado de la función que llama. El ejemplo
típico de recursión lineal no final es cálculo del factorial de un número (n! = n * (n-1) * ...* 2
* 1). Dado que el factorial de un número n es igual al producto de n por el factorial de n-1, lo
Cada fila del anterior gráfico supone una instancia distinta de ejecución de
10
Álgebra y lógica computacional
-Recursión lineal final: en la recursión lineal final el resultado que es devuelto es el resultado
Uno de los centros más típicos son los números de Fibonacci, números que reciben el nombre
del matemático italiano que los descubrió. Estos números se calculan mediante la fórmula:
de términos de la sucesión de Fibonacci, cada uno de ellos distinto a los demás. Por
11
Álgebra y lógica computacional
Tan sólo un término de cada tres es par, uno de cada cuatro es múltiplo de 3, uno de
cada cinco es múltiplo de 5, etc. Esto se puede generalizar, de forma que la sucesión
Si F(p) es un número primo, p también es primo, con una única excepción. F (4) =3; 3
-Recursión mutua: implica más de una función que se llaman mutuamente. Un ejemplo es el
algebraicas
a (1) = -1 1/8
a (1) = 2 a (n-1)
es cero o si es mayor. El primer caso es un caso base, pues sabemos que la solución es 1,
12
Álgebra y lógica computacional
mientras que para el resto de los casos utilizaremos una llamada recursiva. La distinción de
casos puede realizarse por cualquiera de los 4 métodos que conocemos. Veámoslo por
fact 0 = 1
momento llegue a valer 0. Nótese también que la recursión no es final, pues tras la llamada
acumulador:
fact n = fact' n 1
long [] = 0
no. Sabemos que la definición termina porque en cada llamada recursiva se reduce en una
unidad la longitud de la lista, por lo que en algún momento llegará a estar vacía.
13
Álgebra y lógica computacional
Conclusión
detiene cuando dicha condición deja de cumplirse. Es una técnica de programación muy
poderosa que permite solucionar problemas de forma elegante y eficaz, aunque su uso exige
14
Álgebra y lógica computacional
Bibliografía
Recuperado de:
https://revistas.unal.edu.co/index.php/bolma/article/view/34003
https://www.studocu.com/es-ar/document/universidad-tecnologica-nacional/matematica-
discreta/induccion-y-recursividad-matematica-discreta/8772741
http://sedici.unlp.edu.ar/bitstream/handle/10915/24231/Documento_completo.pdf?
sequence=1&isAllowed=y
https://www.uv.mx/personal/ocastillo/files/2011/04/Recursividad.pdf
https://ccia.ugr.es/~jfv/ed1/c/cdrom/cap6/cap66.htm
Badía, J., Martínez, B., Morales, A., & Sanchiz, J. (n.d.). Retrieved June 14, 2022, from
http://repositori.uji.es/xmlui/bitstream/handle/10234/119828/tema9.pdf?sequence=1
15
Álgebra y lógica computacional
16