Anarit
Abreviatura de Analizador Aritmético. Este programa resuelve la
parte de las cifras del concurso de televisión española "Cifras y letras".
Se parte de seis números elegidos entre 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 25, 50,
75 y 100 y con las cuatro operaciones aritméticas básicas hay que intentar
obtener un número objetivo de tres dígitos. Solo se puede usar cada número
una vez, pero no hace falta usarlos todos.
Configuración
Se puede trabajar con el programa en dos modos distintos: normal y experto.
En el modo normal, se usan los botones correspondientes para introducir
los datos del problema y cuando están listos, se pulsa el botón
Analizar para obtener la solución.
En modo experto ya no se siguen las reglas normales del concurso y se
pueden introducir los números que se desee. Simplemente hay que separar
cada dos números con un espacio.
Solución
El programa siempre encuentra el número más cercano al objetivo que sea
posible; esto es seguro, ya que se analizan todos los casos hasta
que se obtiene el número objetivo exacto.
Historia
Desarrollé la primera versión de este programa en 1992, usando los consejos
de la empresa de IA EQ Sistemas Inteligentes mientras estudiaba
el curso de sistemas expertos que ellos impartían.
Usé el lenguaje de programación C y, incluso con eso y el montón de trucos
que pensé para acelerar la ejecución, mi ordenador necesitaba casi un minuto
para resolver los problemas más difíciles. Ahora, ese mismo código en C está
ejecutándose en una unidad Android y me imagino que tarda menos de un segundo
en cada uno. Por eso doy el tiempo empleado en milisegundos.
Complejidad
Además de la solución y el tiempo empleado se puede ver otra información:
la complejidad de la búsqueda. Su segundo número indica cuántos grupos
de cuatro números ha obtenido el programa usando dos operaciones; el primero
indica cuántos de esos grupos tienen diferentes números.
Más información
Se puede visitar mi sede web pedroreina.net, leer explicaciones más
detalladas sobre el algoritmo de búsqueda y descargar el código fuente
para estudiarlo por uno mismo. El programa está escrito en Java usando el
SDK de Android y también usa el NDK para reutilizar el código C original.
¡Muy divertido!