jueves, 16 de abril de 2009

Algoritmo derivado de un problema


2758620689655172413793103448 * 3=8275862068965517241379310344

¿Qué tiene de particular este resultado?

Hace días leí en un libro de problemas el siguiente:

Encontrar un número entero que termine en 6, y que si esa cifra 6 se mueve hasta situarse delante del resto de las cifras del número, el resultado equivalga a multiplicar ese número por 4:  6abc..de=4*abc..de6

Un caso similar es el número 205128, que si movemos el 8 a la primera posición 820512 el resultado equivale a cuatro veces el primitivo: 205128*4=820512

¿Cuál es la forma más rápida de resolver este tipo de problemas?

 Intenté analizarlo por la parte izquierda, y aunque llegué a alguna solución, vi que resultaba mucho más eficiente trabajar por las unidades, después las decenas, etc. En efecto, si las unidades son 6, al multiplicar por 4 han de resultar 4 unidades. Luego el número termina en 4. Por un razonamiento similar, las decenas han de valer 8 (4*4+2=18), las centenas…seguí así hasta encontrar la solución. ¿Puedes encontrarla tú?

Este razonamiento se puede convertir en un algoritmo, en el que dada la cifra de las unidades (la que ha de moverse) y el número a multiplicar te devuelva el resultado, si es que existe. El problema es que hay que darle dos condiciones de parada, y que puede no acabar nunca. Si lo implementamos en hoja de cálculo el límite es el número de filas o columnas.

Si te animas a encontrar un procedimiento de resolución e incluso a convertirlo en algoritmo, intenta conseguir resultados tan espectaculares como el que encabeza esta entrada. 

Aquí tienes otro resultado del algoritmo


Equivale a encontrar que 1304347826086956521739 * 7=9130434782608695652173

¿Existirán datos que produzcan algoritmos sin parada?

1 comentario:

Anónimo dijo...

ahora mismo estoy agregando este sitio a mis favoritos. muy buena info.