Hace un par de semanas descubrí un sitio llamado Project Euler y lo guarde en mi cuenta de del.icio.us, pero no fue hasta hace unos días que volví a tropezar con el sitio y me puse a investigar.

La idea del sitio es la siguiente, traduzco la introducción:

El proyecto Euler es una serie de desafíos matemáticos/informáticos que requieren más que un simple conocimiento matemático para resolver. A pesar de que las matemáticas ayudan a conseguir métodos elegantes y eficientes, muchos problemas requieren del uso de un ordenador y un conocimiento de programación para resolverlos.

El concepto es bastante simple: hay una serie de problemas y cada problema tiene una solución numérica única. Cada problema tiene una cajita donde se pone el resultado conseguido. Si es incorrecto el sitio nos lo dice, pero si es correcto el sitio marca el problema como completado y nos da acceso al hilo del foro correspondiente al problema. El foro permite discutir el problema y las soluciones empleadas y por lo general es bastante interesante la primera página. Después de la primera página la calidad de las entradas disminuye exponencialmente hasta que solo postean los que para calcular el numero primo X calculan todos los primos del 1 al 1.000.000, los meten en un array y cogen el indice correspondiente. Y además van, pegan el código y ponen un comentario en plan Tarda 20 minutos y consume 1.5GB de memoria. Un poco lento pero a mi me funciona.

Resulta interesante resolver los problemas especialmente si te tomas el trabajo de evitar las soluciones brute force. Ayuda a pasar el rato cuando no tienes nada que hacer o incluso para practicar programar con papel y lápiz en el Metro de camino o volviendo del trabajo. Como el método o lenguaje que uses para resolver el problema es completamente irrelevante a la hora de presentar el resultado siempre puedes atreverte con algún lenguaje esotérico. En los foros he visto soluciones escritas en J, Befunge, Assembly o incluso (válgame dios!) Visual Basic.

Yo ya voy por el nueve, y vos?

 

Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Set your Twitter account name in your settings to use the TwitterBar Section.