Archivos Programación: Agosto 2008
Bueno, no tuvo buena acogida mi desafío, probablemente el público que lee este blog no es tan técnico como yo creo.
De todas maneras acá va la solución, expresada en el lenguaje J:
($ [: /:@; [: <@|.`</. i.)@,~ 5
La salida de este programa es la esperada:
0 1 5 6 14
2 4 7 13 15
3 8 12 16 21
9 11 17 20 22
10 18 19 23 24
para que vean que no saben nada sobre lenguajes de programación ;)
Esta vez les voy a proponer un desafío, estoy pensado principalmente en los jóvenes programadores que les gustaría participar en eventos como la ONI (o la IOI), si la cosa tiene algún éxito, les propondré otro desafío.
El desafío es el siguiente:
Producir un arreglo zig-zag.
Un arreglo zig-zag es un arreglo cuadrado de los primeros N2 enteros, donde los números van ordenados de menor a mayor distribuidos en forma de zig zag a lo largo de las anti diagonales de la matriz (ver la figura).
Por ejemplo, si N es 5, el programa debe producir este arreglo:
0 1 5 6 14
2 4 7 13 15
3 8 12 16 21
9 11 17 20 22
10 18 19 23 24
* Aunque esto puede parecer un juego de ingenio, un tanto inútil, la verdad es que este tipo de arreglos es usado en el algoritmo de compresión de imágenes JPEG.
La respuesta estará la próxima semana.

