Ejercicios resueltos
Ejercicios resueltos Ejercicios resueltos
Solución ejercicio 6. Programación dinámica (cont.) En la recurrencia anterior se ha considerado que se puede elegir cualquier número de flores de cada tipo (la expresión 1 + C(i, j − pi) permite volver a seleccionar el mismo tipo de flor indefinidamente) Si no hay un número ilimitado de flores, la recurrencia debe considerar el número máximo de flores disponible por cada tipo Denominamos fi al número de flores del tipo i La expresión ⎧ de la recurrencia pasa a ser la siguiente: +∞ si j < 0 ⎪⎨ 0 si j = 0 C(i, j) = ⌊j/pi⌋ si i = 1 y j ≤ pifi fi si i = 1 y j > pifi (∗) ⎪⎩ mín {k + C(i − 1, j − k ∗ pi)} en otro caso 0≤k≤fi (*) Podemos considerar que compramos todas las flores de la tienda y además nos sobra dinero La especificación del algoritmo es similar a las vistas en casos anteriores Yolanda García, Jesús Correas (DSIC - UCM) 25 / 32
Ejercicio 7. Programación dinámica [ITIS/ITIG, feb 2008] A Nicanor Cienfuegos le han hecho un regalo. Como no le gusta ha decidido cambiarlo por otros productos. Su cambio ideal es el siguiente: el valor de los productos tiene que ser igual al valor del regalo o superarlo de forma mínima. No le importa tener varias copias del mismo producto. Suponiendo conocidos los productos de la tienda, sus precios y el número de unidades de cada producto: a) (3 puntos) Diseña un algoritmo dinámico que determine el valor de los productos elegidos en el canje, detallando ◮ La estructura de cálculos intermedios, ◮ La relación recursiva, y ◮ La función o procedimiento que implemente este algoritmo. b) (1 punto) Proporciona una función con memoria que implemente este algoritmo. Yolanda García, Jesús Correas (DSIC - UCM) 26 / 32
- Page 1 and 2: Ejercicio 1. Programación dinámic
- Page 3 and 4: Solución Ejercicio 1. Programació
- Page 5 and 6: Ejercicio 2. Programación dinámic
- Page 7 and 8: Solución ejercicio 2. Programació
- Page 9 and 10: Solución ejercicio 2. Programació
- Page 11 and 12: Solución ejercicio 3. Programació
- Page 13 and 14: Solución ejercicio 3. Programació
- Page 15 and 16: Solución ejercicio 3. Programació
- Page 17 and 18: Solución ejercicio 4. Programació
- Page 19 and 20: Solución ejercicio 4. Programació
- Page 21 and 22: Solución ejercicio 5. Programació
- Page 23 and 24: Solución ejercicio 5. Programació
- Page 25: Solución ejercicio 6. Programació
- Page 29 and 30: Solución ejercicio 7. Programació
- Page 31 and 32: Ejercicio 8. Programación dinámic
- Page 33: Solución ejercicio 8. Programació
Ejercicio 7. Programación dinámica<br />
[ITIS/ITIG, feb 2008] A Nicanor Cienfuegos le han hecho un regalo. Como no le<br />
gusta ha decidido cambiarlo por otros productos. Su cambio ideal es el siguiente:<br />
el valor de los productos tiene que ser igual al valor del regalo o superarlo de<br />
forma mínima. No le importa tener varias copias del mismo producto. Suponiendo<br />
conocidos los productos de la tienda, sus precios y el número de unidades de cada<br />
producto:<br />
a) (3 puntos) Diseña un algoritmo dinámico que determine el valor de los<br />
productos elegidos en el canje, detallando<br />
◮ La estructura de cálculos intermedios,<br />
◮ La relación recursiva, y<br />
◮ La función o procedimiento que implemente este algoritmo.<br />
b) (1 punto) Proporciona una función con memoria que implemente este<br />
algoritmo.<br />
Yolanda García, Jesús Correas (DSIC - UCM) 26 / 32