jueves, 27 de junio de 2019

Iteración basada en la suma de cuadrados de cifras (4) -Otras iteraciones

Suma y resta de los cuadrados de las cifras

Estudiamos en esta entrada una iteración que es una composición de dos ya estudiadas (ver entradas inmediatamente anteriores). Consiste en sumar a cada término la suma de los cuadrados de sus cifras y después restar al resultado ese cuadrado aplicado a sus propias cifras.

Por ejemplo, si a(n)=234, haremos b=234+22+32+42=263, y restaremos a b el cuadrado de sus cifras para obtener el siguiente término, a(n+1)=263-22-62-32=214.


En esta operación habrá números, como el anterior, que disminuirán su valor, otros lo aumentarán y algunos lo conservarán, como 3114, que al aplicarle la iteración resulta: b=3114+9+1+1+16=3141, y este se convierte en 3141-9-1-16-1=3114. En estos casos la suma de cuadrados es la misma en a(n) y en a(n+1).

Podíamos llamar “exceso cuadrático” a la diferencia entre la suma de cuadrados de las cifras de un número y el resultado de aplicar la misma operación a la suma del número con los cuadrados de sus cifras. Suponemos que calculamos la diferencia el segundo resultado menos el primero.

Así, 234, tendría un exceso cuadrático de 22+62+32-22-32-42=20. Por eso, en la iteración disminuye de 234 a 234-20=214. Los números con exceso cuadrático positivo se hacen menores en la iteración.

3114 tendría exceso cuadrático 0, por lo que es invariante.

129 tendría exceso negativo, ya que 129+1+4+81=215 y 22+12+52=30, es menor que 12+22+92=86. Por eso, 129 aumenta en la iteración, pues se convertiría en 129+86-30=185.

Existen muchos más números que disminuyen, por lo que esta iteración converge o entra en un ciclo, al igual que la anteriores.

Las iteraciones van terminando en los invariantes (ver listado más abajo) o en ciclos de dos, como 752 con 757, de tres, como 9125, 9106, 9119. Necesitamos una función que nos diga en qué ciclo se termina.

Detector de ciclos (solo hasta 100)

Public Function esciclosumacuad(n)
Dim p, q, r, p1
Dim es As Boolean

p = n: r = 0: es = False
While r < 100 And Not es
p1 = p + sumacifras(p, 2)
q = p1 - sumacifras(p1, 2)
If q = n Then es = True
p = q
r = r + 1
Wend
If es Then esciclosumacuad = r Else esciclosumacuad = 0
End Function

Con ella descubrimos los ciclos de longitud 1, invariantes

Los primeros invariantes son:

0, 9, 205, 212, 217, 366, 457, 663, 1314, 1315, 1348, 1672, 1742, 1792, 1797, 2005, 2012, 2017, 2129, 2201, 2208, 2213, 2216, 2305, 2404, 2405, 2465, 2564, 2565, 2671, 2741, 2748, 2789, 2829, 3114, 3115, 3205, 3303, 3306, 3394, 3436, 3475, 3696, 3819, 4204, 4205, 4245, 4347, 4475, 4542, 4629, 4647, 4688,...

Los puedes reproducir también con PARI:

for(i = 0 , 5000 , a = i + norml2(digits(i)) ; b = a - norml2(digits(a)) ; if(i == b , print1(i , ", ")))

Los primeros ciclos de 2 los tienes en la tabla. Cada término de la primera columna forma ciclo con la cuarta:


Existen ciclos de 3, 4 o 5 elementos, e incluso 12, 18 o 19. Es mucha variedad, lo que le quita interés. Para números comprendidos entre 0 y 50000 la longitud máxima que he encontrado es 24.

Cocientes

Podemos dividir cada número entre la suma de sus cifras al cuadrado, pero al llegar al elemento 0, obtendríamos divisiones imposibles. Por eso añadiremos una unidad, con lo que resulta otra iteración que desemboca en un ciclo.

Usaremos, pues la fórmula (en hoja de cálculo):

A(n+1)=ENTERO(A(n)/SUMACIFRAS(A(n);2))

Esta iteración presenta un desarrollo muy simple, pues en pocos pasos desembocamos en el ciclo {1, 2}, ya que 1+ENTERO(1/1^2)=2 y 1+ENTERO(2/2^2)=1

Existe la iteración con el cociente invertido:

A(n+1)=1+ENTERO(SUMACIFRAS(A(n);2)/A(n))

Esta es muy curiosa, pues recorre el ciclo formado por los diez primeros números naturales.

En efecto, si se entra en el 1, 2,…10 en cualquier paso de la iteración, ya no se abandona el ciclo. Lo vemos:


1+ENTERO(1^2/1)=2, 1+ENTERO(2^2/2)=3 y 1+ENTERO(a^2/a)=a+1, siendo a<10, y, por último, 1+ENTERO((1^2+0^2)/10)=1

Aquí tienes un volcado de pantalla en el que se comprueba. Contiene los primeros pasos en la iteración en varios números consecutivos:


Los números de cuatro o más cifras son mayores que la suma de cuadrados de sus cifras, luego en ellos el ciclo aparecerá en el primer paso:


Con esta entrada finaliza nuestra serie sobre los cuadrados de las cifras. Proximamente crearemos una publicación sobre el tema.

También con ella damos por terminado el curso 2018-19. En septiembre volvemos. Feliz verano.



No hay comentarios: