Está en la página 1de 10

11/12/23, 7:36 Evaluacion final - Escenario 8: SEGUNDO BLOQUE-TEORICO - VIRTUAL/ANÁLISIS Y VERIFICACIÓN DE ALGORITMOS-[GRUP…

Evaluacion final - Escenario 8

Fecha de entrega 12 de dic en 23:55 Puntos 125 Preguntas 9


Disponible 9 de dic en 0:00 - 12 de dic en 23:55 Límite de tiempo 90 minutos
Intentos permitidos 2

Instrucciones

Volver a realizar el examen

https://poli.instructure.com/courses/56494/quizzes/133400 1/10
11/12/23, 7:36 Evaluacion final - Escenario 8: SEGUNDO BLOQUE-TEORICO - VIRTUAL/ANÁLISIS Y VERIFICACIÓN DE ALGORITMOS-[GRUP…

Historial de intentos

Intento Hora Puntaje


MÁS RECIENTE Intento 1 30 minutos 125 de 125

 Las respuestas correctas estarán disponibles del 12 de dic en 23:55 al 13 de dic en 23:55.

Puntaje para este intento: 125 de 125


Entregado el 11 de dic en 6:56
Este intento tuvo una duración de 30 minutos.

Pregunta 1 15 / 15 pts

Juan tiene n canciones en formato MP3 en su computador. Los tamaños


de las canciones, en bytes, son d_1, d_2, d_3, ..., d_n. Juan quiere
copiar algunas de sus canciones a un CD de C MB de manera tal que se
desperdicie la menor cantidad posible de espacio en él. No es posible
copiar una canción parcialmente, esto es, una canción se copia al disco
completa o no se copia.

¿Qué canciones debe copiar Juan?

El siguiente programa puede resolverse eficientemente con un algoritmo:

recursivo sin memoria

de programación dinámica

de fuerza bruta

ávaro

dividir y vencer

https://poli.instructure.com/courses/56494/quizzes/133400 2/10
11/12/23, 7:36 Evaluacion final - Escenario 8: SEGUNDO BLOQUE-TEORICO - VIRTUAL/ANÁLISIS Y VERIFICACIÓN DE ALGORITMOS-[GRUP…

Pregunta 2 15 / 15 pts

f, g y h son funciones escritas en el lenguaje de programación java, las


cuales evalúan la siguiente ecuación de recurrencia:

long f(int n, int k) {

if (k == 0) return 1;

if (k > n) return 0;

return f(n-1, k-1) + f(n-1, k);

long g(int n, int k, long[][] mem){

if (mem[n][k]>0) return mem[n][k];

if (k == 0) mem[n][k] = 1;

else if (k > n) mem[n][k] = 0;

else mem[n][k] = g(n-1, k-1, mem) + g(n-1, k, mem);

return mem[n][k];

long h(int n, int k){

long[][] mem = new long[n+1][k+1];

for (int i = 0; i <= n; i++) mem[i][0] = 1;

for (int i = 0; i <= n; i++)

for (int j = i+1; j <= k; j++) mem[i][j] = 0;

for (int i = 1; i <= n; i++)

for (int j = 1; j <= k && j <= i; j++) mem[i][j] = mem[i-1][j-1] + mem[i-1]


[j];

return mem[n][k];

https://poli.instructure.com/courses/56494/quizzes/133400 3/10
11/12/23, 7:36 Evaluacion final - Escenario 8: SEGUNDO BLOQUE-TEORICO - VIRTUAL/ANÁLISIS Y VERIFICACIÓN DE ALGORITMOS-[GRUP…

Sean Tf(n), Tg(n) y Th(n) los tiempos de ejecución de f(n, n/2), g(n, n/2,
{0...0}) y h(n, n/2), respectivamente. Es posible afirmar que:

Pregunta 3 15 / 15 pts

Juan tiene n canciones en formato MP3 en su computador. Los tamaños


de las canciones, en bytes, son d_1, d_2, d_3, ..., d_n. Juan quiere copiar
algunas de sus canciones a un CD de 600 MB de manera tal que se
desperdicie la menor cantidad posible de espacio en él. No es posible
copiar una canción parcialmente, esto es, una canción se copia al disco
completa o no se copia.

¿Qué canciones debe copiar Juan?

El anterior problema es una adaptación del problema:

Del morral (knapsack)

Búsqueda en un arreglo ordenado

Subsecuencia creciente más larga (LIS)

Búsqueda ternaria

https://poli.instructure.com/courses/56494/quizzes/133400 4/10
11/12/23, 7:36 Evaluacion final - Escenario 8: SEGUNDO BLOQUE-TEORICO - VIRTUAL/ANÁLISIS Y VERIFICACIÓN DE ALGORITMOS-[GRUP…

Distancia de edición (distancia de Levenshtein)

Pregunta 4 15 / 15 pts

f, g y h son funciones escritas en el lenguaje de programación java, las


cuales evalúan la siguiente ecuación de recurrencia:

long f(int n, int k) {

if (k == 0) return 1;

if (k > n) return 0;

return f(n-1, k-1) + f(n-1, k);

long g(int n, int k, long[][] mem){

if (mem[n][k]>0) return mem[n][k];

if (k == 0) mem[n][k] = 1;

else if (k > n) mem[n][k] = 0;

else mem[n][k] = g(n-1, k-1, mem) + g(n-1, k, mem);

return mem[n][k];

long h(int n, int k){

long[][] mem = new long[n+1][k+1];

for (int i = 0; i <= n; i++) mem[i][0] = 1;

for (int i = 0; i <= n; i++)

for (int j = i+1; j <= k; j++) mem[i][j] = 0;

for (int i = 1; i <= n; i++)

https://poli.instructure.com/courses/56494/quizzes/133400 5/10
11/12/23, 7:36 Evaluacion final - Escenario 8: SEGUNDO BLOQUE-TEORICO - VIRTUAL/ANÁLISIS Y VERIFICACIÓN DE ALGORITMOS-[GRUP…

for (int j = 1; j <= k && j <= i; j++) mem[i][j] = mem[i-1][j-1] + mem[i-1]


[j];

return mem[n][k];

La función que implementa el algoritmo de mejor complejidad temporal


es:

Solamente La función f.

Solamente la función g.

Solamente la función h.

Tanto la función f como la función g.

Tanto la función g como la función h.

Pregunta 5 10 / 10 pts

De los siguientes, no es un problema representativo de la clase NP-


Difícil:

Coloración de vértices.

Máximo clique.

Máximo conjunto independiente.

Decidir si n es primo.

3-SAT

https://poli.instructure.com/courses/56494/quizzes/133400 6/10
11/12/23, 7:36 Evaluacion final - Escenario 8: SEGUNDO BLOQUE-TEORICO - VIRTUAL/ANÁLISIS Y VERIFICACIÓN DE ALGORITMOS-[GRUP…

Pregunta 6 10 / 10 pts

De los siguientes, no es un problema de decisión:

Dado un número natural n, determinar si n tiene más de diez divisores


naturales diferentes.

Dado un número natural n, determinar el número de divisores naturales de


n.

Dado un número natural n, determinar si n es impar.

Dado un número natural n, determinar si n es primo.

Dado un número natural n, determinar si n es par.

Pregunta 7 15 / 15 pts

Observe el grafo a continuación:

La ruta de menor costo del nodo A al nodo I es:

https://poli.instructure.com/courses/56494/quizzes/133400 7/10
11/12/23, 7:36 Evaluacion final - Escenario 8: SEGUNDO BLOQUE-TEORICO - VIRTUAL/ANÁLISIS Y VERIFICACIÓN DE ALGORITMOS-[GRUP…

A-C-D-E-I

A-B-H-I

No existe una ruta del nodo A al nodo I.

A-D-E-I

A-D-E-G-I

Pregunta 8 15 / 15 pts

Los algoritmos de Dijkstra y Prim son ejemplos de algoritmos:

De Ordenamiento

Dividir y Vencer

Voraces

Ineficientes

de Programación Dinámica

Pregunta 9 15 / 15 pts

Observe el grafo a continuación:

https://poli.instructure.com/courses/56494/quizzes/133400 8/10
11/12/23, 7:36 Evaluacion final - Escenario 8: SEGUNDO BLOQUE-TEORICO - VIRTUAL/ANÁLISIS Y VERIFICACIÓN DE ALGORITMOS-[GRUP…

Ejecute el algoritmo de Dijkstra sobre el grafo, partiendo del nodo A y


complete las distancias mínimas a cada nodo.

A 0

B 14

C 12

D 5

E 9

F 10

G 18

H 25

https://poli.instructure.com/courses/56494/quizzes/133400 9/10
11/12/23, 7:36 Evaluacion final - Escenario 8: SEGUNDO BLOQUE-TEORICO - VIRTUAL/ANÁLISIS Y VERIFICACIÓN DE ALGORITMOS-[GRUP…

I 23

Puntaje del examen: 125 de 125

https://poli.instructure.com/courses/56494/quizzes/133400 10/10

También podría gustarte