Trimestre 2010 Otoño
Entrega: 7 de octubre de 2010 en clase.
[5 puntos] Sea S(n) = 0*1+1*2+2*3+...+(n-1)*n. Encuentra cuatro
números a, b, c y d tales que S(n) = an3 + bn2
+ cn + d. Demuestra tu
respuesta por inducción en n.
[5 puntos] Considera el siguiente juego de dos jugadores: Hay N
cerillos en una mesa. El primer jugador puede quitar 1 o 3 cerillos.
El segundo jugador puede quitar 1 o 2 cerillos. El jugador que quita
el último cerillo gana el juego. ¿Para cuáles
valores de N el primer jugador puede ganar el juego
independientemente de lo que haga el segundo jugador? Justifica tu
respuesta por inducción en N.
[5+5 puntos] Para cada pareja de funciones f y g
¿será cierto que f(n) es O(g(n)) o g(n) es O(f(n))?
Demuestra tu respuesta por inducción en n.
Sean f(n) = 3(n2 + 2n) y g(n) = 60n.
Sean f(n) = n2 + log n y g(n) = n3/2.
[10 puntos] Demuestra que el siguiente algoritmo iterativo para
incrementar un entero es correcto:
incrementa(y)
x = 0 c = 1 d = 1 mientras (y > 0) o (c >
0)
a = y MOD 2 si a XOR c entonces x = x+d c = a AND c d = 2d y = y/2
regresa (x)
Las funciones AND, XOR y MOD son las operaciones de "y de bits", "o
exclusiva de bits" y módulo, respectivamente. Observa que la
línea del XOR parece contener una trampa. ¿Cómo se
puede hacer esta operación sin sumar?
[10 puntos] Demuestra que el siguiente algoritmo recursivo para
incrementar un entero es correcto:
incrementa(y)
si y = 0 regresa 1 si no entonces
si y MOD 2 = 1 entonces regresa (2 *
incrementa(y/2)) si no regresa(y+1)
Observa que la última línea parece contener una trampa.
¿Cómo se puede hacer esta operación sin sumar?