martes, 23 de septiembre de 2008

La pascua geek

Hace unos días mi padre me preguntó si era posible prever la fecha en la que caerá la semana santa. Naturalmente, la respuesta es que sí: esa fecha no la decide nadie arbitrariamente, sino que sigue unas reglas. Ahora bien, las reglas concretas son poco conocidas; yo recordaba que tenía algo que ver con la llegada de la primavera y con la luna llena, pero no sabía los detalles. Esta tarde me ha dado por mirarlo, cómo no, en la Wikipedia. Aquí tenéis el enlace al artículo.

Bien, aparentemente es un artículo normal. Durante las primeras lineas te explican por qué es variable, que si no puede coincidir con la pascua judía, etc. Luego vienen a decir que consiste en que el domingo de pascua ha de ser el siguiente al primer plenilunio de la primavera. En realidad hay algunos detalles más, pero básicamente es esto.

Satisfecho ya con la explicación, sigo leyendo para ver qué más tienen que contarme, esperando una simple tabla de días por año o una fórmula relativamente sencilla. Pues no. Comienzo a alucinar cuando me explican que antiguamente se desarrollaron diferentes fórmulas que usaban el número áureo, pero que más tarde Gauss desarrolló un algoritmo que es el que finalmente se suele utilizar. Mira que el bueno de Gauss hizo cosas, pero jamás se me hubiera ocurrido que también se dedicase a esto. ¿Le faltó algo por calcular a este hombre?

Por otro lado, el algoritmo tiene su miga, al tener que definir tantas variables en tantos pasos distintos. Pero bueno, la cosa no queda ahí. El autor de la página tiene la gentileza de ofrecernos el código Java que implementa el algorimo de Gauss. Hombre es un detalle; un detalle geek, pero un detalle a fin de cuentas. Lo cachondo viene cuando sigues leyendo y te encuentras también la implementación para Phyton y para PHP; y ya no digamos la de Perl...

Pero es que ahí no queda la cosa. Para rizar el rizo, se nos añade la implementación en lenguajes tan "exóticos" ya como el Turbo Pascal (Dios, qué recuerdos de la facultad de Informática), PowerBuilder e incluso en PL/SQL, pl/pgsql y SQL Anywhere (¿cuánta gente necesita calcularlo directamente en la Base de Datos?). En fin, ha sido la anécdota graciosa de la tarde.

"¿Y cuál es la gracia de todo esto?", diréis algunos. Bueno, si os hacéis esta pregunta, probablemente es que no habéis estudiado Informática ;-)

Imagen: http://buscaideas.files.wordpress.com/2008/02/geek-inside-1280.jpg

No hay comentarios: