lunes, 11 de octubre de 2021

Detección de progresiones aritméticas

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)))

 Si lo ejecutas en https://pari.math.u-bordeaux.fr/gp.html, te devolverá los términos primos centrales:

 

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:

   #  1  25  49

 #  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

 Vemos que el 625 es centro de dos ternas distintas. Comprueba que todas las ternas presentan una progresión aritmética.

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:

 


 Equivalencia entre dos sumas de impares

 Si recordamos que un cuadrado es una suma de los primeros impares, la diferencia entre dos de ellos también será una suma, aunque no comenzará con el 1. Entonces, las ternas que estamos investigando se traducirán en equivalencia entre dos sumas de impares consecutivos. Así, la terna 1, 25, 49 se puede representar como

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

 Aquí figuran las ternas que admiten los primeros semiprimos:

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: