Por motivos de planificación de mis publicaciones, en este mes de junio publicaré las entradas correspondientes al tema de iteraciones basadas en el cuadrado de las cifras de un número, incluyendo en ellas el tema de los números felices. El resto de temas habituales quedan para después del verano.
En esta entrada de la serie de “vueltas” sobre los cuadrados
de las cifras de un número, reproduciremos una curiosidad publicada por Fermat’s
Library en Twitter el día 24 de abril de 2018:
Consiste la curiosidad en que si a un número cualquiera le
sumas los cuadrados de sus cifras y reiteras la operación, terminarás en el
valor 1, que sería invariante (y terminaría el proceso), o bien entraríamos en
el ciclo {4, 16, 37, 58, 89, 145, 42, 20}
No se trata de una conjetura. La demostración se encuentra
en
Puedes visitar estas direcciones para encontrar más
referencias a estas iteraciones:
Como la cuestión está resuelta, salvo mejorar la
demostración, aquí sólo nos queda construir una herramienta de hoja de cálculo
para recorrer el proceso explicado. Es una tarea sencilla, por lo que la
completaremos con el cálculo del número de iteraciones necesarias para llegar
al 1 o al ciclo y también por qué número se entra en ese ciclo.
En la imagen
vemos que el número 2398 entra en el ciclo a través del número 37 y lo consigue
en la sexta iteración.
En este otro ejemplo, el 79 llega al 1 en la tercera
iteración:
Podríamos construir una función que nos devolviera el número
de iteraciones y el valor de entrada al ciclo (o el 1). El problema radica en
que sería una función con dos resultados, el número de iteraciones y el
elemento por el que entra al ciclo. La definición de funciones tipo array en
hoja de cálculo no es trivial, por lo que concatenaremos ambos números mediante
una cadena de caracteres.
Como en otras muchas entradas que tratan de cifras, es
conveniente eliminar el espacio en blanco que Excel y Calc añaden a los números
positivos. Para ello usaremos la función AJUSTA, ya usada en este blog varias
veces. Convierte el número en una cadena de caracteres sin espacios en blanco.
Function ajusta$(a)
Dim d$
d$ = Str$(a)
While Left$(d$, 1) = " "
d$ = Right$(d$, Len(d$) - 1)
Wend
ajusta$ = d$
End Function
Con ella podemos construir la función deseada. Hay que
estudiar su listado con atención:
Public Function ciclocuad$(n)
Dim a$, c$, s$
Dim k, m, i, j
Dim final As Boolean
m = n ‘Se recoge la variable n en otra m para su manipulación
a$ = " 1 4 16 37 58 89 145 42 20 "
‘Conjunto formado por el 1 y los ocho números del ciclo
c$ = “ “+ajusta(m)+” “ ‘Las tres
líneas siguientes detectan si m
pertenece al ciclo
i = InStr(a$, c$)
If i > 0 Then ciclocuad =
"$0#0$": Exit Function ‘Si pertenece, devolvemos dos ceros
final = False
j = 0
While Not final
m = sumacifras(m, 2) ‘Se sustituye
el número m por la suma de cuadrados
de sus cifras
j = j + 1
c$ = " " + ajusta(m) + "
" ‘Se rodea el número de espacios en blanco para buscar en c$
i = InStr(a$, c$) ‘Si pertenece al
conjunto, la variable i será mayor
que 0
If i > 0 Then
final = True ‘Fin de la iteración
s$ = "$" + ajusta(j) +
"#" + ajusta(m) + "$" ‘Los valores se rodean con #
y $
End If
Wend
ciclocuad = s$
End Function
Para cada número aparecerá un resultado del tipo $6#58$, en el que 6 sería el número de
iteraciones y 58 la entrada al ciclo. Se ha construido así para facilitar
búsquedas posteriores.
Por ejemplo, para buscar los primeros números que
entran en el ciclo a través del número 58 bastará buscar en el resultado de
ciclocuad$ el trozo de cadena #58$,
y para encontrar los que necesitan tres iteraciones buscaremos $3#. Esto explica que se hayan
insertado esos caracteres.
Aquí tienes los primeros números que entran en el
ciclo a través del 58:
Y estos los que necesitan tres iteraciones:
Según lo estudiado, los números se clasificarán en nueve
clases de equivalencia según la entrada que tengan en el ciclo. Aquí tienes los
primeros:
Puedes comprobar que todos los números pequeños pertenecen a
una de las nueve clases de equivalencia. Dentro de la misma clase figurarán los
números formados con las mismas cifras. Así, 145, 154, 415, 514, comparten la
clase 42.
Se observa que con entrada en 37 y 89 hay muchos más, ya que
el nuestro listado termina en 75 y 36 respectivamente. La más escasa se ve que
es la correspondiente a 20.
Podemos, con un poco de paciencia, contar, por ejemplo, los
que hay de cada clase del 1 al 2000:
Se percibe claramente el desequilibrio en las frecuencias.
En la siguiente entrada estudiaremos un caso particular de esta iteración, como
son los números felices.
No hay comentarios:
Publicar un comentario