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!