Menu
in ,

Project Euler: Matemática y programación

Si perteneces al grupo de personas que gustan de enfrentarse a un buen desafío, Project Euler es ideal para ti. Se trata de una serie de problemas que involucran matemáticas y programación, que los aficionados deben intentar resolver. En este momento hay 309 problemas propuestos, y en pocas horas estará disponible el número 310. ¿Te animas a ser el primero en resolverlo?

No son pocos los programadores que gustan de los problemas matemáticos. También es cierto que a muchos matemáticos les gusta programar. A ambos grupos seguramente les interesará conocer el denominado Project Euler, una colección de desafíos que requieren de talento matemático y habilidades relacionadas con la programación para ser resueltos. El objetivo del proyecto es simplemente estimular a los participantes a desarrollar mejores habilidades de programación, aprender conceptos nuevos y -sobre todo- divertirse. El nombre de este proyecto honra a Leonhard Euler, el brillante matemático y físico Suizo cuyo aporte más conocido es el número de Euler (e ≈ 2.71828), utilizado como base del logaritmo natural. Euler realizó trabajos relacionados con el Cálculo infinitesimal, la Teoría de Grafos, la dinámica de fluidos, óptica y astronomía. Por todo esto se lo considera uno de los matemáticos más importantes de todos los tiempos.

Los problemas propuestos (periódicamente se van agregando nuevos) suelen ser bastante complicados, pero con un poco de imaginación, habilidad matemática y una buena dosis de lógica, los podrás resolver. Para conocerlos no hace falta registrarse. Con solo visitar la web puedes acceder a la lista de problemas disponibles y comenzar a resolverlos. Pero si quieres ir “sumando puntos” a medida que los resuelves, puedes crearte una cuenta de usuario (solo necesitas unos segundos para hacerlo), y comenzar a recorrer la lista de problemas como todo un profesional. Un aspecto interesante del Project Euler es que -si los encaras de la forma correcta- los problemas propuestos se resuelven utilizando un ordenador poco potente en menos de un minuto. Por ejemplo, el problema número 48 dice: “Encuentra los últimos 10 dígitos de la serie  1¹ + 2² + … + 1000¹⁰⁰⁰.” Está claro que utilizando “fuerza bruta” eso no se resuelve en menos de un minuto, por lo que deberás concentrarte en encontrar un algoritmo eficiente que te evite esperar años mientras tu pobre ordenador trabaja.

Solo se debe brindar la respuesta correcta. No importa la forma en que hayas escrito tu programa, algo bastante lógico ya que siempre hay varios caminos para lograr el mismo objetivo. Eso significa que puedes usar tu lenguaje de programación favorito (Java, PHP, Cobol, Pascal, C, C++, ensamblador o incluso el BASIC de tu vieja Commodore 64) para resolver cada problema. Cuando lo hayas hecho, tendrás acceso a un foro en el que podrás comparar tu solución con la de otros participantes y ver quien obtuvo la mejor, algo que seguramente te ayudará a mejorar tu estilo y resolver los próximos problemas. Por supuesto, si buscas un poco por la red encontrarás las respuestas a casi todos los desafíos planteados y podrás avanzar rápidamente hacia el final. Y de paso, perderás la oportunidad de aprovechar esta genial idea para aprender un montón de cosas nuevas mientras encaras estos desafíos. En definitiva, y a pesar de que no hay “premios” en el sentido tradicional de la palabra, Project Euler puede hacer de ti un verdadero ganador. Si encaras cada problema con tiempo e ingenio, seguramente desarrollarás habilidades nuevas, descubrirás métodos de optimización que ignorabas y pasarás muchas horas entretenido. ¡Y gratis! En este momento hay 309 problemas propuestos, y en pocas horas estará disponible el número 310. ¿Te animas a ser el primero en resolverlo?

Escrito por Ariel Palazzesi

Leave a Reply