2. RECURSIVIDAD
PRINCIPIO RECURSIVO
(Divide y vencerás)
Un problema que pueda definirse en función de su tamaño, sea este N,
puede dividirse en instancias más pequeñas (< N) del mismo problema.
y se conocerá la solución explícita a las instancias más simples, lo que
se conoce como casos base, y se puede aplicar inducción sobre las
llamadas más pequeñas y suponer que estas quedan resueltas
3. RECURSIVIDAD EN COMPUTACIÓN
Es el proceso mediante el cual una función se invoca a
si misma de forma repetitiva. Hasta que cumpla
determinada condición.
La recursión es un potente concepto con el que se
pueden expresar ciertos procedimientos de
cálculo muy elegantemente.
4. EJEMPLO:
• Factorial recursivo:
• Partiendo de la premisa:
• Es una definición de factorial un tanto curiosa:
• ¡se define en términos de sı misma!
• El segundo de sus dos casos dice que para conocer el factorial de n hay que conocer el factorial de
n − 1 y multiplicarlo por n.
• Entonces, ¿como calculamos el factorial de n−1?
• En principio, conociendo antes el valor del factorial de n−2 y multiplicando ese valor por n−1. ¿Y el de n−2? Pues del mismo
modo. . .
• y ası hasta que acabemos por preguntarnos cuanto vale el factorial de 1
• 1! vale 1.
5.
6. • resultado =1
• def factorial(n):
• if n == 0 or n == 1:
• resultado = 1
• else:
• if n > 1:
• resultado = n * factorial(n-1)
• return resultado
7. COMBINATORIA
• Se entiende por combinatoria sin repetición, a los diferentes
conjuntos que se pueden formar con «n» elementos, seleccionados
de x en x.
• Cada conjunto se debe diferenciar del anterior en al menos uno de
sus elementos (el orden no importa) y estos no se pueden repetir.
•n = Observaciones totales
•x = Número de elementos seleccionados
8. COMBINATORIA
• EJEMPLO un alumno que tiene un examen de 4 preguntas. De las 4 preguntas ha de elegir tres
¿Cuántas combinaciones distintas podría realizar el alumno? Si razonamos un poco veríamos (sin
llegar a aplicar la fórmula) que el alumno podría elegir cómo contestar a las 3 preguntas de cuatro
formas distintas.
• Conjunto/opción 1: Contestar las preguntas 1,2,3.
• Conjunto/opción 2: Contestar las preguntas 1,2,4.
• Conjunto/opción 3: Contestar las preguntas 1,3,4.
• Conjunto/opción 4: Contestar las preguntas 2,3,4.
• El alumno puede formar 4 conjuntos (n) de 3 elementos (x). Por lo tanto, la combinatoria sin
repetición nos dice cómo formar o agrupar una cantidad de datos/observaciones finita, en grupos
de una cantidad determinada sin que ninguno de los elementos pueda repetirse en cada grupo.
• _ 4!___
• 3! (4-3)!
•n = Observaciones totales
•x = Número de elementos seleccionados
_ 4 * 3!___
3! * 1!
_ 4 ___
1 4
9. COMBINATORIA
• n = 12
• x = 2
• Al sustituir:
• Aplicando el factorial para el denominador, tendríamos
12*11*10*…*1 = 479.001.600. Para el denominador tenemos
2*1*10*9*8…*1 = 7.257.600. Nuestro número combinatorio es
=479.001.600/7.257.600 = 66.
10. NÚMEROS CATALANES
• En una matriz 2x2 ¿Cuantos posibles camino hay para ir de un vértice a
otro. Sin sobrepasar la diagonal y moviéndose de a la derecha -> y
arriba ↑ ?
• DADA
• DDAA
11. NÚMEROS CATALANES
• En una matriz 3x3 ¿Cuantos posibles camino hay para ir de un
vértice a otro. Sin sobrepasar la diagonal y moviéndose de a la
derecha -> y arriba ↑ ?
• DDDAAA
• DDADAA
• DDAADA
DADDAA
DADADA
14. Números de Catalan
• En combinatoria, los números de Catalan forman una secuencia de
números naturales que aparece en varios problemas de conteo que
habitualmente son recursivos. Obtienen su nombre del matemático
belga Eugène Charles Catalan (1814–1894).
• El n-ésimo número de Catalan se obtiene, aplicando coeficientes
binomiales, a partir de la siguiente fórmula
15.
16. Tarea 1
• Investigar y exponer
• ( la siguiente sesion ) sobre el algoritmo RECURSIVO de Ackerman .
• La resolucion de alguna ejercicio al azar de la Tarea 2
• La nota es en razon de la calidad de explicacion (con tablas de
verificacion (a mano) ).
• Se escoger algun es
17. Tarea 2
• Resolver las ejercicios de la practica
• Previamente probar las actividades