miércoles, 19 de junio de 2019

Iteración basada en la suma de cuadrados de cifras (3) - Diferencias



Diferencias con la suma de cifras al cuadrado

Las iteraciones estudiadas en nuestras dos anteriores entradas las podemos completar con otras similares ideadas por mí, que no parecen haber sido estudiadas hasta ahora. 

La iteración propuesta consiste que, en lugar de transformar un número en la suma con los cuadrados de sus cifras, lo hagamos con la diferencia, en valor absoluto, entre el número y esa suma de cifras al cuadrado. El uso del valor absoluto se justifica porque algunos números son mayores que la suma de esos cuadrados, como 21>2^2+1^2 y otros menores, como 2>2^2. De esa forma nos aseguramos que el resultado sea positivo y también que sea siempre menor (salvo el caso trivial de 0) que la suma de cifras al cuadrado estudiada en la entrada anterior.

Todo el contenido de la demostración enlazada en anteriores entradas (http://fermatslibrary.com/s/a-set-of-eight-numbers#email-newsletter) se puede adaptar a esta nueva iteración, en el sentido, que ya veremos, de terminar en ciclos similares a los que se producen iterando sólo con los cuadrados.

Necesitamos la función SUMACIFRAS(n;2), ya estudiada en esas entradas, con el parámetro 2 para que se sumen los cuadrados, sólo que ahora usaremos ABS(SUMACIFRAS(N;2)-N) en la iteraciones. Por ejemplo:

34 se convierte en abs(3^2+4^2-34)=9

9, a su vez en 81-9=72, y así podemos proseguir:



Observamos que entramos en el ciclo 18, 47, 18, 47,…En otros ejemplos se llega al ciclo 21, 16, 21, 16,…

Otras iteraciones terminan en 0, como la siguiente:


Por último, otras terminan en 2 como invariante (2=abs(2-2^2))


Hemos probado muchos números y en ellos sólo existen cuatro finales posibles en los ciclos {0}, {2}, {16,21} y {18, 47}. Lo dejamos como conjetura, pero es seguro que existe una demostración similar a la de la iteración de las anteriores entradas.

Con la función   ESCICLODIFCUAD también hemos explorado los posibles ciclos. Su objetivo es descubrir si un número N es comienzo de ciclo. Su listado es:

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

p = n: r = 0: es = False
While r < 100 And Not es
q = Abs(p - sumacifras(p, 2)) ‘Efectúa la iteración
If q = n Then es = True ‘Si se repite el valor de n, es inicio de ciclo
p = q
r = r + 1 ‘Cuenta las iteraciones
Wend
If es Then esciclodifcuad = r Else esciclodifcuad = 0
End Function

Con ella hemos comprobado, con una cierta seguridad (no total) que los únicos números inicio de ciclo son los presentados:


Como curiosidad señalaremos que en números mayores que 10000 las iteraciones presentan mucho más recorrido, una órbita más larga hasta llegar al ciclo.

Variante

Podemos restar el doble de la suma de cuadrados de las cifras, que convergerá más rápidamente que la anterior. Encontraríamos entonces que se llega al ciclo {78, 148, 14, 20, 12, 2, 6, 66}, o al ciclo {7, 91, 73, 43} o a los invariantes 0 y 1.

Por ejemplo, en el primer ciclo se daría:

Abs(78-2*(49+64))=2*113-78=226-78=148
Abs(148-2*(1+16+64))=162-148=14

Y así seguimos hasta

Abs(6-2*36)=72-6=66
Abs(66-2*(36+36))=144-66=78

Y esto completa el ciclo.

Usando un “buscador de ciclos” similar al de la iteración anterior, lo comprobamos:





No hay comentarios: