Tarea 3 de Análisis de Algoritmos
Trimestre 2008 Otoño
Entrega: 27 de noviembre de
2008 en clase.
- [10 puntos] Diseñe un algoritmo de programación
dinámica
que calcule el coeficiente combinatorio nCr en
tiempo O(nr) y que use espacio O(r). Demuestre que su algoritmo es
correcto.
- [10 puntos] Resuelva exactamente la ecuación recurrente
T(0) = c y
T(n) = 3T(n-1)+d (la cual aparece en el análisis del algoritmo
de divide y vencerás para el problema de multiplicación
encadenada de matrices).
- [10 puntos] Se tienen dos vectores de enteros positivos a = (a1,
a2,
..., an) y b = (b1, b2, ..., bn).
Se desea permutar los elementos de b para obtener un tercer vector c =
(c1, c2, ..., cn) tal que el producto punto de a y c sea tan
pequeño como sea posible. Recuerde que el producto punto de a y
c está dado por a1c1 + a2c2
+ ... + ancn. Diseñe un algoritmo que
encuentre el menor producto punto posible y demuestre que su algoritmo
es correcto. Pista: haga
algunos ejemplos a mano hasta que se dé cuenta de lo que
está pasando.