Archive for Septiembre, 2007

Nos vamos para la maratón nacional de programación

Hoy sábado fue la eliminatoria en mi universidad para escoger a los tres equipos que la representarán en la XXI Maratón Nacional de Programación. Nuestro equipo participó y quedamos en segundo lugar, resolviendo 2 de los 4 problemas planteados en 2 horas 19 minutos.

Los problemas fueron sacados el Archivo de problemas de la Universidad de Valladolid, y los problemas en cuestión fueron:

Los problemas que mi equipo resolvió fueron Chess y Quirksome Squares. La implementación de The House of Santa Claus que hicimos no fue aceptada por el juez :( . Más adelante explicaré la solución a este problema.

¿Quién dijo que los gatos no estudian?

Gatito estudioso

Torre de Hanoi e inducción matemática

La torre de HanoiLa semana pasada tuve la oportunidad de ir a la Fiesta del libro que se realizó en Medellín del 7 al 16 de septiembre de 2007 y me topé con un stand de juegos matemáticos de una empresa colombiana llamada “Mathema”. Estaban exhibiendo diversos acertijos matemáticos y en particular hubo un juego que ya conocía que me llamó la atención: la torre de Hanoi, así que lo compré y le dediqué un buen rato a tratar de resolverlo. Luego de haber encontrado una manera de solucionarlo, descubrí que en el empaque decía que se necesitaban 2^n-1 | LaTeX movimientos para solucionar el rompecabezas donde n es el número de discos del juego. Me dieron ganas de probarlo, así que puse en práctica lo que estoy aprendiendo en la universidad y aquí está la prueba por inducción matemática:

    Sea P(n) la proposición que afirma que se necesitan 2^n-1 | LaTeX movimientos para mover n discos de un bastón a otro.

  1. Paso base: Si se tiene un único disco, se necesita un único movimiento para moverlo de un bastón a otro, es decir, 2^n-1 | LaTeX movimientos. Por lo tanto se tiene P(1).
  2. Paso de inducción: Supongamos P(k). Bajo este supuesto debe probarse que P(k+1) es válido. Si tenemos k+1 discos en un bastón, aplicando la hipótesis inductiva podemos mover los primeros k a otro bastón en 2^k-1 | LaTeX movimientos. Después movemos el disco más grande al bastón de destino y volvemos a mover los ya mencionados k discos sobre el disco más grande de todos. Aplicando la hipótesis inductiva nuevamente, se tiene que la cantidad total de movimientos necesarios para mover k+1 discos de un bastón a otro está dada por 2^n-1 | LaTeX. Aplicando propiedades de álgebra esta expresión puede expresarse cómo 2^n-1 | LaTeX. Es decir, P(k+1).
  3. Por lo tanto, por inducción matemática queda probado que 2^n-1 | LaTeX .

    :)

Por otro lado, estoy estrenado feeds en FeedBurner, pueden suscribirse haciendo click aquí.

Programa en C para resolver sudokus

Sudoku Solver es un programa escrito en el lenguaje de programación C que es capaz de resolver cualquiera de estos famosos rompecabezas japoneses y además informa si el reto tiene una única solución. Es asombrosamente rápido, según el autor:

On a 333 MHz Pentium II Linux box it solves typical medium force puzzles in approximately 620 microseconds or about 1,600 puzzles per second, give or take. On an Athlon XP 3000 it solves about 10,800 puzzles per sec.

El algoritmo se ve muy interesante. Definitivamente vale la pena ensayarlo, pues sobra escribir que el código fuente esta disponible. Acá hay una captura sacada de la página oficial que muestra el programa en funcionamiento:

Sudoku Solver en funcionamiento




Cómo mostrar LaTeX en WordPress

Cómo muchos de ustedes ya sabrán, LaTeX es un sistema particularmente útil a la hora de expresar ecuaciones matemáticas. Hoy voy a mostrarles cómo integrar este sistema a un blog que corra WordPress. El método que voy a mostrar no necesita tener instalado LaTeX en el servidor donde se correrá, sino utiliza mimeTeX, un programa que renderiza código LaTeX directamente a un archivo de imagen que puede ser .gif o .png. Esto tiene varias ventajas; la más destacada es que es mucho más fácil de instalar que otras maneras de integrar LaTeX a WordPress.

La instalación es realmente sencilla, empecemos:

  1. Bajar y descomprimir mimeTeX. Yo lo hice directamente desde el servidor, pero antes cree una carpeta, así:
    1. mkdir mimetex cd mimetex  
    2.  wget http://www.forkosh.com/mimetex.zip  
    3.  unzip mimetex.zip
  2. Compilar el programa. Yo lo hice con los parámetros por defecto:
    1. cc -DAA mimetex.c gifsave.c -lm -o mimetex.cgi  
  3. Una vez compilado, será necesario mover el programa al directiorio cgi-bin y asignarle los permisos necesarios. En mi caso el directorio no estaba creado así que escribí:
    1. cd .. mkdir cgi-bin  
    2.  mv mimetex/mimetex.cgi cgi-bin   chmod 755 cgi-bin/mimetex.cgi  
  4. Ahora a probarlo. Para ello escribimos:
    1. cgi-bin/mimetex.cgi "x=4"

    Y deberíamos ver la ecuación renderizada en ASCII.

  5. A continuación podemos borrar la carpeta de extracción:
    1. rm -r mimetex

Una vez tengamos el mimeTeX instalado, podemos proceder a mostrar imágenes de nuestras ecuaciones. Para ello utilizamos el código:

  1. <img src="../cgi-bin/mimetex.cgi?x^2=frac{3^y}{2}">

Obviamente se hacen los reemplazos necesarios, como la ruta del archivo .cgi y la ecuación. Éste es el resultado del ejemplo:

Ejemplo de LaTeX renderizado con mimeTeX

Y eso es todo. Si se quiere expandir aún más la usabilidad de esta herramienta, se puede instalar un plugin que permite insertar las imágenes renderizadas sin tener que escribir las etiquetas HTML correspondientes. Por otro lado, en el manual completo de mimeTeX se encuentran cantidad de ejemplos con sus respectivos códigos, que muestran la potencia de esta herramienta:

Ejemplo 1 Ejemplo 2 Ejemplo 3

Actualización: En Gaussianos.com encontré otra manera de mostrar LaTeX en Wordpress, usando un plugin llamado WP-LaTeX.

« Entradas anterioresEntradas siguientes »