C++

Cómo conseguir un PhD

En Programming Pearls[1], Jon Bentley propone la manera de hacerse de un PhD: Dado el siguiente algoritmo while (n > 1) do if (n is even) n <- n / 2 else n <- n*3+1 end > Demuestre que este programa se detiene para cualquier número n entero. Si ustedes resuelven este acertijo entonces, dice Bentley, ¡vayan a la universidad más cercana y reclamen su PhD! Claro que en el camino se podrían quedar sin amigos, como nos recuerda [XKCD](http://xkcd.

Rotaciones

Cada cierto tiempo voy a escribir un articulo más avanzado, orientado a mis amigos programadores profesionales, donde introduciremos un problema de mayor complejidad, estos quedarán almacenados bajo la categoría de Técnicas Avanzadas. Este artículo lo escribí en 2006 en una versión que no prosperó de programando.org, ahora lo reciclé, aproveché de corregir algunos errores, reclasificarlo, y además le incorporé un par de ejercicios. Un problema simple de formular, pero no tan simple de resolver, es rotar un arreglo A de N elementos en i posiciones hacia la izquierda, en un tiempo proporcional a N, y usando pocos bytes extra.