Showing posts with label taza de la morsa. Show all posts
Showing posts with label taza de la morsa. Show all posts
Thursday, March 29, 2018
Reto lúdico: un programa para diseñar el acertijo llamado Kenken
Hoy en día hay muchos acertijos que aparecen en los periódicos cotidianamente. Tenemos, por ejemplo, el casi ancestral crucigrama, que es publicado por muchos periódicos prácticamente de forma diaria. Sin embargo, otros acertijos como el Sudoku han llegado a las planas de los periódicos y se han hecho ya parte de los mismos. Desde luego hay secciones -en algunos periódicos- de ajedrez e incluso de bridge.
Uno podría pensar que en términos reales, hay poco margen para crear nuevos acertijos, pero he aquí que hallé el kenken, también llamado Kenko o Kendoku. En algún sentido este pasatiempo es parecido al sudoku. Se juega en una malla cuadrada en donde hay que poner números. Las reglas es que no se pueden repetir ningún número en filas o columnas (como en el sudoku). Si el tablero es de -digamos- 5x5 cuadros, el jugador debe poner números sólo del 1 al 5. A diferencia del sudoku, en kenken hay regiones en donde aparece un número y una operación aritmética. Por ejemplo, se puede tener esto: "2/" y dos recuadros que hay que llenar. Si la malla es de 4x4 casillas, los posibles valores son: 4 y 2, pues 4/2=2 o bien, 2/1=2. No existen otras combinaciones para ello. Cuando solamente hay una región con un casillero, se pone el número que ahí aparezca. Cabe decir que la solución es única.
Como en el sudoku, en kenken hay diferentes grados de dificultad y la idea entonces es que el jugador puede ejercitar un poco sus capacidades aritméticas, El pasatiempo se inventó en el 2003, creación de Tetsuya Miyamoto, un profesor de matemáticas, que lo inventó con la idea de ayudar a sus alumnos en el pensamiento aritmético y lógico. Hoy en día su pasatiempo se convirtió en uno tan popular como el sudoku y hay libros completos con cientos de problemas para resolver.
Pues bien, la idea del reto es hacer un programa que genere los kenken de 3x3 hasta 9x9 celdas. Desde luego, no debe solamente generar el problema a resolver, sino la solución. Sí, es un reto un poco más complicado pero pienso que vale la pena intentarlo.
El reto tendrá como premio una taza de la Morsa. Si el ganador es de provincia, se le mandará un USB de 8 GB al menos, porque mandar una taza por mensajería es ridículamente costoso. Cabe señalar que este concurso busca simplemente alentar el trabajo de la programación y mostrar que puede ser lúdica. Es un concurso de buena fe. Si hay, por ejemplo, dos o más respuestas satisfactorias, ganará quien la haya mandado primero. El ganador cede su código fuente a la comunidad. Es decir, se promueve el código abierto.
Las respuestas al reto deben mandarlas a morsa@la-morsa.com. ¡Suerte!
Labels:
ajedrez,
bridge,
kenken,
pasatiempos,
programación lúdica,
reto lúdico,
sudoku,
taza de la morsa
Tuesday, March 20, 2018
Reto lúdico: efecto gráfico de cargar un archivo o imagen
El mundo del cómputo es hoy en día gráfico y las interfaces
ya dejaron de ser "modo texto" aunque los amantes de GNU/Linux sigan
usando el modo consola. La realidad es que las posibilidades en términos
gráficos permiten hacer muchas analogías y de alguna manera logran que el
cómputo sea en ocasiones menos árido. Quienes usan el modo gráfico ven como de
"geeks" o "nerds" a aquel que escribe comando en una
pantalla en modo texto.
Pues bien, en muchas ocasiones el usuario quiere cargar un
programa o una imagen a una aplicación y el sistema entonces le manda un
mensaje gráfico indicando que está cargando el documento, la fotografía o el
archivo que se requiere y que esto lleva tiempo. Por ejemplo, en modo consola
muchas veces se usó el poner el símbolo "\" y después de un segundo,
poner sobre este el siguiente símbolo "|", para después poner el
símbolo "/" seguido de este otro "-". Animado esta
secuencia se tenía una especie de palito que giraba mientras se iba completando
la carga del archivo en cuestión. En ocasiones el programador añadía el
porcentaje de carga que llevaba el archivo hasta llegar al 100%. Véase laprimitiva idea en este programa de demostración que escribí en unos minutos en
Delphi 7.
Pues bien, este efecto de cargar un archivo, una
"loading animation" (busquen así en Google), muchas veces es un gif
animado que le indica al usuario que espere. En Windows, por ejemplo, cuando se
está cargando un archivo, podemos ver el reloj de arena de la interfaz dando
vueltas hasta que se completa la carga.
El reto es pues escribir una rutina (que puede pasarse
después a un gif), que haga este efecto de carga de un documento, archivo,
imagen, foto, etcétera. Hay algunos ingeniosos, por ejemplo:
Cabe señalar que habiendo tantos gifs en las páginas de
Internet, más de uno quizás crea que puede sacar un gif animado, destriparlo y
presentarlo como propio. Y sí, puede ser que me engañen pero el concurso es de
buena fe y se trata de que los programadores pongan a actuar sus capacidades e
inventiva.
El ganador se llevará una taza de la Morsa y los jueces del
concurso serán personas de reconocida capacidad moral dentro del MatukPlex.
Informaremos oportunamente quienes serán los que valorarán los gifs. Toda
participación sospechosa, es decir, que nos haga pensar que el efecto de cargar
un archivo ha sido pirateado, será descalificado y mandado al infierno. De
nuevo repetimos, es un concurso de buena fe. Para evitarnos esta dificultad, el
concursante deberá explicar en un archivo de texto qué hizo, cómo lo hizo,
etcétera. La decisión final es inapelable.
¡Suerte!
Monday, August 28, 2017
Nuevo reto de la programación lúdica: Números palindrómicos
Ya hemos hablado alguna vez de palíndromas, que son frases que se leen al derecho y al revés igual, por ejemplo, "Anita lava la tina", "Somos o no somos" (creación mía) o muchos otros como los estupendos palíndromas de Merlina Acevedo, del cual ponemos un solo ejemplo: "¿Anita lava lo ajeno como coneja o lava la tina?". De hecho, hay una manera de definir un palíndroma usando un palíndroma: "sé verlas al revés", lo cual sin duda es muy ingenioso.
Pero así como hay palíndromas en los idiomas humanos, también lo hay en las matemáticas. Existen los llamados palíndromas numéricos, también llamados "números capicúa". Hay una clásica conjetura de origen desconocido), que dice lo siguiente: "Se toma un número entero positivo cualquiera. El número se escribe entonces en orden inverso; los dos números se suman. El proceso se repite con el número suma, obteniéndose entonces una segunda suma, y se prosigue de igual forma hasta lograr un capicúa. La conjetura afirma que tras número finito de adiciones terminará por obtenerse un capicúa".
Por ejemplo, consideremos el número 68:
68 + 86 = 154
154 + 451 = 605
605 + 506 = 1111
Se sabe que si el número es de dos dígitos y la suma de sus cifras suman menos de 100, en el primer paso se obtendrá un palíndromo o capicúa. Por ejemplo:
34 + 43 = 77
La conjetura parece un divertimento tan simpático como el de los números maravillosos. En 1967, dice Martin Gardner, en su libro "Circo Matemático", Charles W. Trigg descubrió que entre los números menores a 10 mil había nada menos que 249 números que no generaban palíndromos después de ejecutar 100 veces el proceso. El menor número en esas condiciones es el 196. En 1975, Harry J. Saal, realizó 237,310 iteraciones a partir de este número sin presentarse nunca sumas palindrómicas. Trigg opina de hecho que la conjetura es falsa, aunque nadie ha podido demostrarla. Se conoce también que todos los enteros menores de 10 mil, a excepción de 249 números, producen palíndromas en no más de 24 iteraciones. Tan sólo el 89 y 98 requieren las 24. De los capicúas encontrados, el mayor es 16,668,488,486,661, generado por el 6,999 (y su retrógrado), o por 7,998 (y su retrógrado) en 20 pasos.
Con esta información entonces, el reto consiste en escribir un programa, en el lenguaje que mejor conozca el lector/concursante, y haga los cálculos para precisamente los 10 mil primeros números, entregando en los resultados la cantidad de iteraciones que se hizo en cada uno de ellos. Si el número de iteraciones es mayor de 100 entonces debe considerarse como un número que no cumple con la conjetura, al menos en principio. Es decir, no hay que hacer más de 100 iteraciones con cada número.
El software que genere estos resultados en menor tiempo posible, "impreso" en un archivo de texto, será el vencedor.
Al ganador (si es de la Ciudad de México), le daré una taza con el logotipo de la Morsa. Si es de otro país o de provincia, le mandaré un USB de al menos 8 GB. La razón de esto es que mandar una taza por mensajería es estúpidamente caro.
Las soluciones me las pueden mandar a morsa@la-morsa.com.
Cabe señalar que este concurso busca simplemente alentar el trabajo de la programación y mostrar que puede ser lúdica. Es un concurso de buena fe. Si hay, por ejemplo, dos o más respuestas que den el mismo tiempo al procesar la lista de 10 mil números, ganará quien la haya mandado primero. El ganador cede su código fuente a la comunidad. Es decir, se promueve el código abierto.
En este caso no hay restricción en qué lenguaje usar. El concursante tiene que mandar su código fuente, el ejecutable (si aplica) y los resultados obtenidos. El concurso tendrá una vigencia de unas tres semanas, aproximadamente.
Subscribe to:
Posts (Atom)









