ProgamacionIII 1c2014 TP Guia de Ejercicios
ProgamacionIII 1c2014 TP Guia de Ejercicios
ProgamacionIII 1c2014 TP Guia de Ejercicios
Programación III
Guía de ejercicios propuestos
b.
Metodo_2 (var conjunto[1..n], int n){
bool variableCond = calcularCondicion( conjunto)
Si (variableCond){
Procesar(conjunto)
}sino{
Metodo_2(conjunto, n/2)
Metodo_2(conjunto, n/2)
}
fin sino
}
Donde el tiempo de “calcularCondicion” y de “Procesar” son constantes
c.
Página 1 de 20
FACULTAD DE INGENIERÍA Y CIENCIAS EXACTAS
DEPARTAMENTO DE TECNOLOGÍA INFORMÁTICA
Página 2 de 20
FACULTAD DE INGENIERÍA Y CIENCIAS EXACTAS
DEPARTAMENTO DE TECNOLOGÍA INFORMÁTICA
aparece en el vector A más de n/2 veces. Considerar que no puede haber más
de un elemento mayoritario.
que algunos de los valores pueden ser negativos. Diseñar un algoritmo que
analizar el costo.
participantes. Cada equipo ha de competir exactamente una vez con todos los
Página 3 de 20
FACULTAD DE INGENIERÍA Y CIENCIAS EXACTAS
DEPARTAMENTO DE TECNOLOGÍA INFORMÁTICA
9. El problema del par más cercano consiste en encontrar dos puntos dentro de un
conjunto de puntos cuya distancia sea menor que la que existe entre cualquier otro
par de puntos del conjunto. Suponiendo que los puntos vienen ordenados por sus
Parte 3: Greedy
A continuación, se presenta una lista de ejercicios. Para cada uno de ellos
• Demostrar su correctitud
Página 4 de 20
FACULTAD DE INGENIERÍA Y CIENCIAS EXACTAS
DEPARTAMENTO DE TECNOLOGÍA INFORMÁTICA
objeto i tiene un peso positivo pi y un valor positivo vi. La mochila puede llevar
establecido como:
1/4)
Página 5 de 20
FACULTAD DE INGENIERÍA Y CIENCIAS EXACTAS
DEPARTAMENTO DE TECNOLOGÍA INFORMÁTICA
(0, 2/3, 1) 20 31
procesador. Cada tarea se procesa en una unidad de tiempo y debe ser ejecutada
una secuencia S de tareas que se ejecuten antes de sus respectivos plazos. Una
1 50 2,1 60
2 10 2,3 25
3 15 3,1 65
4 30 4,1 80
1,3 65 4,3 45
Página 6 de 20
FACULTAD DE INGENIERÍA Y CIENCIAS EXACTAS
DEPARTAMENTO DE TECNOLOGÍA INFORMÁTICA
de antemano el tiempo que necesita cada uno de ellos. Determinar en qué orden
el procesador debe atender dichos procesos para minimizar la suma del tiempo que
Por ejemplo, para n = 3 se tienen, los procesos (p1, p2, p3) y tiempos de proceso
(5, 10, 3)
38
31
= 43
= 41
29
34
Página 7 de 20
FACULTAD DE INGENIERÍA Y CIENCIAS EXACTAS
DEPARTAMENTO DE TECNOLOGÍA INFORMÁTICA
movimientos.
= 90 movimientos
minutos. Debido a que el pago que recibe el mecánico depende del nivel de
n
T(n) =∑ Ei
I=1
entre los diferentes lugares representados en el grafo. Determinar cuántas son las
Página 8 de 20
FACULTAD DE INGENIERÍA Y CIENCIAS EXACTAS
DEPARTAMENTO DE TECNOLOGÍA INFORMÁTICA
representados en el grafo).
Página 9 de 20
FACULTAD DE INGENIERÍA Y CIENCIAS EXACTAS
DEPARTAMENTO DE TECNOLOGÍA INFORMÁTICA
3
1 2
2
3 1 5
3
2 7 5
4
8
6 4
6
y las ciudades capitales de las provincias de la Argentina, y las aristas entre esos
nodos los tiempos de vuelo entre las ciudades. Determinar cuáles ciudades
es despreciable.
4. Las emisiones de los automóviles privados son una de las principales fuentes de
han estudiado los principales flujos de vehículos entre distintos puntos seleccionados
Página 10 de 20
FACULTAD DE INGENIERÍA Y CIENCIAS EXACTAS
DEPARTAMENTO DE TECNOLOGÍA INFORMÁTICA
estudio contienen el número de vehículos que transitan al día entre estos puntos
este estudio es localizar los trayectos entre puntos seleccionados que utilizan más
algoritmo que proporcione estos trayectos. Validar que el algoritmo sea óptimo en
Página 11 de 20
FACULTAD DE INGENIERÍA Y CIENCIAS EXACTAS
DEPARTAMENTO DE TECNOLOGÍA INFORMÁTICA
objeto i tiene un peso positivo pi y un valor positivo vi. La mochila puede llevar
ciudad está conectada con las restantes mediante carreteras de longitud conocida.
El problema consiste en hallar la longitud de la ruta que deberá tomar para visitar
todas las ciudades retornando a la ciudad de partida, pasando una única vez por
cada ciudad y de modo tal que la longitud del camino recorrido sea mínima.
Página 12 de 20
FACULTAD DE INGENIERÍA Y CIENCIAS EXACTAS
DEPARTAMENTO DE TECNOLOGÍA INFORMÁTICA
5. Problema de la subsecuencia más larga: Dada una secuencia X={x1 x2 ... xm},
e Y si es subsecuencia de X y subsecuencia de Y.
propiamente dicha?
Página 13 de 20
FACULTAD DE INGENIERÍA Y CIENCIAS EXACTAS
DEPARTAMENTO DE TECNOLOGÍA INFORMÁTICA
algoritmo que determine cuáles son los objetos que conforman el regalo y el
páginas que contiene. Un día particular Howard decide comprar todas las revistas
y cantidad de páginas de cada revista ordenados por todos los criterios que sean
posible de revistas?
Página 14 de 20
FACULTAD DE INGENIERÍA Y CIENCIAS EXACTAS
DEPARTAMENTO DE TECNOLOGÍA INFORMÁTICA
elementos en las n-k últimas posiciones, sin hacer uso de un vector auxiliar. Por
3 5 12 8 9 12 4 7 13 21
8 9 12 4 7 13 21 3 5 12
se puede tomar una lancha que va hasta cualquier otro embarcadero río abajo
(no es posible ir río arriba). Existe una tabla de tarifas de cada viaje entre un
dinero posible, aunque haya que cambiar de lancha todas las veces que sea
son compatibles si los intervalos [ci, fi) y [cj, fj) no se superponen (es decir,
Página 15 de 20
FACULTAD DE INGENIERÍA Y CIENCIAS EXACTAS
DEPARTAMENTO DE TECNOLOGÍA INFORMÁTICA
4. Mediana de dos vectores: Dados dos vectores de enteros X[0..n] e Y[0..n] con
valores de
de un idioma a otro. Para ello cuenta con algunos diccionarios bilingües. Cada
diccionario sirve para hacer la traducción entre dos idiomas en cualquiera de los
cualquier par de idiomas, siempre que sea posible realizarlo con los diccionarios
disponibles.
7. Maximización de programas: Sean n programas P1, ...,Pn que hay que almacenar
programas en el disco.
a la ciudad B siguiendo una ruta dada y llevando un vehículo que le permite, con
Página 16 de 20
FACULTAD DE INGENIERÍA Y CIENCIAS EXACTAS
DEPARTAMENTO DE TECNOLOGÍA INFORMÁTICA
de un mapa de rutas que le indica las distancias entre las estaciones de servicio
que hay en su ruta. Como va con prisa, el viajante desea pararse a cargar
existe, una partición en dos subconjuntos disjuntos, tal que la suma de sus
Página 17 de 20
FACULTAD DE INGENIERÍA Y CIENCIAS EXACTAS
DEPARTAMENTO DE TECNOLOGÍA INFORMÁTICA
tareas.
9. Dado un tablero de tamaño XxY y dado un rey en una casilla arbitraria (x0;
y0). Cada casilla (x; y) del tablero tiene asignado un peso T(x; y), de tal
mínimo que visite todas las casillas del tablero sin repetir ninguna.
los vértices de G tal que para todo par de vértices en W, éstos no son
Por ejemplo, si V = {1, 2, 3, 4, 5} y A = {(1, 2), (1, 3), (3, 4), (2,
Página 18 de 20
FACULTAD DE INGENIERÍA Y CIENCIAS EXACTAS
DEPARTAMENTO DE TECNOLOGÍA INFORMÁTICA
5), (3, 5)} los conjuntos independientes son {1},{2}, {3}, {4}, {5}, {1,
4}, {1, 5}, {2, 3}, {2, 4}, {4, 5} y {1, 4, 5}. Y el mayor es {1, 4, 5}.
información:
Alberto X X X
Bruno X X X X
Carlos X X X
Daniel X X X
Esteban X X X
1 2 3 4
Inglés Francés Árabe Árabe
1 2 3 4
Alberto Bruno Carlos Daniel
Página 19 de 20
FACULTAD DE INGENIERÍA Y CIENCIAS EXACTAS
DEPARTAMENTO DE TECNOLOGÍA INFORMÁTICA
dejar sólo una ficha en la posición central del tablero. Una ficha puede saltar
sobre otra (en cualquiera de los cuatro sentidos) y caer en un lugar libre
debiendo eliminarse la ficha sobre la que se saltó (Juego del Senku). Determinar
13. Juego de los fósforos: Se disponen de 11 fósforos. Dos jugadores pueden retirar
por turno 1, 2 o 3 fósforos. Pierde aquel jugador que retira el último fósforo.
jugadas ganadora.
14. Pilas de monedas: Dada una pila de n monedas, y 2 jugadores, quienes alternan
movimientos, cada uno de ellos puede dividir una pila en otras 2, siempre y
cuando haya más de 2 monedas. Pierde el jugador que no puede dividir ninguna
pila. Construir un algoritmo que determine para un jugador si existe una secuencia
de jugadas ganadora.
Página 20 de 20