Práctica de Laboratorio 1 Introducción al Análisis de

Anuncio
Facultad de Ciencias Exactas, Ingenierı́a y Agrimensura
Escuela de Ciencias Exactas y Naturales
Matemática Discreta
Práctica de Laboratorio 1
Introducción al Análisis de Algoritmos
1. Demostrar el siguiente teorema,
Teorema 1
f ∈ Θ(g) si y solo si existen constantes c1 , c2 ∈ ℜ+ , n0 ∈ N tales que
∀n ≥ n0 , 0 ≤ c1 g(n) ≤ f (n) ≤ c2 g(n)
2. Determine si las siguientes proposiciones son verdaderas o falsas. Justifique.
a) n2 + 106 n ∈ O(n2 )
b) n lg n ∈ O(n)
c) n lg n ∈ Ω(n)
d) 10−5 n2 ∈ O(n lg n)
e) 2n2 + 3n lg n + 10 ∈ Θ(n2 )
f ) Si a > 1 y f (n) = O(lga n), entonces f (n) = O(lg n)
n
n
X
X
O(n) = O(n2 )
kn =
g)
k=1
k=1
h) Θ(1) = Θ(2)
3.
Sean las funciones f y g definidas como:
f (n) = n
y
g(n) =
n2
1
si n es par
si n es impar
¿f ∈ O(g)? ¿g ∈ O(f )?
4. Considere las siguientes clases de funciones
Θ(1), Θ(lg n), Θ(n), Θ(n lg n), Θ(n2 ), Θ(n3 ), Θ(2n ), Θ(n!)
¿A qué clase pertenece cada una de las siguientes funciones?
a) 6n3 + 12n2 + 1
b) 2 lg n + 4n + 3n lg n
c) 2 + 4 + 6 + · · · + 2n
2
n)(n+1)
d) (n +lg
n+n2
e) 2 + 4 + 8 + · · · + 2n
5. Sea f (n) la cantidad de veces que se ejecuta la operación x++. Teniendo en cuenta las clases
de funciones del ejercicio anterior, determine una notación Θ para f en cada uno de los siguientes
algoritmos. Justifique su respuesta.
a)
for(i = 1; i ≤ n; i++)
for(j = 1; j ≤ ⌊i/2⌋; j++)
x++;
Práctica de Laboratorio 1
Introducción al Análisis de Algoritmos
Página 1
Matemtica Discreta
b)
for(i = 1; i ≤ n; i++)
for(j = 1; j ≤ i; j++)
for(k = 1; k ≤ j; k++)
x++;
c)
i = n;
while(i ≥ 1) {
for(j = 1; j ≤ n; j++)
x++;
i = ⌊i/2⌋;
}
d)
i = 2;
while(i <
i = i ∗ i;
x++;
n) {
}
6. Sean f, g, h : N → R+ . Demostrar las siguientes propiedades de las notaciones asintóticas:
a) f (n) = O(g(n)) ∧ g(n) = O(h(n)) ⇒ f (n) = O(h(n))
b) f (n) = Ω(g(n)) ∧ g(n) = Ω(h(n)) ⇒ f (n) = Ω(h(n))
c) f (n) = Θ(f (n))
d) f (n) = O(g(n)) ⇔ g(n) = Ω(f (n))
e) Si g(n) = O(f (n)), entonces f (n) + g(n) = O(f (n))
7. Sea
d
X
ai n i
i=0
un polinomio de grado d asintóticamente positivo (ad positivo). Demostrar que p(n) = Θ(nd ).
8. Probar que
lg(n!) = Θ(n lg n)
n
X
k 2 = Θ(n3 )
k=1
n
X
1
= O(1)
k2
k=1
1+
1
2
+ ···+
1
n
= Θ(lg n)
Práctica de Laboratorio 1
Introducción al Análisis de Algoritmos
Página 2
Descargar