jueves, 30 de noviembre de 2017

Números piramidales de cuatro dimensiones


Si has seguido las entradas anteriores sobre números piramidales (escribe “piramidales” en la casilla de búsqueda) sabrás que estos números se generan mediante sumas parciales en una sucesión de dimensión inferior.



Así, los tetraedros se generan sumando números triangulares. Estos, a su vez, mediante números lineales. Las pirámides cuadradas se obtienen sumando cuadrados, y los de tipo poligonal sumando los de dos dimensiones del mismo número de lados.

Si sumamos números piramidales, obtendremos piramidales de cuatro dimensiones. Por ejemplo, los piramidales cuadrados son 1, 5, 14, 30, 55, 91, 140, 204,...


Formamos con ellos sumas parciales: 1, 1+5, 1+5+14, 1+5+14+30,… y obtenemos:

1, 6, 20, 50, 105, 196, 336, 540,…

Estos será, pues,  los piramidales cuadrados de cuatro dimensiones.

En esta entrada y las siguientes del mismo tema iremos recorriendo los piramidales de cuatro dimensiones según su número de lados. En todos ellos comenzaremos con sumas parciales en piramidales de tres dimensiones, obtendremos su fórmula polinomial y terminaremos con curiosidades y equivalencias. Comenzamos con triangulares:

Tetraedros de cuatro dimensiones

Estudiamos los tetraedros de tres dimensiones en nuestra entrada

En ella vimos que la sucesión de los mismos comienza con 

1, 4, 10, 20, 35, 56, 84, 120, 165, 220,…

Si procedemos a formar sumas parciales, obtendremos los tetraedros de cuatro dimensiones:

1, 1+4, 1+4+10, 1+4+10+20, 1+4+10+20+35,…. Es decir, 1, 5, 15, 35, 70, 126, 210,…

Los primeros términos de la sucesión de números de este tipo son:

1, 5, 15, 35, 70, 126, 210, 330, 495, 715, 1001, 1365, 1820, 2380, 3060, 3876, 4845, 5985, 7315, 8855,…, y están recogidos en http://oeis.org/A000332 con otra definición, coincidente, como veremos, salvo algunos ceros.

Los nombraremos como PIR3_4(n), donde 3 es el número de lados, 4 la dimensión y n el número de orden. Así 210=PIR3_4(7).

Obtención de la fórmula polinomial

Ya estudiamos este procedimiento en una entrada anterior


Consiste en usar la fórmula de interpolación de Newton aplicada a los primeros números. Remitimos a la entrada enlazada para seguir el procedimiento. En primer lugar escribimos los primeros términos 1, 5, 15, 35, 70,… y obtenemos sus diferencias sucesivas:



Observamos que son nulas las diferencias de orden 5, luego el polinomio que buscamos es de cuarto grado. Sus coeficientes los leemos más abajo:


Por tanto, el polinomio buscado será

1+4(x-1)+3(x-1)(x-2)+2(x-1)(x-2)(x-3)/3+(x-1)(x-2)(x-3)(x-4)/24

Podemos acudir a wxMaxima para simplificar:



O bien con la web https://www.wolframalpha.com, obtenemos el mismo polinomio:



Con el comando factor de wxMaxima factorizamos:

Esta es la fórmula más práctica para obtener los tetraedros de cuatro dimensiones, que, es fácil verlo, coincide con:


En toda esta serie nos aparecen números combinatorios, y es porque se pueden localizar los piramidales en el triángulo de Pascal



En la imagen están destacados los triangulares, los tetraedros de tres dimensiones y los de cuatro, que son suma de los anteriores.

Interpretaciones

Los tetraedros de cuatro dimensiones coinciden con las intersecciones de las diagonales de un polígono convexo, siempre que no concurran más de dos diagonales en el mismo punto. Por eso debemos elegir polígonos no regulares, como el de la figura



En él está representado el número 35, como las intersecciones (en color verde) en un heptágono. El 35 es el cuarto tetraedro de cuatro dimensiones, y le corresponde el polígono de tres lados más. Esto es por el n+3 que figura en la fórmula general.

He encontrado una explicación muy sencilla debida a Ignacio Larrosa @ilarrosac: Si el polígono es irregular, cada cuatro vértices formarán un cuadrilátero convexo distinto, y sus diagonales producen un único punto de intersección. Por tanto, el número de ellos coincidirá con el de combinaciones de n+3 lados tomados de 4 en 4. Muy elegante.

También se debe a Ignacio Larrosa la siguiente interpretación:

El número piramidal triangular de cuatro dimensiones de orden n coincide con todos los triángulos equiláteros que se pueden dibujar uniendo tres puntos de una matriz  que rellena otro triángulo equilátero de lado n+1.

En la figura puedes ver uno de esos triángulos.



La idea de Ignacio Larrosa consiste en que cada triángulo tiene sus vértices en los lados de otro mayor que sigue la orientación de la matriz triangular, y que basta contar estos últimos y también todos los triángulos de cualquier orientación que se inscriben en ellos.



En la imagen hemos destacado en azul el equilátero orientado que contiene al elegido en primer lugar. Nos dedicamos a contar:

Número de triángulos orientados de lado k

Es un problema muy estudiado. En la imagen, el número de triángulos similares al dibujado es 1+2=3. Si tuviera una celda menos de lado su número sería 1+2+3=6, y así hasta los de lado 1, cuyo número sería 1+2+3+4+5+6=21, todos números triangulares. En general, el número de triángulos orientados de lado k en una matriz de lado n sería T(n-k+1), siendo T el triangular de ese orden.

Número de triángulos contenidos en un orientado

Basta deslizar el primer vértice (por ejemplo el que cae a la izquierda) a lo largo de su lado, y los demás se situarán en un punto fijado sin ambigüedad. En el ejemplo se podrían inscribir cuatro.



Es fácil ver que, en general, se pueden inscribir k-1 triángulos.

Con estos dos datos se pueden contar todos los equiláteros posibles mediante una suma de productos. Para n=6, caso del ejemplo sería:

S=1*5+3*4+6*3+10*2+15*1=5+12+18+20+15=70, que es el piramidal de orden 5.

Para un estudio general puedes consultar

Recurrencia

Es fácil ver, según la fórmula general, que

PIR3_4(N)=PIR3_4(N-1)*(N+3)/(N-1)

En efecto:


Luego basta multiplicar por n+3 y dividir entre n-1 para pasar de uno a otro.
Por ejemplo: 70*9/5=14*9=126



lunes, 20 de noviembre de 2017

Sumandos en progresión aritmética (2)


En la anterior entrada de esta serie estudiamos los números que se pueden expresar como suma de tres números triangulares en progresión aritmética. En esta segunda buscaremos la misma propiedad con otros tipos de números.

Con cuadrados

El mismo planteamiento que con triangulares se puede seguir con cuadrados. Deseamos saber qué números son suma de cuadrados en progresión aritmética.

El mismo planteamiento inicial, cambiando la función estriangular por la de escuad nos dará los primeros términos, que resultan ser los siguientes, hasta 1000:

75, 300, 507, 675, 867, 1200, 1875, 2028, 2523, 2700, 3468, 3675, 4107, 4563, 4800, 5043, 6075, 7500, 7803, 8112, 8427, 9075,…

Por ejemplo, 675 es suma de tres cuadrados 675=3^2+15^2+21^2=9+225+441, con 441-225=225-9=216, por lo que están en progresión aritmética.

Es evidente que los números de esta sucesión son triple de cuadrados, por lo que constituyen una subsucesión de http://oeis.org/A033428

Como ocurría con los triangulares, si recordamos que los cuadrados se forman sumando impares, 1+3+5+7+9+…podíamos intentar ir sumando al cuadrado n^2 la diferencia 2n-1, que será simétrica de (n-1)^2, 2n-3, que llegará hasta (n-2)^2. Y así sucesivamente hasta llegar a diferencia 1. Como el número obtenido restando será cuadrado con seguridad, bastará analizar su simétrico en el cálculo. También, al igual que con los triangulares, se puede ir generando cuadrados simultáneamente. La rutina listasumprog de arriba quedaría ahora así:

Sub listasumprog()
Dim i, k, t, v, m
Dim e As Boolean

t = 4: k = 3 ‘primer cuadrado y primera diferencia 2n-1
While t < 5000
i = k: e = False: v = t + i ‘el valor de v es simétrico de un cuadrado, y ha de ser también cuadrado.
While i > 1 And Not e
If escuad(v) Then m = 3 * t: e = True: MsgBox (m) ‘si v es cuadrado, hay progresión aritmética
i = i – 2 ‘siguiente diferencia impar
v = v + i ‘incrementamos v
Wend
k = k + 2 ‘Estas dos líneas engendran los cuadrados centrales
t = t + k
Wend
End Sub

El resultado es:

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,

También esta sucesión estaba inédita, y la hemos publicado en https://oeis.org/A292313

Puedes reproducirlos con este código en lenguaje PARI:

t=4;k=3;while(t<=3000,i=k;e=0;v=t+i;while(i>1&&e==0,if(issquare(v),m=3*t;e=1;print1(m,", "));i+=-2;v+=i);k+=2;t+=k)

De igual forma se podría construir una función para detectar si un número es suma o no de cuadrados en progresión. Por no alargar lo dejamos como tarea de los lectores. Basta tomar la función essumaprog(n) de la entrada anterior sobre triangulares y sustituir estriangular por escuad.

Diferencias h y k

Si llamamos k a la diferencia del cuadrado central con el mayor de la terna y h a su diferencia con el menor (h será mayor que k), el hecho de ser progresión aritmética nos exige:

m^2-(m-h)^2=(m+k)^2-m^2

Simplificando:

2mh-h^2=2mk+k^2

Despejamos m:

m=(k^2+h^2)/(2(h-k)), con h>k

Por ejemplo, para el caso de 3m=75 tendríamos:

75=3*25; 1+25+49=75; 5=(4^2+2^2)/2/2=20/4=5

h y k deben ser ambos pares. Lo razonamos: m+k y m-h han de tener la misma paridad, pues su suma es 2m. Por tanto, h y k serán ambos pares o  ambos impares, lo que lleva a que h-k será par y contendrá el factor 2. Esto obliga a que h y k sean pares, pues en el denominador del cociente (k^2+h^2)/(2(h-k)) tendríamos dos factores 2, por lo que k^2+h^2 ha de ser múltiplo de 4, y si fueran ambos impares, sería múltiplo de 2, pero no de 4. Así que k y h son pares. Lo puedes comprobar con hoja de cálculo.

m es un número pitagórico, es decir m^2=u^2+v^2 para ciertos u,v

Como m-h y m+k tienen la misma paridad, los podemos interpretar como una suma y una diferencia, v-u y v+u, con lo que quedaría (v-u)^2 y (v+u)^2, siendo v=(m+k+m-h)/2 y u=(m+k-m+h)/2, o bien v=m+(k-h)/2 y u=(k+h)/2

Su promedio ha de ser m^2, luego:

((v-u)^2+(v+u)^2)/2=(2v^2+2u^2)/2=v^2+u^2=m^2

Hemos comprobado que m^2 es suma de dos cuadrados v^2+u^2.

Lo bueno de estas equivalencias es que son reversibles, por lo que todo número que sea suma de cuadrados distintos puede dar lugar a una progresión aritmética de cuadrados.

Lo vemos:

Propiedad directa: 1200 es suma de tres cuadrados en progresión aritmética:4^2+20^2+28^2, con lo que h=20-4=16 y k=28-20=8. Si definimos u=(28-4)/2=12 y v=(28+4)/2=16 tendremos que 16^2+12^2=256+144=400=1200/3=m^2, luego m es pitagórico.

Propiedad recíproca: Tomamos un número pitagórico, por ejemplo 29^2=20^2+21^2. En él u=20 v=21. Se tiene que u+v=41 y v-u=1, luego los cuadrados de 1, 29 y 41 debería formar progresión aritmética: 29^2-1^2=841-1=840 y 41^2-29^2=1681-841=840, luego coinciden las diferencias y es progresión aritmética.

Otros casos

Completamos la entrada con un breve repaso a otros casos.

Números oblongos

Está también inédita la sucesión de números que son suma de tres oblongos en progresión aritmética. Puedes buscarlos si sustituyes función estriangular por esoblongo, en la que se sustituye 8*n+1 por 4*n+1, o en el código PARI 8*v+1 por 4*v+1. Así:

t=2;k=2;while(t<=10^4,i=k;e=0;v=t+i;while(i>2&&e==0,if(issquare(4*v+1),m=3*t;e=1;print1(m,", "));i+=-2;v+=i);k+=2;t+=k)

Obtenemos la sucesión

126, 168, 216, 468, 918, 1026, 1140, 1260, 1518, 1950, 2106, 2268, 2790, 3168, 3996, 4218, 5418, 5676, 5940, 6210, 6768, 7056, 7650, 8268, 8910, 9240, 9576, 9918, 10266, 10620, 11346, 11718, 13668, 14076, 15336, 15768, 16650, 17556, 126, 168, 216, 468, 918, 1026, 1140, 1260, 1518, 1950, 2106,…

La hemos publicado en https://oeis.org/A292314

Es subsecuencia de http://oeis.org/A028896

Sus terceras partes se caracterizan por ser números oblongos equidistantes de otros dos oblongos. Los primeros son:

42, 56, 72, 156, 306, 342, 380, 420, 506, 650, 702, 756, 930, 1056, 1332, 1406, 1806, 1892,…

Vamos, por ejemplo el 342=18*19. Basta ir recorriendo oblongos menores y mayores que él para encontrar 132=11*12 y 552=23*24 tales que 552-342=210=342-132, con lo que formas progresión aritmética.

También estaban inéditos y los hemos publicado en https://oeis.org/A292316

Con semiprimos

Los primeros números que son suma de tres semiprimos en progresión aritmética son:

27, 30, 42, 45, 63, 66, 75, 78, 99, 102, 105, 114, 117, 138, 147, 153, 165, 171, 174, 186, 195, 207, …

Y sus terceras partes:

9, 10, 14, 15, 21, 22, 25, 26, 33, 34, 35, 38, 39, 46, 49, 51, 55, 57, 58

Lo curioso de estas sucesiones es que parecen estar en ellas todos los semiprimos mayores que 8. Esto se basa en un resultado de Meng. Probamos con un semiprimo cualquiera, como 721=7*103. Como en anteriores ocasiones, buscamos semiprimos cercanos, y encontramos 697=17*41 y 745=5*149, dos semiprimos tales que 745-721=721-697=24.

Con términos de la sucesión de Fibonacci

Ocurre como en el caso anterior, que todos los términos son media aritmética de otros dos, en concreto F(n)=(F(n-2)+F(n+1))/2, ya que F(n-2)+F(n+1)=F(n-2)+F(n-1)+F(n)=2F(n).

Esto convierte nuestra cuestión en algo trivial: todos los números de la forma 3*F(n) la cumplen.

jueves, 9 de noviembre de 2017

Sumandos en progresión aritmética (1)


En el transcurso de mis publicaciones en Twitter apenas he encontrado sumandos del mismo tipo en progresión aritmética que engendren números determinados (en mi caso, números de fechas en @Connumeros). Esto me ha animado a investigar el tema en el caso de tres sumandos.

Si un número coincide con una suma en progresión aritmética, el total de los tres sumandos ha de ser el triple del central, lo que puede facilitar la búsqueda, estudiando sólo aquellos números que sean triple de uno del tipo dado. Así, el 63, que es suma de tres triangulares en progresión aritmética, es el triple del triangular 21, y cumple 63=6+21+36, los tres triangulares con diferencia mutua 15.

Con números primos

Navegando por OEIS (http://oeis.org/) encontré el caso de números primos. Comenzaremos, pues, por este. Estos son los primeros con la propiedad dada:
15, 21, 33, 39, 51, 57, 69, 87, 93, 111, 123, 129, 141, 159, 177, 183, 201, 213, 219, 237, 249, 267, 291, 303,…

Están calificados como semiprimos, lo que es normal, por el razonamiento de los párrafos anteriores, ya que todos se descompondrán en el primo 3 multiplicado por otro primo. Así, 87=3*29, y es suma de 17+29+41, con 41-29=29-17=12
Si se dispone de la función “esprimo”, que determina si un número es primo o no, no es difícil encontrar estos números. La puedes copiar, por ejemplo, desde http://hojaynumeros.blogspot.com.es/2009/03/primos-reversibles-primo-omirp.html

Hemos creado una función que determina si un número es suma o no de tres primos en progresión aritmética. Es esta:

Public Function essumaprog(n)
Dim es As Boolean
Dim a, k

es = False
If n / 3 = n \ 3 Then  ‘Sólo sigue si es múltiplo de 3
a = n / 3
If esprimo(a) Then ‘Exige que el cociente n/3 sea primo
k=1
While k<a and not es ‘Va restando y sumando unidades hasta descubrir dos sumandos primos
If esprimo(a - k) And esprimo(a + k) Then es = True ‘Encontrados dos primos, luego vale
k=k+1
wend
End If
End If
essumaprog = es
End Function

Con ella es fácil buscar los números suma de primos en progresión aritmética:



Se ha conjeturado que todos los números triple de primos, a partir del 15, pertenecen a esta lista. Esta conjetura está relacionada con la de Goldbach. Con nuestra función podemos comprobar que todo semiprimo del tipo 3*p  con p>3 es suma de tres primos en progresión aritmética. Elegimos, por ejemplo 3*211=633. Le aplicamos la función y nos resulta VERDADERO, ya que 633=199+211+223, los tres primos y con 211-199=223-211=12

Para una mayor velocidad de cálculo se puede programar la búsqueda en el lenguaje PARI. Si lo conoces, puedes experimentar con este código:

for(n=1,200,if(n/3==n\3,a=n/3;if(isprime(a),e=0;k=1;while(k<a&&e==0,if(isprime(a-k)&&isprime(a+k),e=1;print1(n,", "));k+=1))))

En la imagen tienes el listado


Con triangulares

El caso de una suma de triangulares (tipo n(n+1)/2) en progresión aritmética se presta a alguna variante que nos será útil en otros cálculos próximos.
Para saber si un número es triangular, basta multiplicarlo por 8 y añadir una unidad. Si el resultado es cuadrado, el número es triangular.

La búsqueda de triangulares en progresión aritmética se puede abordar con dos funciones:

Public Function escuad(n) As Boolean
'Determina si n es un cuadrado
If n < 0 Then
escuad = False
Else
If n = Int(Sqr(n)) ^ 2 Then escuad = True Else escuad = False
End If
End Function

Function estriangular(n) As Boolean
Dim a
If escuad(8 * n + 1) Then estriangular = True Else estriangular = False
End Function

Con estas dos funciones, para saber si un número es suma de triangulares en progresión, lo dividimos entre 3, y si el resultado es triangular, seguimos el algoritmo. En ese caso vamos sumando y restando el mismo número, y si suma y resta son ambos triangulares, hemos descubierto la progresión aritmética. Este proceso se puede concretar en la siguiente función:


Public Function essumaprog(n) 'Con triangulares
Dim es As Boolean
Dim a, k

es = False
If n / 3 = n \ 3 Then ‘Se verifica que es múltiplo de 3
a = n / 3
If estriangular(a) Then ‘Si el cociente es triangular, se sigue
For k = 1 To a – 1 ‘Se suma y resta para buscar un par de triangulares
If estriangular(a - k) And estriangular(a + k) Then es = True ‘Si se encuentra, devuelve TRUE
Next k
End If
End If
essumaprog = es ‘Devuelve verdadero o falso
End Function

Con esta función se puede construir un bucle de búsqueda, que nos dará los primeros números con esa propiedad:


Podemos acudir a un planteamiento más rápido. Sabemos que los triangulares se forman sumando 1+2+3+4+…+n. Si a un número triangular de orden n le restamos n, la diferencia será también con seguridad triangular, con lo que sólo tenemos que comprobar que el número dado sumado con n también es triangular. Si no lo es, restamos ahora n-1 y volvemos a intentarlo, y así hasta llegar al 1. Por otra parte, en este proceso podemos ir generando los triangulares mediante 1+2+3+4+…, lo que acelera el cálculo. Quedaría así:

Sub listasumprog()
Dim i, k, t, v, m
Dim e As Boolean

t = 3 ‘Primer triangular
k = 2 ‘Primera diferencia
While t < 600
i = k ‘Recorrerá las diferencias de k hasta 1
e = False ‘Variable que recoge si hay solución o no
v = t + i ‘Sumamos la primera diferencia
While i > 1 And Not e
If estriangular(v) Then m = 3 * t: e = True: MsgBox (m) ‘Si es triangular, hemos terminado
i = i – 1 ‘Siguiente diferencia
v = v + i
Wend
k = k + 1 ‘Estas dos líneas generan nuevos triangulares
t = t + k
Wend
End Sub

Los primeros encontrados con este algoritmo son:

9, 63, 84, 108, 234, 315, 459, 513, 570, 630, 759, 975, 1053, 1134, 1395, 1584, 1998, 2109, 2709, 2838, 2970, 3105, 3384, 3528, 3825, 4134, 4455, 4620, 4788, 4959, 5133, 5310, 5673, 5859, 6834, 7038, 7668, 7884, 8325, 8778, 9009, 9243, 9480, 10209, 10710, 11223, 11484, 12285, 12558, 12834, 13113, 13968, 14259, 14553, 15453, 15759, 17334, 17985, 18315, 18984, 19665,

Esta sucesión estaba inédita, y la hemos publicado en https://oeis.org/A292309.

En PARI quedaría este código, algo más complicado de entender, aunque es un reto poder interpretarlo:

t=3;k=2;while(t<=600,i=k;e=0;v=t+i;while(i>0&&e==0,if(issquare(8*v+1),m=3*t;e=1;print1(m,", "));i+=-1;v+=i);k+=1;t+=k)

Estos números, dada su definición, pertenecerán a la sucesión  de números triples de triangulares,  http://oeis.org/A045943

Propiedad de Claudio Meller

Nuestro amigo Claudio Meller caracterizó estos números triple de triangulares mediante esta propiedad: Estos números son los menores que se pueden escribir como suma de n-1 números consecutivos y también como suma de n números consecutivos.

Es tan interesante que merece la pena demostrarla. Sea k el inicio de la suma de n consecutivos y h el inicio de la otra suma de n-1. Ambas sumas son iguales, y podemos plantear:

k+k+1+k+2+…k+n-1=h+h+1+h+2+…h+n-2
kn+n(n-1)/2=h(n-1)+(n-1)(n-2)/2
h(n-1)-kn=(n-1)/2(n-n+2)=n-1
h-kn/(n-1)=1

k ha de ser, pues, múltiplo de n-1, y si es el mínimo, valdrá n-1 y h es n+1. Así queda:

n(n-1)+n(n-1)/2=(n+1)(n-1)+(n-1)(n-2)/2
(n-1)(n+n/2)=3n(n-1)/2
(n-1)(n+1+(n-2)/2)=(n-1)(2n+2+n-2)/2=3n(n-1)/2

Con esto queda demostrada.

Por ejemplo, en el 63, n=7, k=6, h=8, y resulta:
6+7+8+9+10+11+12=63
8+9+10+11+12+13=63

Propiedad de Ivan Hurt

También esta es interesante: El triple del triangular de orden n es suma de los números comprendidos entre n y 2n.

Es fácil de comprobar: n+n+1+n+2+…+n+n=n*(n+1)+n(n-1)/2=n(n+1+(n-1)/2)=n(3n-2-1)/2=3n(n-1)/2

Terceras partes

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,…

Las terceras partes de los números que estamos estudiando no han sido publicadas, por lo que las hemos incorporado a https://oeis.org/A292310.

Los podemos definir como números triangulares que son equidistantes de otros dos triangulares. Así 666 es el triangular número 36, y es promedio entre 6, triangular tercero, y 1326, que es número 51.