Tarea 1 de Análisis de Algoritmos

Trimestre 2008 Otoño
Entrega: 21 de octubre 2008 en clase.

  1. [5 puntos] Demuestre por inducción que 1*1 + 2*2 + 3*3 + ... + n*n = n(n+1)(2n+1)/6 para toda n >= 1.
  2. [5 puntos] Demuestre por inducción que n3 <= 2n+2 para toda n >= 4.
  3. [10 puntos] Demuestre que el siguiente algoritmo para calcular yz es correcto:
    x := 1
    mientras z > 0 haz
    si z es impar entonces x := xy
    z := z/2 (parte entera)
    y := y2
    regresa x
  4. [5 puntos] Suponga que en el algoritmo anterior z tiene n bits. Calcule el número máximo M(n) de multiplicaciones que realiza el algoritmo. Observe que hay un máximo de dos multiplicaciones en el cuerpo del ciclo.
  5. [15 puntos] Para cada una de las siguientes parejas de funciones decida si f(n) es O(g(n)) o no. Diga qué es lo correcto y demuéstrelo:
    1. f(n) = n, g(n) = 3n.
    2. f(n) = 2n2, g(n) = n3.
    3. f(n) = 3n2, g(n) = n + log2 n.
    4. f(n) = n + log2 n, g(n) = n.
    5. f(n) = n + log2 n, g(n) = log2 n.