Ejercicios de Análisis algoritmos recursivos y recurrencias

Anuncio
Hoja de Ejercicios sobre recurrencias y algoritmos recursivos
I. Para n≥0, sea S={1,2,,3, …, n} y sea an el número de subconjuntos de S que no contienen enteros consecutivos.
Encuentre y resuelva una relación de recurrencia para an.
II. Suponga que un niño, en cada paso, puede subir un escalón o dos escalones de una escalera. Encuentre y resuelva una
relación de recurrencia para fn, el número de formas distintas en las que el niño puede subir una escalera de n escalones.
III. Una partícula se mueve en forma horizontal hacia la derecha. Para n∈,Ζ la distancia que recorre la partícula en el
(n+1)­ésimo segundo es igual al doble de la distancia que recorre durante el n­ésimo segundo. Si xn, denota la
posición de la partícula al inicio del (n+1)­ésimo segundo, encuentre y resuelva una relación de recurrencia para xn,
donde x0=1, y x1=5.
IV. Encuentre y resuelva una relación de recurrencia para el número de formas de estacionar las motocicletas y los autos
pequeños en una fila de n espacios si cada motocicleta requiere un espacio y un auto dos. (suponga que todas las
motocicletas tienen apariencia idéntica, lo mismo que los autos, y que queremos utilizar todos los espacios).
V. ¿Cuántas sumas y multiplicaciones hace el siguiente algoritmo, como función de n?. Suponga n≥ 1.
funcion marge(ENT n: entero):entero
Si (n=1) entonces
devolver 1
sino
temp ←
marge(n/2) + n/2
Para i← 1 hasta n haga
Para j← 1 hasta n haga
temp ← temp + i*j
FinPara
FinPara
devolver temp
FinSi
FinFuncion
VI. Para elevar un número b a la potencia n, n≥0, se puede utilizar la siguiente función:
funcion pb (ENT b:entero, ENT n:entero):ENTERO
{Pre: n≥0}
SI (n=0) entonces
devolver 1
SINO_SI (n>0 ∧ par(n)) entonces
m ←
pb(b,n/2)
devolver m*m
SINO
m ←
pb(b,n­1)
devolver b*m
FIN_SI
{Pos: calcula bn }
FinFuncion
Sea T(n) la complejidad temporal para una llamada pb(b,n), considerando como operación básica la multiplicación de
dos números. • Encuentre una expresión cerrada para T(n), cuando n es potencia de 2.
•
•
Muestre que existe r≥0, para el que T(r)>T(r+1). Pruebe que T(n)∈ O(log n) para todo n.
VII. Resuelva los problemas 4.5, 4.6 y 4.7 del libro de Brassard. (versión en ingles).
VIII. Resuelva los problemas 4.29, 4.30, 4.32, 4.37 y 4.41 del libro de B rassard. (versión en ingles).
IX. Suponga que se quiere ordenar un arreglo y que se dispone del siguiente algoritmo para hacerlo.
PROCEDIMIENTO ordene(ENT_SAL A: ARREGLO DE[MAX] entero, ENT s,r:entero)
{Pre: 1≤ s≤ r≤ n}
variables i,j:entero
i,j ←
s,r
a ←
random(s,r)
(* elige un elemento de A[s..r] al azar *)
Repita
MQ(A[i] < a) i ←
i+1 FinMQ
MQ(A[j] > a) j ←
j­1 FinMQ
Si(i≤ j) entonces
intercambiar(A,i,j)
(* intercambia los contenidos de las posiciones i y j en A *)
i,j ←
i+1,j­1
FinSi
Hasta que i>j
Si(s<j) entonces ordene(A,s,j) FinSi
SI(i<r) entonces ordene(A,i,r) FinSi
{Pos: A[s..r] ordenado ascendentemente}
F_PROCEDIMIENTO
Calcule la complejidad temporal y espacial del peor caso si se supone que la operación básica es la comparación entre
elementos de A y que el tamaño del problema es n, el número de elementos que se quieren ordenar inicialmente. Deje
anotados todos los cálculos efectuados para llegar a la respuesta.
X. Resuelva las siguientes recurrencias
T(1)=5
T(n)=2T(n­1)+3n+1
para n>1
T(1)=1
T(2)=6
T(n)=T(n­2)+3n+4
para n>2
T(1)=1
T(n)=4T(n/3)+n2­7n+5
para n>1 y potencia de 3
T(1)=1
T(n)=T(n/4)+ √n + 1
para n>3 y potencia de 4
Fórmulas Generales
T(n)=d
T(n)=aT(n/c)+b
para n<2
en otro caso
T(n)=d
T(n)=aT(n/c)+bnk
para n<2
en otro caso
XI. Resuelva las siguientes recurrencias con Historia Completa
T(1)=1
T(n)=⟨Σi:1≤ i≤ n­1: T(i)⟩ + 1
para n>1
T(1)=1
T(n)=⟨Σi:1≤ i≤ n­1: T(i)⟩+7
para n>1
Descargar