lunes, 15 de junio de 2020

Sumas consecutivas de elementos consecutivos


De nuevo una entrada de este blog se basa en una propiedad publicada por mí en Twitter (día 7/4/2020)

Iniciamos los cálculos del día 7 con dos sumas de oblongos consecutivos en las que ellas también son consecutivas:

7420=29×30+30×31+31×32+32×33+33×34+34×35+35×36
7420=36×37+37×38+38×39+39×40+40×41

Es muy curiosa esta propiedad, que una suma comience cuando termina otra y que ambas presenten el mismo resultado.

Emprenderemos una búsqueda de sumas que compartan esta propiedad, pero a efectos del algoritmo correspondiente, es preferible dar protagonismo al elemento que separa una suma de otra, en el caso del ejemplo, 35×36. Se puede también basar el cálculo en 36×37, pero había que elegir.

Estructura general el algoritmo

Se puede proponer la siguiente estructura de algoritmo, que servirá, no solo para oblongos, sino para otros tipos de números, como cuadrados o triangulares. Los pasos podrán ser:

  1. Se construye una función para un valor de n que tenga la misma naturaleza que los sumandos. Si no lo es, salimos de la función. En el ejemplo n=35×36. Como es oblongo, seguimos. Si no lo fuera, la función devolvería un valor de error.
  2. Iniciamos una suma “por la izquierda”. Fijamos s1 = n. Definimos una variable p con el valor de n y un contador i=1
  3. Esa variable p descenderá hasta 1, añadiendo sumandos a  s1
  4. Para cada valor de p y s1 construimos otra suma s2 “por la derecha”, a partir de p+1 sin sobrepasar el valor de i.
  5. Si coinciden s1 y s2, ya hemos terminado
  6. Si nunca coinciden, devuelve un “NO”

Lo entenderás mejor con el listado de la función para enteros.

Propiedad para enteros

Buscaremos, en primer lugar, aquellas sumas de este tipo formadas por enteros. Por ejemplo, el número 8 es centro de dos sumas consecutivas:

4+5+6+7+8=30=9+10+11

En este ejemplo, i=4, porque hay que tomar 4 sumandos a la izquierda del 8, y j=2, porque se toman 2 a partir de 8+1=9. Se puede cambiar este conteo si se desea. Aquí, s1=s2=30.

La función que resuelve esto puede ser:

Function igualsuma(n) 'con enteros
Dim i, j, p, p1, q, s1, s2
Dim a$

a = ""
s1 = n: p = n: p1 = p: i = 1
While p > 1 ‘i llega hasta 1 como máximo
p = p - 1
s1 = s1 + p ‘Construimos s1
q = p1: s2 = 0: j = 0
While j < i ‘j no sobrepasa a i, porque ha de ser menor
q = q + 1
s2 = s2 + q ‘Construimos s2
If s1 = s2 Then a = a + "&&" + Str$(n) + "//" + Str$(i) + ", " + Str$(j) + "  S1 " + Str$(s1) + "  S2 " + Str$(s2)
j = j + 1
Wend
i = i + 1
Wend
If a = "" Then a = "NO"
igualsuma = a
End Function

Si emprendemos una búsqueda obtendremos los primeros números que son centro de dos sumas iguales. Algunos, como el 12, presentan dos coincidencias distintas en las sumas:

2            && 2// 1,  0  S1  3  S2  3                              
6            && 6// 2,  1  S1  15  S2  15                                         
7            && 7// 5,  2  S1  27  S2  27                                         
8            && 8// 4,  2  S1  30  S2  30                                         
12          && 12// 3,  2  S1  42  S2  42&& 12// 9,  4  S1  75  S2  75                                 
14          && 14// 13,  5  S1  105  S2  105                                
17          && 17// 13,  6  S1  147  S2  147                                
18          && 18// 6,  4  S1  105  S2  105                                  
19          && 19// 8,  5  S1  135  S2  135                                  
20          && 20// 4,  3  S1  90  S2  90                                      
22          && 22// 17,  8  S1  243  S2  243                                
25          && 25// 14,  8  S1  270  S2  270                                
26          && 26// 17,  9  S1  315  S2  315                                
27          && 27// 21,  10  S1  363  S2  363                             
30          && 30// 5,  4  S1  165  S2  165                                  
                                           

Estos resultados se pueden interpretar de la siguiente forma, que vemos con el ejemplo del 18:

18          && 18// 6,  4  S1  105  S2  105

En primer lugar leemos el centro o pivote de las sumas, en este caso, && 18//. Los siguientes números 6 y 4 son respectivamente los sumandos tomados a la izquierda del 18 y los tomados a la derecha a partir del 19, incluyendo este (serían 7 y 5 en total). Estas serían las dos sumas consecutivas:

12+13+14+15+16+17+18=105, que es el valor s1 que devuelve la función
19+20+21+22+23=105, que es el valor devuelto como s2, coincidente con s1.

Observamos que existen muchos números que cumplen esta propiedad, y que incluso se forman grupos de consecutivos. Es normal, por ser números enteros que presentan diferencias pequeñas en sus sumas. Aparecerán menos con otros tipos de números.

Números oblongos

Este fue el caso que publiqué en Twitter. Podemos usar el mismo esquema para enteros, con las siguientes diferencias.

(1) Si el número no es oblongo, salimos de la función con un “NO”
Para saber si un número O es oblongo, hay que recordar que será el doble de un triangular T, y que estos se caracterizan porque 8T+1 es un cuadrado. Así que en los oblongos O será cuadrado 4O+1. Aquí tienes una implementación para Excel y Calc:

Public Function esoblongo(n) As Boolean
If escuad(4 * n + 1) Then esoblongo = True Else esoblongo = False
End Function

(2) Las sumas del listado de arriba, s1=s1+p y s2=s2+q se cambiarán a s1=s1+p*(p+1) y s2=s2+q*(q+1), para que cada sumando sea oblongo.

Con estos cambios, y quizás algún otro menor, obtendremos el listado de los primeros números equivalentes a dos sumas de oblongos consecutivos, que a su vez son consecutivas:

12          && 12// 2,  0  S1  20  S2  20         
72          && 72// 3,  1  S1  200  S2  200    
240        && 240// 4,  2  S1  920  S2  920  
600        && 600// 5,  3  S1  2920  S2  2920            
1260      && 1260// 6,  4  S1  7420  S2  7420          
2352      && 2352// 7,  5  S1  16240  S2  16240      
4032      && 4032// 8,  6  S1  31920  S2  31920      
4692      && 4692// 33,  15  S1  95200  S2  95200 
5852      && 5852// 69,  19  S1  152040  S2  152040           
6480      && 6480// 9,  7  S1  57840  S2  57840      
9900      && 9900// 10,  8  S1  98340  S2  98340   
10100    && 10100// 77,  25  S1  339352  S2  339352         
14520    && 14520// 11,  9  S1  158840  S2  158840           
17030    && 17030// 86,  32  S1  720940  S2  720940         
20592    && 20592// 12,  10  S1  245960  S2  245960         
28392    && 28392// 13,  11  S1  367640  S2  367640         

Podemos observar en la quinta fila el caso que publiqué:

1260      && 1260// 6,  4  S1  7420  S2  7420

A partir de 1260=35*36, oblongo por tanto, se toman 6 sumandos más a la izquierda y 4 más a la derecha de 36*37, reproduciéndose así lo que se publicó en su día.

Con primos

Ya está publicado en http://oeis.org/A089930

A089930 Primes p such that there exists a set of consecutive primes ending with p which has the same sum as a set starting right after p.                           

3, 13, 47, 73, 83, 269, 349, 359, 487, 569, 569, 787, 859, 929, 941, 1171, 1237, 1297, 1307, 1429, 1549, 1553, 1607, 1877, 2011, 2083, 2111, 2113, 2389, 2399, 2557, 2579, 2633, 2659, 2677, 2749, 2777, 2837, 2969, 3001, 3019, 3019, 3067, 3119, 3169, 3203,…

Nos hemos limitado a adaptar el algoritmo inicial al caso de primos. Los resultados concuerdan con los publicados:

3             && 3// 1,  0  S1  5  S2  5&& 3// 2,  0  S1  5  S2  5
13          && 13// 3,  1  S1  36  S2  36
47          && 47// 10,  4  S1  311  S2  311
73          && 73// 9,  5  S1  552  S2  552
83          && 83// 17,  7  S1  846  S2  846
269        && 269// 36,  18  S1  6231  S2  6231
349        && 349// 56,  24  S1  10649  S2  10649
359        && 359// 61,  25  S1  11470  S2  11470
487        && 487// 63,  31  S1  19066  S2  19066
569        && 569// 13,  11  S1  7256  S2  7256&& 569// 71,  35  S1  24518  S2  24518

En cada suma se añaden o los primos anteriores o los posteriores a cada sumando. Observamos, por ejemplo, que 569 equivale a dos casos distintos. Desarrollamos el primero:

&& 569// 13,  11  S1  7256  S2  7256

Deberemos tomar 13 primos anteriores a 569 y consecutivos con él, incluyéndolo en la suma. Después, 11 primos siguientes a 569, también incluyendo ese siguiente. Lo comprobamos:

Decreciente: 

569+563+557+547+541+523+521+509+503+499+491+487+479+467=7256
Creciente: 571+577+587+593+599+601+607+613+617+619+631+641=7256

El segundo caso supone sumas de muchos sumandos, y lo dejamos sin comprobar.

Con triangulares y cuadrados

Como el tema ya está bastante estudiado con los ejemplos anteriores, solo añadiremos los primeros números que cumplen la propiedad para números triangulares y para los cuadrados.

6             && 6// 2,  0  S1  10  S2  10                                         
36          && 36// 3,  1  S1  100  S2  100                                  
120        && 120// 4,  2  S1  460  S2  460                                
300        && 300// 5,  3  S1  1460  S2  1460                                          
630        && 630// 6,  4  S1  3710  S2  3710                                          
1176      && 1176// 7,  5  S1  8120  S2  8120                                        
2016      && 2016// 8,  6  S1  15960  S2  15960                                   
2346      && 2346// 33,  15  S1  47600  S2  47600                               
2926      && 2926// 69,  19  S1  76020  S2  76020                               
3240      && 3240// 9,  7  S1  28920  S2  28920                                   
4950      && 4950// 10,  8  S1  49170  S2  49170                                 
5050      && 5050// 77,  25  S1  169676  S2  169676                                         
7260      && 7260// 11,  9  S1  79420  S2  79420                                 
8515      && 8515// 86,  32  S1  360470  S2  360470                                         

Por ejemplo, 1460 equivale a estas dos sumas de triangulares:

1460=190+210+231+253+276+300
1460=325+351+378+406

Todos los triangulares de estas dos sumas son consecutivos, desde 190=19*20/2, hasta 406 =28*29/2

Cuadrados

Los primeros casos son:

16          && 16// 1,  0  S1  25  S2  25         
144        && 144// 2,  1  S1  365  S2  365  
576        && 576// 3,  2  S1  2030  S2  2030            
1156      && 1156// 16,  7  S1  11900  S2  11900   
1444      && 1444// 34,  9  S1  19005  S2  19005   
1600      && 1600// 4,  3  S1  7230  S2  7230          
2500      && 2500// 38,  12  S1  42419  S2  42419 
3600      && 3600// 5,  4  S1  19855  S2  19855      
7056      && 7056// 6,  5  S1  45955  S2  45955      
12100    && 12100// 50,  24  S1  379525  S2  379525         
12544    && 12544// 7,  6  S1  94220  S2  94220   
20164    && 20164// 126,  36  S1  963295  S2  963295       
20736    && 20736// 8,  7  S1  176460  S2  176460              
25281    && 25281// 92,  38  S1  1254539  S2  1254539     
32400    && 32400// 9,  8  S1  308085  S2  308085              
48400    && 48400// 10,  9  S1  508585  S2  508585           
69696    && 69696// 11,  10  S1  802010  S2  802010         
97344    && 97344// 12,  11  S1  1217450  S2  1217450     

Un ejemplo sencillo es el de 1600 como separador de las dos sumas:
1600=40^2, y se tiene:

36^2+37^2+38^2+39^2+40^2=7230
41^2+42^2+43^2+44^2=7230

Ambas sumas coinciden, luego se cumple la propiedad pedida.

Con estos ejemplos vemos que la propiedad es exigente, y pocos números la cumplen, pero yo esperaba que aparecieran menos.


No hay comentarios: