Recursividad

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 46

Profesor: Daniel Quinto Pazce

SEMESTRE 2013-0

Es un proceso repetitivo en el que cada trmino se puede expresar en trminos anteriores.


Sn = C1Sn-1 + C2Sn-2 + + CkSn-k Donde: S0, S1 son condiciones iniciales

1)

Ejemplo: Sn = 2*Sn-1 + 1 , S0 = 0 Halle una frmula iterativa.

Sn Sn Sn Sn-2 Sn Sn Sn Sn Sn Sn

= 2*Sn-1 + 1 = 2*(2Sn-2 +1) + 1 = 22Sn-2 + 2 + 1 = 2*Sn-3 + 1 = 22(2*Sn-3 + 1) + 2 + 1 = 23Sn-3 + 22 + 2 + 1 = 2nSn-n + 2n-1 + 2n-2 + + 22 + 2 + 1 = 2nS0 + 2n-1 + 2n-2 + + 22 + 2 + 1 = 2n-1 + 2n-2 + + 22 + 2 + 1 = 2n 1

2 1
Sn =

2) Sn = 3 Sn-1 ; Halle S5

S0 = 1

S5 = 3S4 S5 = 3(3S3) S5 = 3(3(3S2)) S5 = 3(3(3(3S1))) S5 = 3(3(3(3(3S0)))) S5 = 35S0 S5 =343 (1) S5 =343

3)

n n Sn S[ ] S[ ]; S 0 2 3
S2 S4 S1 S8 S2 S0 S16 S1 S2 S0 S5 S1

0 y S1 1, halle S16
S1 S0

S16 S16 S16

3S0 5

5S1

3 * 0 5 *1

S1

4)

Resolver su recursiva en forma iterativa

Sn = 2,47 Sn-1 con S0 = 2,47 Solucin: Sn = 2,47 Sn-1 Sn-1 = 2,47 Sn-2 Sn = (2,47)2 Sn 2 Sn-2 = 2,47 Sn-3 Sn = (2,47)3 Sn 3 generalizando Sn = (2,47)n Sn n = (2,47)n . S0 Sn = (2,47)n+1

4)

Resolver en forma recursiva

CN

2C N
2

N es una potencia de 2 ; N = 2n C.I. C1 =0 , N >= 2

CN C2n C2n 2n C2n 2 C2n 2 C2n 2n C2n 2 C2n 2 C2n CN


n n n n

2C N
2

N
1

2C 2 n C2n
1

2n 1 1 n 1

2n 1 C2n 2 2 C2n 2
n n 2
n

C1 0 n

n n

2n * n n 2n

Ejercicios
Ejercicio. Resolver 1 =1 , N>= 2 2 Cuando N es una potencia de 2
CN CN

N2 C

CASO DE RECURRENCIA

Dada la relacin recursiva de orden superior S(n) = S1b1n + S2b2n + ... + Stbtn; 1 k t

Ecuacin caracterstica
La ecuacin caracterstica, asociada a una relacin de recurrencia lineal, tiene t races reales distintas, b1, b2,..bt 1. Dada la ecuacin recursiva a(n) = 3a(n-1)+4a(n-2) si n>2, con condiciones inciales a(0)=0 y a(1)=1, hallar la solucin general. Solucin:

Ejemplo
A) Ecuacin Caractersticas De la Ecuacin dada, pasamos al primer miembro a(n)-3a(n-1)-4a(n-2)=0 La ecuacin caracterstica es de la forma : t2-3t-4=0 Resolvemos (t + 1)( t- 4) = 0 t1=-1 y t2 = 4

Ejemplo
B) Solucin General a(n)=c1(t1)n + c2(t2)n a(n)=c1(-1)n + c2(4)n resolviendo por las condiciones inciales tenemos: para a(0)=0 se tiene c1 + c2= 0 Para a(1)=1 se tiene - c1 + 4 c2 = 1, resolviendo c1 y c2 se tiene: c1 = -1/5 y c2 = 1/5 a(n) = 1/5(4n-(-1)n)

Escribiendo en forma de funcin


0 para n = 0 a(n) = 1 para n = 1 3a(n-1)-4a(n-2) para n > 1 Ejemplo 2 Dada an = 6an-1 9an-2 ; a0 = 1, a1 = 6 Hallar la solucin General?

Solucion

Ecuacin Caractersticas an 6an-1 + 9n-2 = 0 t2 6t + 9 = 0 (t - 3)2 = 0 Existe solucin de multiplicidad par t1 = 3 ; t 2 = 3 Solucin General an = C1(t1)n + C2 n (t2)n an = C13n + C2n3n resolver C1, C2 con las condicin iniciales * Para a0 = 1 30 C1 + 0.30 C2 = 1 C1 = 1 * Para a1 = 6 31C1 + 1.31 C2 = 6 6 = 3 + 3 C2 Luego: reemplazando en la solucin general an = 3n + n.3n Solucin General: an = 3n (n + 1)

C2 = 1

Ejercicio 3: dada relacin recursiva


an 7an 1 16an
2

12an 3 0 , n 4, a1 3, a2 11, a3 29

Hallar la solucin no recursiva Solucin:


Ecuacin Caractersticas Pasando al primer miembro: 3 - 7 2 + 16 - 12 = 0, resolviendo ( - 2)2 ( - 3) = 0 Cuyas races son: = 2, de multiplicidad par y = 3 La solucin general ser Ecuacin General an = A1 ( 1)n + A2 n ( 2)n + A3( 3)n an = A1 (2)n + A2 n (2)n + A3(3)n Por las condiciones inciales: Para a1 = 3, a2 = 11, y a3 = 29 se tiene Cuya solucin es A1 = 1, A2 = 2 y A3 = -1, por lo que la solucin no recursiva, ser: an = 2n + n 2n + 1 3n

Ejercicio 4: dada la expresin:


a(n) 0 4 8a n 1 15a(n si 0 si 1 2) sin o

Hallar la solucin general Ecuacin Caractersticas Suponiendo que a(n) = n reemplazamos: an = 8 n-1 15 n-2 (t 5) (t 3) = 0 (t2 8t + 15) = 0 (t 5) (t 3) = 0 Ecuacin General a(n) = c15n + c23n para n = 0 a(0) = c150 + c230 0 = c1 + c2 para n = 1 a (1) = c151 + c231 4 = 5c1 + 3c2 c1 = 2 y c2 = - 2 a(n) = 2 . 5n 2. 3n

Ejercicios
Resuelva:
0 , n=0 -9 , n=1 -1 , n=2 21 , n=3 5an 1 8an 2 4an 3 , otro caso

an

1 an 6 20

, n=1 , n=2 , n=3

6an 1 11an 2 6an 3 , otro caso

Es un proceso repetitivo de la funcin recursiva, llamndose a s misma varias veces hasta retornar al punto de partida.

a)

b) c)

Ayuda a comprender mejor, para escribir algoritmos iterativos. Es ms fcil escribir algoritmos recursivos. Cualquier algoritmo recursivo se puede escribir en su forma iterativa.

a)

b)

c)

La rapidez de su procedimiento es lento. La capacidad de su almacenamiento es alto. El seguimiento de su ejecucin es ms difcil.

Ejemplo: 1.-CASO FACTORIAL

Como ejemplo:

N=3 3! = 3*2*1 = 6 FACT(3) = 3*FACT(2) = 6 = 3*2*FACT(1) = 3*2*1*FACT(0)

Funcin FACT (N) Inicio Si N>0 FACT = N*FACT(N-1) Sino FACT = 1 Fin Retornar FACT Fin

2.-POTENCIA bx

Ejemplo: 23 = 8, b=2 x=3 Pot (2, 3) = 2*Pot (2, 2) Pot (2, 3) = 2*(2*Pot (2, 1)) Pot (2, 3) = 2*(2*2)

Funcin Potencia (b, x) Inicio Si (x = 1) Potencia b Sino Potencia b*Potencia (b, x-1) Fin Fin

3.- Nmero de Fibonacci

5 8 13 21 34

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 0

Funcin FIBO (n) Inicio Si (n>2) FIBO FIBO (n-1) + FIBO (n-2) En otro caso Si (n = 2) FIBO 1 En otro caso FIBO 0 Fin Fin Fin

Se sabe que: Fn

b2 F n 1 b2 Fn
Fn Fn
1

...... bk Fn
Fn
2

Obtener la solucin de recursin

Fn

bt1n

n dt2

// t1 y t 2 races, n>=3

de Condiciones iniciales

t2
F 1

t 1
1, F2

0
2

t2
t1 t2

t 1
5 1 2 1 5 2

Sustituyendo:
n n

Fn

5 1 2 b 5 1 2

d
1

1 2

5
1

F1

d
2

1 2

5
2

(1)

F2

5 1 2

1 2

(2)

Resolviendo ( 1 ) y ( 2 )
b d 1 1 5 2 5 1 1 5 2 5

Reemplazando:
n n

Fn

1 1 5 2 5 1 1 5 2 5

1 2
n 1

1 1 5 2 5
n 1

1 2

Fn

1 1 5 2 5

formula no recursiva Tomando Fn bt n


1 Fn n bt1 n bt 2

Fn2 Fn Fn

posibles soluciones
Fn2
n bt 2

1 Fn n bt1

Ecuaciones bt
n

bt

n 1

bt

n 2

div

bt

t2

t 1

Las Torres de Hanoi

Forma Relacin Recursiva de la Torre de Hanoi


N de Discos 0 1 2 3 . n Relacin N Movimientos 0 1=2*0+1 3=2*1+1 7=2*3+1
Cn 2 * Cn
1

C0
C1 C2

C3
Cn

Cn

2 * Cn

Cn

2n 1

Relacin Recursiva Relacin no Recursiva

Ejemplo: Mover todos los discos de la torre A a la torre B en la menor cantidad de pasos

Paso 0

Inicializacin: la torre A contiene 4 discos de diferentes tamaos los discos slo pueden ir sobre uno de mayor tamao Objetivo: mover todos los discos de la torre A a la torre B
De la formula recursiva deducimos que para 4 discos, se realizaran 15 pasos

Formula recursiva

Cn 2 * Cn 1 1 C4 2 * C3 1 C4 2 * (2 * C2 1) 1 C4 2 * (2 * (2 * C1 1) 1) 1 C4 2 * (2 * (2 * (2 * C0 1) 1) 1) 1 C0 0 entonces C4 2 * (2 * (2 * (2 * 0 1) 1) 1) 1 15

Paso 1 y 2

Paso 3 y 4

Paso 5 y 6

Paso 7 y 8

Paso 9 y 10

Paso 11 y 1 2

Paso 13 y 14

Paso 15

Movimientos de la Torre de Hanoi H (n, A, B, C)

n=3

H(n, A, B, C)

Ejercicio: Obtener todos los movimientos H (4, A, B, C) Obtener todos los movimientos H (2, A, B, C)

Inicialmente los n discos estn en el poste A, nos proponemos mover n-1 discos del poste A al poste B Cuntos movimientos necesita para llegar al poste C? Hacer representacin grfica.

EJERCICIOS RESUELTOS

1) Sea Sn=2Sn-1, S0=1. Hallar la relacin iterativa.


Sn=2Sn-1=21Sn-1 Sn=2(2Sn-2)=22Sn-2 Sn=2(2(2Sn-3))=23Sn-3 Sn=2(2(2(..)))=2nSn-n=2n(S0) Sn=2n
Relacin Iterativa: Sn=2n

2) Sea Sn=Sn-1+n, S1=1; n>=2. Hallar la relacin iterativa.


Sn= Sn-1+n=Sn-1+(n) Sn=(Sn-2+n-1)+n=Sn-2+(n-1)+(n) Sn=((Sn-3+n-2)+(n-1)+n)=Sn-3+(n-2)+(n-1)+(n) Sn=(((Sn-4+n-3)+n-2)+n-1)+n=Sn-4+(n-3)+(n-2)+(n-1)+(n) Sn= Sn-(n-1)+(n-(n-2))+ (n-(n-3))++(n-3)+(n-2)+(n-1)+(n) Sn=(1)+(2)++ (n-3)+(n-2)+(n-1)+(n) Sn=n (n+1)/2 Relacin Iterativa: Sn= n(n+1)/2

3) Del factorial de un nmero (N!) crear la funcin recursiva, la traza para N=5 y el algoritmo. 1 N=0
FN= N*FN-1 N>0

Traza para N=5: F5=5*F4 F5=5*4*F3 F5=5*4*3*F2 F5=5*4*3*2*F1 F5=5*4*3*2*1=120

Funcin FACT (N) Inicio Si N>0 FACT = N*FACT(N-1) Sino FACT = 1 Fin Retornar FACT Fin

4) De la potencia de un nmero bx crear la funcin recursiva y la traza para b=2 y x=5 y el algoritmo recursivo.
b P(b,x)= B*P(b,x-1), x>1 x=0

P(2,5)=2*P(2,4) P(2,5)=2*2*P(2,3) P(2,5)=2*2*2*P(2,2) P(2,5)=2*2*2*2*P(2,1) P(2,5)=2*2*2*2*2=32

Funcin Potencia (b, x) Inicio Si (x = 1) Potencia b Sino Potencia b*Potencia (b, x-1) Fin Fin

5) Del nmero combinatorio .crear la funcin recursiva, la traza para y el algoritmo recursivo.

Funcin COMB (N,K) Inicio Si K=1 COMB = N Sino Si N=K+1 COMB = N Sino COMB=COMB(N-1,K-1)+COMB(N-1,K) Fin Retornar COMB Fin

También podría gustarte