Está en la página 1de 5

Con relación al problema de cambio de monedas, se indica que f (i, b) determina la

cantidad de maneras que existen para entregar un cambio b usando monedas de


denominaciones d 1 , d 2 , d 3 , d 4 , … , d i .

Entonces, es correcto afirmar:

x Si d i > b entonces f (i − 1, b) = f (i, b)

f (i, 0) representa que se ha dado todo el cambio.

Si d i > b entonces f (i − 1, b) < f (i, b)

Si d i > b entonces f (i − 1, b) > f (i, b)

Pregunta 2 10 pts

La programación dinámica es una técnica que permite:

x Reducir el tiempo en algunos algoritmos recursivos.

x Subdividir el problema en problemas más pequeños.

Convertir la complejidad de un algoritmo a lineal.

Describir algoritmos que varián de manera dinámica.

Pregunta 3 10 pts

De los algoritmos para multiplicar matrices presentados en las lecturas del módulo, el más
eficiente es:

x Algoritmo de Coppersmith-Winograd

Algoritmo Binario.

Algoritmo de la escuela.

Algoritmo de Strassen
Pregunta 4 10 pts

En el algoritmo de Strassen, las matrices An×n y Bn×n iniciales son divididas cada una
en 4 matrices. Estas 4 matrices tienen un número de filas y columnas igual a:

n/2

Pregunta 5 10 pts

La subsecuencia común más larga entre las palabras: "PROBLEMA" y "AVIONETA" es:

ONETA

EA

x OEA

ROEA

Pregunta 6 10 pts

En el problema del morral, se describe que f (i, d) corresponde a la máxima utilidad que
se puede conseguir llevando algunos objetos s1 , s2 , … , si en un morral de
capacidad d .

Entonces, si f (i, d) > f (i + 1, d) es correcto afirmar que:

Es necesario aumentar la capacidad d del morral.

No es conveniente llevar el objeto s i+1

f (i + 1, d) = f (i, d − 1) .

La utilidad máxima aumento, llevando un objeto adicional.


Pregunta 7 10 pts

Si la complejidad de un algoritmo construido con la técnica de Dividir y Conquistar está


determinado por la ecuación:

donde es el tamaño del problema. Entonces, es correcto afirmar:

n/a es el costo de resolver cada uno de los a subproblemas de tamaño b.

n/b Es el tamaño de cada uno de los subproblemas f(n) es el costo de dividir el problema de a
subproblemas y mezclar los resultados

a es la cantidad de subproblemas y n/b es la cantidad de iteraciones necesarias para resolver cada


subproblema.

x n/b es el tamaño de cada uno de los subproblemas, f(n) es el costo de dividir el problema en los aaa
subproblemas y mezclar los resultados.

Pregunta 8 10 pts

La función objetivo que formaliza el problema de la subsecuencia mas larga es:

x f(i,j) : la longitud de la subsecuencia común más larga entre las cadenas s[1,...,i] y

t[1,...,j]

f(i,j) : la longitud de la subsecuencia común más larga entre las cadenas s[i,...,n] y
t[j,...,m]

f(i,j) : la cadena de la subsecuencia común más larga entre las cadenas s[1,...,i] y
t[1,...,j]
f(i,j) : la cadena de la subsecuencia común más larga entre las cadenas s[i,...,n] y

t[j,...,m]

Pregunta 9 10 pts

Dado el algoritmo:

fun pow(a: R ,n: N ) ret r : R :


var b: R ;
{Pre Q: n ≥ 0 ∧ a ≠ 0}
if n=0 -> r:=1
[] n≠0 and n mod 3 = 0
b:=pow(a,k);
r:=b*b*b;

[] n mod 3=1-> k:=(n-1)/3;


b:=pow(a,k);

r:=a*b*b*b

[] n mod 3=2-> k:=(n-2)/3;


b:=pow(a,k);
r:=a*a*b*b*b

fi;
{Pos R: r=a^n }

ret r;

endfun

Es correcto afirmar:

El algoritmo no corresponde al método de divide y vencerás.

x La complejidad el algoritmo es 0(log(n))0(log(n))0(\log(n))

La complejidad el algoritmo es 0(n3)0(n^{3})

La complejidad del algoritmo está dada por la relación T(n)=2T(n/3)+1T(n)=2T(n/3)+1


Examen guardado en 18:52 Entregar examen

También podría gustarte