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:
- 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.
- Iniciamos una suma “por la izquierda”. Fijamos s1 = n. Definimos una variable p con el valor de n y un contador i=1
- Esa variable p descenderá hasta 1, añadiendo sumandos a s1
- 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.
- Si coinciden s1 y s2, ya hemos terminado
- 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:
Publicar un comentario