Professional Documents
Culture Documents
RECURSIVIDAD
A) RELACIN RECURSIVA:
Sn = 2Sn-1 + 1, S0 =0
Sn-1 = 2Sn-2 +1
Sn = 2(2Sn-2 + 1) + 1
Sn = 2 2 Sn-2 + 21 + 1
Sn-2 = 2Sn-3+1
Sn = 23Sn-3 + 22 + 2 + 1
Generalizando:
Sn = 2nSn-n + 2n-1 + 2n-2 + + 22 + 2 + 1
Sn = 2n-1 + 2n-2 + + 22 + 2 + 1
Sn =
2n 1 1 1
2 1
Sn =
2n 1
de la torre de Hanoi.
2)
Sea Sn = 3 Sn-1
S0 = 1
Halle S5
S5 = 3S4
S5 = 3(3S3)
S5 = 3(3(3S2))
S5 = 3(3(3(3S1)))
Recursividad
Semestre 2016-1
S5 = 3(3(3(3(3S0))))
S5 = 35S0
S5 =243 (1)
S5 =243
3)
n
2
Sn = S
+ S
n
3
=0
S0 = 0 y S1 = 1
Hallar S16
S1
S2
S0
S4
S1
S8
S1
S2
S16
S2
S0
S1
S0
S5
S1
4)
con S0 = 2,47
= (2,47)3 Sn 3
generalizando
Sn = (2,47)n Sn n
= (2,47)n . S0 = (2,47)n . (2,47)
Sn = (2,47)n+1
Recursividad
Semestre 2016-1
5.Resolver la recurrencia
CN
2C N
N , C.I.
C1 =0 , N
Cuando
CN
se puede expresar N = 2n
N es una potencia de 2
N como N=2n
2C N
2
2C
2C
2n
2n
2n
n
2
C n
2
n
2n
2n
2
2n 1
2C
2n 1
n
2n
n
2
C
2n 1
n 1
2
C
2n 1
n 1
2n
2
C n
2n 2
n 2
2 2
n 2
1 1
2
2
Generalizando.....
C n n
= 2
1 1 ... 1
2n n
C n
2
C1 n
2n
C n
2
0 n
2n
C n
2
n
2n
C
2n
Ejercicio.
Resolver C N
n 2n
CN
N2 , .
C1 =1 , N
Cuando
N es una potencia de 2
B) CASO DE RECURRENCIA (Orden Superior)
Recursividad
superior
Semestre 2016-1
coeficientes
siendo 1
t1=-1 y t2 = 4
B) Ecuacin General
a(n)=c1(t1)n + c2(t2)n
a(n)=c1(-1)n + c2(4)n
resolviendo con las condiciones inciales tenemos:
para CI:
a(0)=0
se tiene
c1 + c2= 0
Para CI:
a(1)=1
se tiene
- c1 + 4 c2 = 1
Resolviendo; se tiene c1 = -1/5 y c2 = 1/5, la solucin general es :
a(n)=(-1/5) (-1)n + (1/5) (4)n = 1/5[4n - (-1)n]
Escribiendo en forma de funcin recursiva, la ecuacin a(n):
a(n) = 3a(n-1)+4a(n-2) se tiene:
Recursividad
Semestre 2016-1
a(n)
0
1
3a(n-1)-4a(n-2)
,para n = 0
,Para n = 1
,para n > 1
Ejemplo 2
Dada
an = 6an-1 9an-2
; (CI): a0 = 1, a1 = 6
t2 = 3
B) Ecuacion General
an = C1(t1)n + C2 n (t2)n
Reemplazando la solucin de multiplicidad par:
an = C13n + C2n3n
(1)
30 C1 + 0.30 C2
=1
C1 = 1
* Para Ci a1 = 6
31C1 + 1.31 C2
=6
3 + 3 C2
=6
C2
=1
an = 3n + n3n
Solucin General:
an = 3n (n + 1)
Semestre 2016-1
A) Ecuacin Caractersticas
-7
+ 16 - 12 = 0
- 2)2 ( - 3) = 0
= 2, de multiplicidad par y
= 3
se tiene
3 2A1 2A 2 3A 3
11 4A 1 8A 2 9A 3
29= A
1 124A
2 A27A
29
8A
+24
2 + 327 A3
Cuya solucin es A1 = 1, A2 = 2 y A3 = -1, por lo
que reemplazando, la solucin no recursiva, ser:
an = 2n + n 2n + 1 3n
Ejercicio 4: dada la expresin:
a(n)
0
4
8a n 1
si 0
si 1
15a(n 2) sino
Ecuacin Caractersticas
tenemos:
a(n) = 8 a(n-1) 15 a(n-2) con a0 = 0, a1 = 4
a(n) - 8 a(n-1) + 15 a(n-2) = 0
(t2 8t + 15) = 0
(t 5) (t 3) = 0 t1 = 5, t2 = 3
B)
Ecuacin General
Recursividad
Semestre 2016-1
para a(0) = 0
a(0) = c150 + c230
0 = c1 + c2
para a(1) = 4
a (1) = c151 + c231
4 = 5c1 + 3c2
c1 = 2 y c2 = - 2
a(n) = 2 . 5n 2. 3n
solucin general.
an =
n
5an
, n= 0,1,2
8an 2 4an 3 ; n
De condiciones iniciales: a0 = 0, a1 = 1, a2 = 2
Cual es la Solucin General?
Solucin:
A) Ecuacin caracterstica.
Sea an = 5an-1 - 8an-2 + 4an-3
Hacemos:
Ecuacin caracterstica.
t3 5t2 + 8t 4 = 0
(t1) (t 2)2 = 0
Existe una raz y otra raz de multiplicidad par.
t1 =1, t2 =2, t3 =2
Solucin general
an = C1(t1)n + C2(t2)n + C3 n (t3)n
Reemplazando las races se tiene:
an = C1 + C2.2n + n2nC3
Recursividad
Semestre 2016-1
a0 = 0
c1 + c2 = 0
CI:
a1 = 1
c1 + 2c2 + 2c3 = 1
CI:
a2 = 2
c1 + 4c2 + 8c3 = 2
C1 = -2 ; C2 = 2 ; C3 = -1/2
Reemplazando:
an = -2(1)n + 2(2)n -
1
n.2n
2
(t+2)(t-2)2 = 0 tiene
g(2)=4
Recursividad
g(3) = 12.
Semestre 2016-1
primera ecuacin
segunda ecuacin
tercera ecuacin
1
5
( 2)n (
8
8
1
n)2n.
4
g(2) = 6
g(3) = 20
Semestre 2016-1
1
2
, C3 =
, C1 = -2
2
3
C2 =
10
2
1
(3)n + (2)n 2(1)n
3
2
Ejercicos:
Dadas las relaciones recursivas, encontrar la solucin general.
1. an
2. an
3. a(n)
0
, n=0
5
, n=1
3an 1 4an 2 , otro caso
1
, n=0
6
, n=1
6an 1 9an 2 , otro caso
0
4
,si n 0
,si n 1
8a n 1
4. an
n
, n=0,1,2
5an 1 8an 2 4an 3 , otro caso
5, an
1
6
20
6an 1 11an 2 6an
6. an
0
, n=0
-9
, n=1
-1
, n=2
21
, n=3
5an 1 8an 2 4an 3 , otro caso
7.
Sn = S
Recursividad
n
2
+ S
n
5
, n=1
, n=2
, n=3
3 , otro caso
=0
S0 = 0 y S1 = 1 hallar S73
Semestre 2016-1
8.
CN
CN
N , C.I.
C1 =1 , N
Cuando
N es una potencia de 2
N = 2n
FUNCIN RECURSIVA:
Las Funciones recursivas son aquellas que pueden ser calculadas por mquinas o
programas, teniendo cantidades de tiempo y memoria inicialmente muy grandes a su
disposicin. Existen varias definiciones de funciones recursivas. Una de las ms sencillas
es la siguiente
La recursividad es un concepto fundamental en ciencias de la computacin definido como
cuando un procedimiento incluye una llamada a s mismo varias veces hasta llegar a
sus condiciones iniciales ( o base), y retornar a su punto de partida para devolver la
respuesta, se llama funcin recursiva.
NOTA: Cuando una funcin llama recursivamente a si mismo varias veces, en cada
llamada se crean copias independientes de las variables declaradas en el procedimiento
que se llama asignaciones de las variables en memoria.
Los pasos que siguen la funcin recursiva es la siguiente:
a) El procedimiento se llama a si mismo.
b) La base no es recursivo, pero es el punto de partida como el punto de terminacin
de la definicin de la funcin recursiva.
c) Es importante determinar un caso base, es decir un punto en el cual existe una
condicin por la cual no se requiera volver a llamar a la misma funcin.
Recursividad
Semestre 2016-1
FUNCION DE LLAMADA
LLAMADA
12
RESPUESTA
VENTAJAS:
a) Ayuda a comprender mejor, para escribir algoritmos iterativos.
b) Es ms fcil escribir algoritmos recursivos.
c) Cualquier algoritmo recursivo se puede escribir en su forma iterativa.
DESVENTAJAS:
a) La rapidez de su procedimiento es lento.
b) La capacidad de su almacenamiento es alto.
c) El seguimiento de su ejecucin es ms difcil.
Recursividad
Semestre 2016-1
13
Repeticin
Iteracin:
1) Caso FACTORIAL
N! =
N!
N=0 (base)
N(N-1)!
N>0 (recursin)
Funcin Recursiva
1
N=0
FACT(N) =
N*FACT(N-1)
Validamos mediante la
Caso real
TRAZA
N>0
para N=5 5!
5! = 5*4*3*2*1 = 120
Recursividad
Semestre 2016-1
ALGORITMO RECURSIVO
Recursividad
Semestre 2016-1
Recursividad
Semestre 2016-1
2) POTENCIA
bx
Relacin Recursiva
bx =
x=1
b bx-1
x>1
Funcin Recursiva
Pot(b,x) =
CASO
base b=2
Traza
x=1
b Pot(b,x-1)
x>1
exponente x=5 25 = 32
b=2 x=5, 25 = 32
Recursividad
Semestre 2016-1
Algoritmo Recursivo:
17
13
21
34
F0 = 0
F1 = 1
F2 = F1 +F0
F0 = F1
F2 =
Generacin
F2 =
F1 = F2
Recursiva
f0
,n = 0
f1
f1 + f0
,n = 1
,n > 1
Relacin Recursiva
Fn = Fn-1 + Fn-0, F0=0, F1=1
Fn = Fn-1 + Fn-0, F0=0, F1=1
Recursividad
Semestre 2016-1
Funcin Recursiva:
18
0
fibonacci (n)
,n = 0
1
fibonacci (n-1)+ fibonacci (n-2)
,n = 1
,n > 1
Recursividad
Semestre 2016-1
Algoritmo Recursivo
Funcin fibonacci (n)
Inicio
Si (n>2)
fibonacci fibonacci(n-1) + fibonacci (n-2)
Sino
Si (n = 2)
fibonacci 1
sino
fibonacci 0
FinSi
FinSi
Retornar( fibonacci)
Fin
Traza Clculo de fibonacci(5) :
Traza para n = 6
FIBO(6) = FIBO(5) + FIBO (4) = 5
FIBO(5) = FIBO (4) + FIBO (3)
FIBO (4) = FIBO (3) + FIBO (2)
FIBO (3) = FIBO (2) + FIBO (1)
1
Recursividad
Semestre 2016-1
Representacin Grafica
Recursividad
20
Semestre 2016-1
F0 =0, F1 =1
t1
t2
B)
5
2
5
2
+ c2 t2
+ c2
, reemplasando
5
2
(1)
+ c2
5
2
=1
(2)
C1
C2
Recursividad
1
5
1
5
Semestre 2016-1
21
Reemplazando
Fn =
1
5
5 1
2
22
1 1 5
2
5
frmula no recursiva
5) Algoritmo de Euclides
a
sia b,
mcd (a, b) = mcd(a,b a) sia b,
mcd(a b,b) sia b
Algoritmo Recursivo:
Funcin MCD (int a, int b)
Inicio
Si (a=b) /* condicin de parada */
m a
Sino
Si (a<b)
m MCD(a, b-a) /* llamada recursiva */
Sino
m MCD (a-b, b) /* llamada recursiva */
FinSi
FinSi
Retornar( m )
Fin
n
1, Ejercicio Obtener el algoritmo
k
Recursividad
, k=1
n n-1
k k-1
, k>1
Semestre 2016-1
De la serie de Fibonacci
Valores: 0, 1, 1, 2, 3, 5, 8, 13, 21, ..
Cada trmino de la serie suma los 2 anteriores.
fib(n) = fib (n - 1) + fib (n - 2)
Caso base: Fib (0)=2; Fib (1)=3
Caso recursivo: Fib (i) = Fib (i -1) + Fib(i -2) formule la relacin no recursiva.
iteraciones
recursividad
70
60
50
40
30
20
10
0
0
10
20
30
40
50
60
-10
Recursividad
Semestre 2016-1
23
TORRES DE HANOI
24
los movimientos
Recursividad
Semestre 2016-1
1, y 2 nivel
H (2, A, B, C)
H (1, A, C, B)
H (1, B, A, C)
AB
AC
AB
AC
BC
BC
3
H(3, A, B, C)
H(2, A, C, B)
H(1, A, B, C)
AC
AC
1
Recursividad
H(1, C, A, B) H(1, B, C, A)
AB
AB
2
H(2, B, A, C)
CB
AC BA
BC
CB AC BA
3
H(1, A, B, C)
AC
BC AC
6
7
Semestre 2016-1
Relacin
N Movimientos
C0
C1
1 = 2*0 + 1
C2
3 = 2*1 + 1
C3
7 = 2*3 + 1
Cn
Cn = 2 Cn-1 + 1
Relacin Recursiva
Relacin Iterativa
Cn = 2 Cn-1 + 1
C0 =0
Cn = 2n 1 , n >=1
AC
Recursividad
AB
CB AC BA
BC AC
Semestre 2016-1
Recursividad
Semestre 2016-1
1. Ejercicio:
De la torre de Hanoi, inicialmente los n discos estn en el poste
A. Me propongo a mover los n-1 discos del poste A al poste B.
El nico disco restante del poste A muevo al poste C y los n-1
discos del poste B muevo al poste C.
Diga Ud cuantos movimientos se realizo?
AB
Recursividad
AC
BC
Semestre 2016-1
Solucion:
29
n discos
0 discos
0 discos
n-1
discos
1 disco
0 discos
Recursividad
0 discos
n-1 discos
n-1 discos
1 disco
Semestre 2016-1
Movimientos :
30
n
1 : Cn = 2 1 = Total de movimientos.
2 : Para n= 2 3 movimientos.
3 : Cuales mov. AB
AC
B C
TAREA
ELABORE EL ALGORITMO RECURSIVO:
DE ACKERMAN
ACK(0, n) = n+1;
n>= 0
m>0
DE BACKTRAKING
LAS OCHO REINAS
SUDOKU
El backtracking o vuelta atrs es una tcnica algortmica de resolucin general de
problemas mediante una bsqueda sistemtica de soluciones.
Se descompone la tarea a realizar en tareas parciales y se prueba sistemticamente cada
una de estas, que a su vez se descompondrn en subtareas
Cuando al elegir una tarea se comprueba que no lleva a una solucin, se debe volver
atrs, y probar con otra.
FIN DE CLASE
Recursividad
Semestre 2016-1