martes, 10 de junio de 2025

Regresos 15 - Generaciones con cifras y potencias

En una entrada antigua de este blog se invitaba a buscar igualdades similares a la siguiente:

882+332=8833

En aquella ocasión se dio más protagonismo a seguidores del blog, pero los tiempos han cambiado y ahora es preferible ampliar el tema algorítmicamente, ya que existen menos interacciones en el mismo que entonces.

Por otra parte, puede ser una buena ocasión para ampliar las búsquedas de este tipo de casualidades. En la entrada antigua sugeríamos la existencia de otra solución de cuatro cifras, pero pedíamos buscarla con más. También, por otra parte, a partir del año 2025 nos interesan las igualdades del tipo (20+25)2=2025. Unificaremos ambas cuestiones.

Usaremos una función que admita como parámetros el número a buscar, los exponentes a los que se elevan los trozos y el tipo de descomposición, si es a^k+b^k o bien (a+b)^k.

Función de búsqueda

En el listado que sigue usamos la función AJUSTA en lugar de STR$ para eliminar el espacio en blanco que Excel puede añadir a las cadenas.

A la primera versión de la función la denominaremos CIFRAS_POTE2, para indicar que el número se descompone en dos trozos. Ya se verá en qué direcciones se puede generalizar.

Function cifras_pote2(n, tope, tipo)
'El tope es el maximo exponente - El tipo es si se toma a^k+b^k+...o bien (a+b+c...)^k

Dim i, k, a, b, t
Dim s$, v$

s = ""
v = ajusta(n) ‘Convertimos n en texto
t = Len(v$) ‘Número de cifras
For i = 1 To t – 1 ‘Punto de corte
a = Val(Left(v, i)) ‘Los dos trozos
b = Val(Right(v, t - i))
For k = 2 To tope ‘Distintos exponentes
If tipo = 1 Then ‘Tipo 1: a^k+b^k
If potencia(a, k) + potencia(b, k) = n Then s = s + "## " + ajusta(a) + "^" + ajusta(k) + "+" + ajusta(b) + "^" + ajusta(k)
Else ‘Tipo 2: (a+b)^k
End If
Next k
Next i
cifras_pote2 = s
End Function

Si usamos esta función con tope 2 y tipo 1 obtendremos la solución conocida y otra más de cuatro cifras: 

Tabla

El contenido generado por IA puede ser incorrecto.

Si usamos el tipo 2, obtenemos otras expresiones, una de ellas la popular del 2025:

Texto, Tabla

El contenido generado por IA puede ser incorrecto.

Con tres cifras se obtienen

Interfaz de usuario gráfica

El contenido generado por IA puede ser incorrecto.

Con el segundo tipo sólo existe (10+0)^2=100

Con cinco cifras sólo se encuentran ejemplos triviales en el tipo 1:

En el tipo 2 sí aparece este ejemplo: 88209=(88+209)^2

Por completar, hay que destacar que el único ejemplo de dos cifras es del tipo 2: (8+1)^2=81

Con cubos, además de las trivialidades, es interesante el ejemplo 407=4^3+0^3+7^3

No parece que el tema dé más de sí. Teniendo la herramienta, con un poco de paciencia se pueden explorar otros números de cifras y exponentes.

Descomposición en todas las cifras

Es interesante también la búsqueda de las igualdades entre un número y potencias de todas sus cifras, como la ya conocida 407=4^3+0^3+7^3.

Para encontrar estos casos cambiaremos un poco la estructura de la función. Ahora basta con que devuelva el valor del número, pues la descomposición será siempre la misma. Se propone esta función:

Function cifras_pote(n, exponente, tipo)
‘El tipo es idéntico al de la versión anterior

Dim i, a, b, t, c
Dim s$, v$
s = "" ‘Soluciones
v = ajusta(n) ‘El número como texto
t = Len(v$)
b = 0
For i = 1 To t
a = Val(Mid$(v, i, 1)) ‘Se recorren las cifras
‘Solución según el tipo (suma de potencias o potencia de la suma)
If tipo = 1 Then b = b + potencia(a, exponente) Else b = b + a
Next i
c = 0
If tipo = 1 And b = n Or tipo = 2 And potencia(b, exponente) = n Then c = n
cifras_pote = c ‘Devuelve el número o cero si no hay solución
End Function

Con esta función se descubren más ejemplos interesantes. Vemos  algunos:

Texto

El contenido generado por IA puede ser incorrecto.

Y he seguido jugando con el tema:

54748=5^5+4^5+7^5+4^5+8^5

92727=9^5+2^5+7^5+2^5+7^5

93084=9^5+3^5+0^5+8^5+4^5

17576=(1+7+5+7+6)^3

19683=(1+9+6+8+3)^3