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