En el año 2017 publiqué en http://oeis.org/A292313
la sucesión de números equivalentes a una suma de tres cuadrados en progresión
aritmética. Ahora he querido cambiar la cuestión, exigiendo a las bases que
estén en progresión, pero no el resultado. Para un exponente general m, lo que
buscaremos será aquellos números N que presenten la equivalencia con números
enteros positivos:
En ella k representa la diferencia de la progresión y
suponemos que es mayor que 0. Escrita así la igualdad podemos beneficiarnos de
la simetría en los cálculos, como veremos más adelante.
Un ejemplo con cuadrados es 24318 = 872+902+932
= (90-3)2+902+(90+3)2.
Comenzamos por
ellos.
Suma de cuadrados en progresión aritmética
Encontrar los números que se puedan representar como suma de
tres cuadrados con bases enteras positivas en progresión aritmética equivale a
buscar aquellos que admitan la representación
N=(a-k)2 + a2 + (a+k)2
Esto parece fácil, pues basta crear una tabla de doble
entrada para valores de a y k, siendo k<a.
El inconveniente radica en que están desordenados y que no
se percibe a simple vista si existen duplicados (de hecho, 371 está repetido).
Por eso, los valores 14, 29, 35, 50, 56, 66,… los encontraremos también con
otras técnicas.
Como es costumbre en este blog, se caracterizarán estos
números mediante una función. Para ello hay que considerar la expresión simplificada
de la que los define:
En el problema propuesto, conocemos N, y el valor de a lo
podemos ir cambiando entre 2 y la raíz cuadrada de N/3, que es una cota fácil
de razonar. El valor de k depende de ellos, lo que nos evita un doble bucle de
búsqueda, ya que es la raíz cuadrada de (N-3a2)/2. En la función que
se usará nos preguntaremos si esa expresión es cuadrada, y en caso afirmativo,
de ella obtendremos k y después N. Un ejemplo de función sería el siguiente:
Public Function
basesenprog$(n)
Dim a, b, k, p, q, d
Dim s$
s$ = "" ‘Se
usa un string para recoger las soluciones
k = Sqr(n / 3) ‘Cota
para los valores de a
For a = 2 To k
b = (n - 3 * a ^ 2) /
2 ‘Se estudia el posible cuadrado de la diferencia de la p.a.
If escuad(b) Then d =
Sqr(b) Else d = 0 ‘Si es cuadrado, se halla la diferencia d, y si no d=0
If d > 0 And d <
a Then p = a - d: q = a + d: s$ = s$ + str$(p) + " " + str$(a) +
" " + str$(q) + "&"
Next a
If s$ = ""
Then s$ = "NO" ‘Si no hay solución, devuelve “NO”
basesenprog = s$
End Function
Con esta función y un bucle de búsqueda, obtenemos la lista
ordenada de los números que obtuvimos con la tabla de doble entrada:
Cada uno viene acompañado de las tres bases en progresión
aritmética. Por ejemplo, 140=22+62+102=4+36+100,
con 6-2=10-6=4.
Con esta función también se detecta si un número presenta
más de una solución. El primer número con esta propiedad es 371=12+92+172
y también 371=92+112+132.
Modificando la salida de la función, se pueden descubrir más
números que admitan dos o más soluciones. Los primeros son estos:
El primero que presenta tres soluciones es
2387=32+232+432=92+252+412=172+272+372.
Las diferencias son 20, 16 y 10 respectivamente.
Si deseas las soluciones de los párrafos anteriores en forma
de lista, puedes acudir al lenguaje PARI.
for(n=3,600,k=sqrt(n/3);a=2;v=0;while(a<=k&&v==0,b=(n-3*a^2)/2;if(b==truncate(b)&&issquare(b),d=sqrt(b);if(d>=1&&d<=a-1,v=1;print1(n,",
")));a+=1))
Obtendrás así el listado:
14, 29, 35, 50, 56, 66, 77, 83, 93, 107, 110, 116, 126, 140,
149, 155, 158, 165, 179, 194, 197, 200, 210, 219, 224, 242, 245, 251, 261, 264,
275, 290, 293, 302, 308, 315, 318, 332, 341, 350, 365, 371, 372, 381, 395, 398, 413, 428, 434, 435, 440,
450, 461, 462, 464, 482, 491, 504, 509, 515, 525, 530, 539, 557, 560, 563, 579,
590, 594, 596,…
Otra variante se inspira en la tabla de doble entrada y
después elimina duplicados:
w=List();for(n=3,600,k=sqrt(n/3);for(a=2,k,for(c=1,a-1,v=(a-c)^2+a^2+(a+c)^2;if(v==n,listput(w,n)))));print(vecsort(Vec(w),,8))
Esta sucesión permanecía inédita y la hemos publicado en http://oeis.org/A306212
Suma de cubos en progresión aritmética
Acudiremos en este caso a las mismas técnicas que usamos con
los cuadrados, pero de forma más breve. Buscamos números que presenten la
equivalencia
En primer lugar, acudimos a una tabla de doble entrada para a
y k:
Como se presenta el mismo inconveniente de los cuadrados, de
presentación sin ordenar y sin depuración de repetidos, usaremos mejor el
método de la función.
Para ello simplificaremos (a-k)3 + a3 +
(a+k)3 = 3a3 + 6ak2 = N
Despejando k observamos que (N-3a3)/6a ha de ser
cuadrado. Así que probaremos valores de a entre 2 y la raíz cúbica de N/3, tomando
nota de cuando esa expresión sea cuadrada. Puede ser así:
Public Function
basesenprog3$(n)
Dim a, b, k, p, q, d
Dim s$
s$ = ""
k = (n / 3) ^ (1 / 3) ‘Tope
para la búsqueda
For a = 2 To k
b = (n - 3 * a ^ 3) /
(6 * a) ‘Expresión que ha de ser cuadrada
If escuad(b) Then d =
Sqr(b) Else d = 0
If d > 0 And d <
a Then p = a - d: q = a + d: s$ = s$ + str$(p) + " " + str$(a) +
" " + atr$(q) + "&"
‘Existe una solución
Next a
If s$ = ""
Then s$ = "NO"
basesenprog3 = s$
End Function
Filtrando los primeros números naturales mediante esta
función, obtenemos el listado:
36, 99, 153, 216, 288, 405, 408, 495, 645, 684, 792, 855,
972, 1071, 1197, 1224, 1407, 1548, 1584, 1701, 1728, 1968, 2079, 2241, 2304,
2403, 2541, 2673, 2736, 3051, 3060, 3240, 3264, 3537, 3540, 3888, 3960, 4059,
4131, 4257, 4500, 4587, 4833, 5049, 5160, 5256, 5472, 5643, 5832, 5940, 6336,
6369, 6669, 6840, 6903, 6984, 7227, 7293, 7776, 7839, 7860, 8217, 8316, 8541,
8568, 8712, 8988, 9339, 9399, 9576, 9792,...
El primer número que presenta dos soluciones es el 5643, ya
que
5643=(9-8)3 + 93 + (9+8)3 =
(11-5)3 + 113 + (11+5)3
Esta versión en PARI se basa en una tabla de doble entrada,
eliminando repetidos:
w=List();for(n=3,10000,k=(n/3)^(1/3);for(a=2,k,for(c=1,a-1,v=(a-c)^3+a^3+(a+c)^3;if(v==n,listput(w,n)))));print(vecsort(Vec(w),,8))
Esta otra se basa en nuestra función Excel:
for(n=3,10000,k=(n/3)^(1/3);a=2;v=0;while(a<=k&&v==0,b=(n-3*a^3)/(6*a);if(b==truncate(b)&&issquare(b),d=sqrt(b),d=0);if(d>=1&&d<=a-1,v=1;print1(n,",
"));a+=1))
Entre estas soluciones aparecen cuadrados destacables, como
62 = 13 + 23 + 33
y 482 = 43 + 83 + 123
Otra relación atractiva es 66 = (24-6)3 +
243 + (24+6)3 o 154 = (25-5)3 + 253
+ (25+5)3
Podemos encontrar también muchos cubos. El primero es 63
= 3^3 + 4^3 + 5^3
Potencias cuartas
Actuamos de igual forma, iniciando una tabla de doble
entrada y después una función. La tabla es la siguiente:
De ella se descubren los primeros elementos: 98, 353, 707,
962, 1568,…
Para construir la función necesitamos algo de Álgebra.
Despejamos k, tal como procedimos en los casos anteriores:
(a-k)4 + a4 + (a+k)4 = 3a4
+ 12a2k2 + 2k4 = N
De esta igualdad se deduce indirectamente que N>3a4
y que, por tanto, (N/3)1/4 es cota para a.
(Este resultado es general: Si (a-k)n + an +
(a+k)n = N,
la cota es (N/3)1/n. Se puede ver derivando la expresión para demostrar que es creciente respecto a k)
la cota es (N/3)1/n. Se puede ver derivando la expresión para demostrar que es creciente respecto a k)
Seguimos:
2k4 + 12a2k2 - (N-3a4)
= 0
Esto nos da una condición que debe cumplir esa expresión
final, y es que sea cuadrado de un entero. Por eso, esta sería la función
adecuada para descubrir los números que admiten estas sumas de potencias
cuartas:
Public Function
basesenprog4$(n)
Dim a, b, k, p, q, d
Dim s$
s$ = ""
k = Sqr(Sqr(n / 3)) ‘Cota
superior N^(1/4)
For a = 2 To k
b = Sqr(2 * n + 30 * a
^ 4) / 2 - 3 * a ^ 2 ‘Valor de k^2
If escuad(b) Then d =
Sqr(b) Else d = 0 ‘La variable d representa a k si existe solución
If d > 0 And d <
a Then p = a - d: q = a + d: s$ = s$ + ajusta(p) + " " + ajusta(a) +
" " + ajusta(q) + "&" ‘Formación de la solución en
modo texto
Next a
If s$ = "" Then
s$ = "NO"
basesenprog4 = s$
End Function
Con esta función se puede establecer la búsqueda,
resultando, para las primeras soluciones:
98 1 2 3&
353 2 3 4&
707 1 3 5&
962 3 4 5&
1568 2 4 6&
2177 4 5 6&
2658 1 4 7&
3107 3 5 7&
4322 5 6 7&
4737 2 5 8&
5648 4 6 8&
7187 1 5 9&
7793 6 7 8&
7938 3 6 9&
9587 5 7 9&
11312 2 6 10&
12657 4 7 10&
13058 7 8 9&
15392 6 8 10&
15938 1 6 11&
17123 3 7 11&
19362 5 8 11&
20657 8 9 10&
23153 2 7 12&
23603 7 9 11&
25088 4 8 12&
28593 6 9 12&
30963 1 7 13&
La segunda columna presenta las tres bases en progresión
aritmética.
Si ordenamos resulta el listado ordenado y sin repeticiones:
98, 353, 707, 962, 1568, 2177, 2658, 3107, 4322, 4737, 5648,
7187, 7793, 7938, 9587, 11312, 12657, 13058, 15392, 15938, 17123, 19362, 20657,
23153, 23603, 25088, 28593, 30963, 31202, 32738, 34832, 35747, 40962, 42528,
45233, 45377, 49712, 49763, 54722, 57153, 57267, 61250, 63938, 67667, 69152,
72113, 75792, 77922, 81473, 87713, 90083, 90368, 93602, 93827, 98787,...
Como
en los casos anteriores,disponemos de dos versiones en PARI:
w=List();for(n=3,100000,k=(n/3)^(1/4);for(a=2,k,for(c=1,a-1,v=(a-c)^4+a^4+(a+c)^4;if(v==n,listput(w,n)))));print1(vecsort(Vec(w),,8))
y
for(n=3,100000,k=(n/3)^(1/4);a=2;v=0;while(a<=k&&v==0,d=sqrt(sqrt(2*n+30*a^4)/2-3*a^2);if(d==truncate(d)&&d>=1&&d<=a-1,v=1;print1(n,",
"));a+=1))
Como curiosidad podemos destacar:
3923 = (56-28)4 + 564 + (56+28)4
Te invitamos a resolver el problema para potencias
superiores. Ya tienes encauzados los cálculos y algoritmos.
No hay comentarios:
Publicar un comentario