jueves, 11 de diciembre de 2008

Un capicúa en la meta (1)


En el blog “Espejo lúdico”, con fecha 9 de Diciembre de 2008, se ha publicado esta propuesta:

Si a un número se le suma su reverso (por ejemplo 75 + 57) y se hace lo mismo con el resultado, llega un momento en que el resultado es capicúa.

Por ejemplo
75 + 57 =132; 132 +231 = 363

Para un cierto número de dos cifras es necesario repetir este proceso más de 10 veces. ¿Cuál es ese número? […]

El algoritmo propuesto tiene fácil ejecución para quien sepa sumar, pero no es tan simple para una hoja de cálculo como OpenOffice.org Calc. Hay que tener en cuenta que los números se almacenan en formato binario. Por tanto, si no definimos nuevas funciones, no podrá invertir las cifras de un número ni tampoco averiguar si es capicúa o no. Así que necesitamos:

Función INVERTIR_CIFRAS: Debe de actuar sobre un número e invertir el orden de todas sus cifras, devolviéndonos el resultado.
Función ESCAPICUA: Debe averiguar si un número es capicúa o no y devolver, por ejemplo, un 1 si es capicúa y un 0 si no lo es.

En nuestra entrada anterior os invitábamos a crear vuestras propias funciones. Las dos que proponemos hoy son algo complejas, por lo que las desarrollaremos en próximas entregas. Hoy os invitamos a usar el algoritmo para averiguar (para números no muy grandes) cuántos pasos son necesarios para que un número desemboque en un capicúa sumando de forma reiterada su reverso. Se suele nombrar como el algoritmo "196”.

Lo podéis descargar en esta dirección y ver cómo está construido. Una vez descomprimido, al abrirlo te puede pedir "Activar macros". Debes tener un nivel de seguridad Medio (Ver Herramientas - Opciones). Si usas la versión 2, quizás aparezcan decimales en iteraciones largas. Con la versión 3 no he tenido problemas.

Jugando un poco con él se me han ocurrido dos cuestiones para pensar un poco en ellas y ver qué hay publicado en la red:

(a) ¿Se puede establecer alguna relación entre dos números que comparten el mismo capicúa como final del proceso? Por ejemplo, 154, 208 y 109 desembocan en el capicúa 1111. No siempre esa relación es la de tener la misma suma de cifras.

(b) ¿Qué números capicúas nunca aparecerán como resultado de este algoritmo? Ese parece ser el caso del 212 y el 232.

Si lo descubro os lo contaré. Igualmente, espero vuestros comentarios.

En próximas entregas se explicarán las dos funciones propuestas.



1 comentario:

Eugenio Manuel dijo...

Pues a ver si termino de corregir pronto y me pongo manos a la obra, porque el reto merece un ratillo de tecleo en la hoja de cálculo.