martes, 11 de junio de 2019

Iteración basada en la suma de cuadrados de cifras (2) Números felices



En la iteración de la entrada anterior de esta serie (es importante su repaso), los números que desembocan en la unidad reciben el nombre de “números felices”. Por ejemplo, el 129, que en la iteración de sumar los cuadrados de sus cifras recorre la siguiente órbita:


Como era de esperar, el 1 es un punto fijo, y 129 se considera “número feliz”.

Estos números son populares en las distintas divulgaciones de temas de números.

La lista de los primeros está contenida en http://oeis.org/A007770  

1, 7, 10, 13, 19, 23, 28, 31, 32, 44, 49, 68, 70, 79, 82, 86, 91, 94, 97, 100, 103, 109, 129, 130, 133, 139, 167, 176, 188, 190, 192, 193, 203, 208, 219, 226, 230, 236, 239, 262, 263, 280,…

Esta sucesión se corresponde con la primera de las nueves clases de equivalencia que estudiamos en la entrada anterior:


En la página OEIS citada puedes leer consideraciones muy sencillas sobre estos números. Hemos adaptado tres:


  •  L Las potencias de 10 son números felices, pues desembocan en 1 con una sola iteración. Esta propiedad garantiza la infinitud de la sucesión de números felices. De igual forma, los números del tipo 2*10^k producen un 4 en la primera iteración, con lo que entran en ciclo. Por ello los números no felices también son infinitos.
  •       Si n es un número feliz, también lo son los obtenidos a partir de él insertando ceros entre sus cifras, o alterando el orden de estas.
  •      Si n es feliz, el número formado por n unos, 111..1111 también lo es, porque en la primera iteración produce n.

Función para detectar números felices

La función ciclocuad que se usó en la entrada anterior para clasificar los números en esta iteración se puede adaptar fácilmente al caso en el que el final esperado sea un 1. Bastará iterar sobre el número mientras sea mayor que 6. Si desemboca en 2, 3, 4, 5 o 6, no es feliz (ver las clases de equivalencia de la entrada anterior), pero si lo hace en 1, ya sabremos que lo es:

Public Function esfeliz(n) As Boolean
Dim m
m = n 'Recogemos la variable n para su manipulación
If m = 1 Then esfeliz = True: Exit Function ‘Si es 1, es feliz
While m > 6  ‘Todos los felices salvo el 1 son mayores que 6
m = sumacifras(m, 2)  ‘Iteramos sobre m hasta que sea menor que 6 (será 4 o 1)
If m = 1 Then esfeliz = True Else esfeliz = False 'Si el final es un 1, es que n es feliz
Wend
End Function

Con esta función podemos determinar si un número es feliz o no. Aquí tienes los resultados para los primeros números de tres cifras:


Coincide con el listado, en el que figuran 100, 103 y 109

Podemos construir un pequeño esquema que nos indique si un número es feliz o no:

En la imagen hemos aplicado la función a 4599, con resultado afirmativo:


En efecto, la iteración desemboca en un 1:


Podemos modificar la función esfeliz para que nos devuelva un cero si el número no es feliz, o el número de iteraciones si lo es. Quedaría así:

Public Function orbitafeliz(n)
Dim m, k
m = n  ‘La variable m recoge el valor de n
k = 0 ‘Contador de iteraciones
If m = 1 Then orbitafeliz = 0: Exit Function ‘Si m=1, no necesita iteración
While m > 6
m = sumacifras(m, 2)
k = k + 1
Wend
If m = 1 Then orbitafeliz = k Else orbitafeliz = 0
End Function

Aplicada esta función a los números del 100 al 110 nos confirma que los únicos felices son 100, 103 y 109, con longitudes de órbita respectivas de 1, 2 y 4:


La longitud de la órbita no suele ser muy grande. El primer número con 6 iteraciones es el 356 y con 7 iteraciones el 78999.

Felices consecutivos

Con la función esfeliz se puede organizar con hoja de cálculo una búsqueda de felices consecutivos. Aquí tienes los primeros pares:


Los números menores de cada par están publicados en http://oeis.org/A035502

Feliz doble de otro

Podemos seguir jugando con la idea de número feliz. En esta tabla figuran números felices en los que uno es el doble del otro:


Dentro de esta sucesión existen números en los que n, 2n y 4n son felices:


Entre ellos algunos incluyen 8n como feliz:


Puedes buscar casos parecidos, que con la función ESFELIZ propuesta no son difíciles de encontrar.

Feliz cuadrado de otro

En estos pares el segundo feliz es el cuadrado del otro:


Estos están publicados en http://oeis.org/A280966

Primos felices

Si unimos las funciones esprimo y esfeliz obtendremos la sucesión de primos felices:

7, 13, 19, 23, 31, 79, 97, 103, 109, 139, 167, 193, 239, 263, 293, 313, 331, 367, 379, 383, 397, 409, 487, 563, 617, 653, 673, 683, 709, 739, 761, 863, 881, 907, 937, 1009,…

También están publicados en OEIS (http://oeis.org/A035497)

No se sabe si existen infinitos primos felices.


No hay comentarios: