Es bastante frecuente que tres elementos de una misma sucesión o del mismo tipo presenten una progresión aritmética, es decir, que tengan la forma (n-k, n, n+k). Un ejemplo de esto son las ternas de números primos en progresión:
3 5 7
3 7 11
5 11 17
7 13 19
11 17 23
7 19 31
17 23 29
17 29 41
19 31 43
31 37 43
29 41 53
En mis sucesiones http://oeis.org/A292313, http://oeis.org/A292309,
http://oeis.org/A292314
y otras se hace referencia a este tipo de ternas, que son admitidas por casi
todos los tipos de números más populares.
La detección de estas ternas no ofrece problemas de diseño de un algoritmo. Si fijamos la atención en el término central n, es claro que n-k pertenecerá al rango (1, n-1). Por tanto, bastará recorrerlo y, para cada número del mismo tipo que n, buscar si n+k también coincide con ellos en la misma característica o propiedad, que en el caso anterior era la de ser primos.
Las ternas anteriores de primos se pueden detectar con la siguiente función de Excel y Calc:
function hayprog$(n) ‘Devuelve un string con la terna, o bien una cadena vacía
dim i,k
dim s$
if not esprimo(n) then hayprog="":exit
function ‘Si el número no es primo, salimos.
s=""
k=0
for i=1 to n-1 ‘La variable i recorre
el rango (1,n)
if esprimo(i) then ‘Si es primo, seguimos
k=n-i ‘Si n+k también es primo, hemos llegado
a una terna
if esprimo(n+k) then s=s+” # “+str$(n-k)+"
"+str$(n)+" "+str$(n+k)
end if
next i
hayprog=s
end function
Con PARI se puede usar este mismo algoritmo. Al ser un lenguaje más orientado a números, usaremos como respuesta de la función ESPROG el término central.
esprog(n)={my(s=0,k=0,i);if(isprime(n),for(i=1,n-1,if(isprime(i),k=n-i;if(isprime(n+k),s=1))));s}
for(i=1,100,if(esprog(i),print(i)))
El uso del bucle FOR-NEXT se justifica porque, en otros casos que veremos más adelante, pueden existir dos soluciones. Si no, usaríamos WHILE, que se puede detener antes.
Ternas de
cuadrados
Las ideas anteriores las podemos aplicar a muchos tipos de números. Comenzamos por los cuadrados. Para ello, sustituimos la función ESPRIMO por ESCUAD en Excel y Calc, y en PARI, isprime por issquare. Puedes buscar la función ESCUAD en este mismo blog. El resultado sería el siguiente:
# 4
100 196
# 49
169 289
# 9
225 441
# 49
289 529
# 16
400 784
# 25
625 1225 # 289 625 961
# 196
676 1156
# 1
841 1681
# 36
900 1764
# 196
1156 2116
# 49
1225 2401
# 529
1369 2209
# 441
1521 2601
# 64
1600 3136
# 961
1681 2401
Los términos centrales están publicados en OEIS:
A198385 Second of a triple of squares in arithmetic progression.
25, 100, 169, 225, 289, 400, 625, 676, 625, 841, 900,
1156, 1369, 1225, 1681, 1521, 1600, 2500, 2025, 2704, 2601, 2500, 3721, 2809,
3025, 4225, 3364, 3600, 4225, 4225, 4225, 4624, 5625, 5476, 7225, 4900, 6724,
6084, 5329, 5625, 6400, 7225, 7225, 7225, 7921
Las primeras diferencias de estas progresiones son: 24, 96, 120, 216, 240, 384, 336, 480, 840, 864, 960, 1176 y 840, y todas son múltiplos de 24.
Las sumas de los tres componentes de la terna las publiqué en http://oeis.org/A292313. Coinciden, como es evidente con el triple del término central.
A292313 Numbers that are the sum of three squares in arithmetic progression.
75, 300, 507, 675, 867, 1200, 1875, 2028, 2523, 2700, 3468, 3675, 4107, 4563, 4800, 5043, 6075, 7500, 7803, 8112, 8427, 9075, 10092, 10800, 11163, 12675, 13872, 14700, 15987, 16428, 16875, 18252, 19200, 20172, 21675, 22707, 23763, 24300, 24843, 27075, 28227, 30000, 30603
Relación entre bases
Una búsqueda se debe enriquecer siempre con ideas teóricas o algebraicas. En este caso, no es difícil relacionar las bases.
Podemos representar la terna como (n-r)², n² y (n+s)². Con ello, la igualdad de diferencias será:
n²-(n-r)²=(n+s)²-n²
Simplificando:
s²+2ns+r²-2nr=0
Es una ecuación de segundo grado en la variable s en la que el discriminante es n²-r²+2nr y ha de ser cuadrado. Esto nos da una posibilidad de crear otra función en la que los resultados sean las bases de los cuadrados. Puede ser esta:
function hayprog2$(n)
dim i,k,q
dim s$
s=""
k=0
for i=1 to n-1
q=n^2-i^2+2*n*i ‘Se exige que el discriminante
sea cuadrado
if escuad(q) then
k=sqr(q)-n ‘Las diferencias serán i y k
s=s+” # “+str$(n-i)+" "+str$(n)+"
"+str$(n+k)
end if
next i
hayprog2=s
end function
Efectivamente, los números que producen resultados válidos en esta función son las raíces cuadradas de los que obtuvimos más arriba,
# 1 5 7
# 2
10 14
# 7
13 17
# 3
15 21
# 7
17 23
# 4
20 28
# 17
25 31 # 5 25 35
# 14
26 34
# 1
29 41
# 6
30 42
# 14
34 46
# 7
35 49
# 23
37 47
# 21
39 51
# 8
40 56
Protagonismo para las diferencias
Podemos despejar n en la expresión s²+2ns+r²-2nr=0:
n=(s²+r²)/(2(r-s))
Si n es entero, el par r, s será válido para cumplir la condición de progresión. Este punto de vista ha resultado muy eficaz, porque para cada valor de r (que será par por ser igual a una diferencia de cuadrados y mayor que s) se obtienen varios valores posibles de n. Son los mismos términos centrales en las ternas de bases, pero agrupados por conjuntos. Hemos usado la función:
function hayprog3$(n)
dim i,q
dim s$
s=""
for i=1 to n-1
q=(n^2+i^2)/(2*(n-i)) ‘La variable q
representa la base central
if q=int(q) then s=s+" "+str$(q) ‘Se
añaden todas las soluciones para una diferencia dada
next i
hayprog3=s
end function
Si se organiza una búsqueda con esta función, obtendremos los valores de la base central para cada diferencia:
3+5+7+9=11+13
Ternas de triangulares en progresión
Si sustituimos la función ESCUAD por ESTRIANGULAR (está publicada en el blog, y basta exigir que 8n+1 sea cuadrado), obtendremos ternas del mismo tipo, pero para triangulares. Aquí tenemos una pequeña dificultad si consultamos OEIS, y es que se considera el 0 como triangular, siguiendo la política de esa página. Así, en el siguiente listado publicado, no entrarían, por ejemplo, 3 y 105 si no admitiéramos 0 como triangular. En los cuadrados no existe ese problema, porque uno de ellos no puede ser el doble de otro, pero en los triangulares sí (ver http://oeis.org/A075528).
3 # 0 3 6
21 # 6
21 36
28 # 1
28 55
36 # 6
36 66
78 # 3
78 153 # 36
78 120
105 # 0
105 210
153 # 6
153 300
171 # 66
171 276
190 # 55
190 325
210 # 120
210 300
253 # 10
253 496
325 # 55
325 595
351 # 36
351 666
378 # 15
378 741
A292310
Triangular numbers that are equidistant from two other
triangular numbers.
3, 21, 28, 36, 78, 105, 153, 171, 190, 210, 253, 325, 351, 378, 465, 528, 666, 703, 903, 946, 990, 1035, 1128, 1176, 1275, 1378, 1485, 1540, 1596, 1653, 1711, 1770, 1891, 1953, 2278, 2346, 2556, 2628, 2775, 2926, 3003, 3081, 3160, 3403, 3570, 3741, 3828, 4095, 4186, 4278, 4371, 4656
Relación entre órdenes
Repitiendo los pasos de los cuadrados, tendremos:
(n+s)(n+s+1)+(n-r)(n-r+1)=2n(n+1)
ns+n+ns+s²+s-rn+n-rn+r²-r=2n
2ns+s²+s-2rn+r²-r=0
s²+(2n+1)s-(2n+1)r+r²=0
El discriminante para s en esa ecuación será
(2n+1)²+4(2n+1)r-4r²
Si es un cuadrado se tendrá:
q²=(2n+1+2r)²-8r²
s=(q-2n-1)/2
Por tanto, en hayprog2 habrá que introducir este nuevo discriminante:
function hayprog2$(n)
dim i,k,q
dim s$
s=""
k=0
for i=0 to n-1
q=(2*n+1+2*i)^2-8*i^2
if escuad(q) then
k=(sqr(q)-2*n-1)/2
if k>0 then s=s+" # "+str$(n-i)+"
"+str$(n)+" "+str$(n+k)
end if
next i
hayprog2=s
end function
El resultado de los primeros órdenes de los triángulos es:
6 # 3 6 8
7 # 1
7 10
8 # 3
8 11
12 # 8
12 15 # 2
12 17
17 # 3 17 24
18 # 11
18 23
19 # 10
19 25
20 # 15
20 24
22 # 4
22 31
25 # 10
25 34
26 # 8
26 36
27 # 5
27 38
30 # 24
30 35
32 # 23
32 39 # 17
32 42 # 11
32 44 # 6
32 45
36 # 3
36 51
Aparecen varios casos múltiples para un mismo orden central. Sin tenerlos en cuenta, con ellos se reconstruyen las ternas de más arriba:
Equivalencia entre sumas de consecutivos
Al igual que nos ocurrió con los cuadrados, al ser los triangulares suma de números consecutivos, cada progresión aritmética de triangulares se traducirá en una equivalencia de sumas de ese tipo. Por ejemplo, la terna 6, 36, 66 se traduce en 4+5+6+7+8=9+10+11, ya que ambos suman 30, que es la diferencia.
Ternas de oblongos
Cada terna de triangulares se convierte en otra de oblongos, ya que estos son el doble de los primeros. Cada triangular n(n+1)/2 dará lugar al oblongo n(n+1). No tiene mayor interés.
Semiprimos
Todos los semiprimos, salvo 4 y 6, pueden ser términos centrales en ternas de semiprimos en progresión aritmética. Hay estudios sobre esto en Xianmeng Meng, On sums of three integers with a fixed number of prime factors https://www.sciencedirect.com/science/article/pii/S0022314X0500106X?via%3Dihub
9 1 : # 4, 9, 14
10 1 :
# 6, 10, 14
14 1 :
# 6, 14, 22
15 2 :
# 4, 15,
26 # 9,
15, 21
21 2 :
# 4, 21,
38 # 9,
21, 33
22 3 :
# 6, 22,
38 # 9,
22, 35 #
10, 22, 34
25 2 :
# 4, 25,
46 # 15,
25, 35
26 2 :
# 6, 26,
46 # 14,
26, 38
33 3 :
# 4, 33,
62 # 9, 33, 57
# 15, 33, 51
34 4 :
# 6, 34,
62 # 10,
34, 58 #
22, 34, 46
# 33, 34, 35
35 2 :
# 15, 35,
55 # 21,
35, 49
38 3 :
# 14, 38,
62 # 21,
38, 55 #
25, 38, 51
39 3 :
# 4, 39,
74 # 9,
39, 69 #
21, 39, 57
46 5 :
# 6, 46,
86 # 10,
46, 82 #
15, 46, 77
# 34, 46,
58 # 35,
46, 57
49 3 :
# 4, 49,
94 # 21,
49, 77 #
33, 49, 65
Vemos que faltan 4 y 6, y que el resto admite una o más
ternas de las pedidas. Por ejemplo, 46 admite 5 soluciones.
Podemos modificar las funciones para que solo nos ofrezcan el número de soluciones. Si exigimos dos, además del 4 y 6, hay otros semiprimos que no admiten soluciones dobles. En el listado se identifican 9, 10 y 14, y no hemos encontrado más. Los siguientes admiten al menos dos soluciones.
Si exigimos que al menos presenten tres soluciones, las excepciones se extienden a esta lista:
4, 6, 9, 10, 14, 15, 21, 25, 26, 35 y 57
Para cuatro sigue el tope de 57 (sólo hemos investigado hasta el 500), pero se incorporan 22, 33, 38, 39, y 49. Con exigencia de cinco llegaríamos a 87. Lo dejamos ahí sin formular ninguna conjetura. El autor, a punto de cumplir 80 años, no se ve con ánimo para estudiar documentos como el reseñado de Meng.
Con estas consideraciones, se pueden emprender otras búsquedas, que dejamos a quienes nos siguen.
No hay comentarios:
Publicar un comentario