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
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:
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:
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:
Puedes buscar casos parecidos, que con la función ESFELIZ
propuesta no son difíciles de encontrar.
Feliz
cuadrado de otro
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)
También están publicados en OEIS (http://oeis.org/A035497)
No se sabe si existen infinitos primos felices.
No hay comentarios:
Publicar un comentario