lunes, 24 de mayo de 2021

Una curiosidad no buscada

En el mes de marzo, mientras estudiaba los cálculos que publico en Twitter (@connumeros), descubrí esta curiosidad, y es que unos números consecutivos o cercanos presentaban divisores con una estructura muy similar. Estos eran:

13322 es múltiplo de 6661, pues 13322=2*6661

13323, lo es de 4441, ya que 13323=3*4441

13324, de 3331, pues se cumple 13324=4*3331

Por último, 13326 lo es de 2221: 13326=6*2221

Parece que la clave la tiene el número 13332=2*6666=3*4444=4*3333=6*2222. Si en estos cuatro productos convertimos la última cifra en un 1, resultan los números de arriba:

2*(6666-5)=2*6661=13322=13332-10

3*(4444-3)=3*4441=13323=13332-9

4*(3333-2)=4*3331=13324=13332-8

6*(2222-1)=6*2221=13326=13332-6

El que las diferencias sean 10, 9, 8 y 6 produce que tres productos sean consecutivos y el último alterno: 13322, 13323, 13324 y 13326.

Esta sería la explicación sencilla para esta curiosidad, y también funciona con 1322, 1323, 1324 y 1326, ya que 1322 es múltiplo de 661 y los siguientes de 441, 331 y 221 respectivamente. Evidentemente, también sería esto de aplicación a los números 133322 y siguientes con la misma estructura.

¿Habrá más casos similares a este? Organizaremos una búsqueda.

 

Primer paso: divisores adecuados

Por concretar el problema, admitiremos como divisores adecuados aquellos del tipo 221, 331, 441,…2221, 3331, 4441,…22221, 33331, 44441,…Es decir, que las primeras cifras sean todas iguales y distintas de 1, mientras que la última ha de valer 1. Desechamos, pues los repidígitos 11111… y también 21, 31, 41,…porque en estos últimos no de da repetición.

Para saber si un número es divisor adecuado podemos usar el conjunto de cifras convirtiendo el número en un string, o bien usar los restos módulo 10^k. Optamos por este segundo método. Esta sería la función para detectar este tipo de divisores en VBASIC de Excel:

Function esrepe1(n)

Dim i, c, f, g

Dim es As Boolean

n < 221 Then esrepe1 = False: Exit Function ‘Se estudian los superiores a 221

c = Int(Log(n) / Log(10) + 1) ‘Cálculo del número de cifras

es = True ‘Se supone que sí es adecuado

f = (n Mod 100) \ 10 ‘Calcula la segunda cifra, que no debe valer 1

g=n Mod 10 ‘Calcula la primera cifra, que ha de valer 1

If f = 1 or g<>1 Then esrepe1 = False: Exit Function ‘No es adecuado

i = 2 ‘Se recorre el resto de cifras

While i <= c And es = True

If f <> (n Mod 10 ^ i) \ 10 ^ (i - 1) Then es = False ‘Si una cifra es diferente, no es adecuado

i = i + 1

Wend

esrepe1 = es

End Function

 

Con esta función encontramos algo que ya sabíamos, que estos son los primeros divisores adecuados:

221, 331, 441, 551, 661, 771, 881, 991, 2221, 3331, 4441, 5551, 6661, 7771, 8881, 9991, 22221, 33331, 44441,…

Aunque los conozcamos nosotros, debe poderlos identificar también la hoja de cálculo.

En el lenguaje PARI construimos la función en tres pasos:

digit(a, q)=(a%10^q)\10^(q-1)

numdigit(n)=truncate(log(n)/log(10))+1 )

isrep1(n)={my(c=numdigit(n),e=0,f,i);if(n>=221&&digit(n,1)==1,f=digit(n,2);if(f<>1,e=1;i=2;while(i<=c&&e==1,if(f<>digit(n,i),e=0);i+=1)));e}

La función digit extrae una cifra del número, numdigit calcula el número de cifras y isrep1 determina si es adecuado.

 Si le añadimos un bucle de búsqueda, obtendremos el mismo listado.

 

Segundo paso: Múltiplos de esos divisores

Un segundo paso consistirá en descubrir candidatos a la propiedad buscada entre los múltiplos de los divisores adecuados.

Usaremos esta función de Excel y más adelante otra de PARI. En las búsquedas es bueno disponer de dos métodos para comprobar que resultan las mismas soluciones.

En Excel

Function multirepe(n) ‘Determina si n posee un divisor adecuado.

Dim i, r

Dim es

 If esrepe1(n) Then multirepe = True: Exit Function ‘Si es adecuado, ya hemos terminado.

es = False ‘Comenzamos suponiendo que no lo es

i = 221 ‘Inicio de búsqueda de divisores

While i <= n And Not es

If esrepe1(i) Then

If n / i = n \ i Then es = True ‘Si es un divisor y además adecuado, será válido

End If

i = i + 1

Wend

multirepe = es

End Function

 

Obtenemos este listado de posibles inicios de conjuntos con la propiedad pedida

221, 331, 441, 442, 551, 661, 662, 663, 771, 881, 882, 884, 991, 993, 1102, 1105, 1322, 1323, 1324, 1326, 1542, 1547, 1653, 1655, 1762, 1764, 1768, 1982, 1983, 1986, 1989, 2204, 2205, 2210, 2221, 2313, 2317, 2431, 2643, 2644, 2646, 2648, 2652, 2755, 2873, 2973, 2979,…

En PARI

Con PARI podemos usar esta definición de cuatro filas:

digit(a, q)=(a%10^q)\10^(q-1)

numdigit(n)=truncate(log(n)/log(10))+1

isrep1(n)={my(c=numdigit(n),e=0,f,i);if(n>=221&&digit(n,1)==1,f=digit(n,2);if(f<>1,e=1;i=2;while(i<=c&&e==1,if(f<>digit(n,i),e=0);i+=1)));e}

multirep(n)={my(s=0,i=1);while(i<=n&&s==0,if(n/i==n\i&&isrep1(i),s=1);i+=1);s}

 Este es el resultado en la web de PARI:


En estos listados ya se percibe que 661, 662 y 663 cumplen lo exigido, pero no 665. Más adelante figuran 1322, 1323, 1324 y 1326 que sí lo cumplen. Esto refuerza nuestra confianza en los métodos de búsqueda.

Ahora sólo nos queda, y será una búsqueda lenta, encontrar conjuntos de cuatro números, los tres primeros consecutivos y el cuarto alterno, que sean múltiplos de los divisores adecuados. Nos costará bastantes minutos en un ordenador personal.

Después de buscar, sólo se han obtenido los resultados previstos: 1322, 13322, 133322,…

Así que es una propiedad poco frecuente, ligada a los números 666, 6666, 66666,…No hay más búsquedas.

jueves, 13 de mayo de 2021

Triangulares que son oblongos

Un número triangular puede ser doble de otro triangular, como ocurre con el 6=3*4/2, que es doble de 3=2*3/2. Como a los dobles de los triangulares les llamamos oblongos, de ahí el título de esta entrada: triangulares que también son oblongos. Recordemos que la fórmula del triangular de orden n es T(n)=n(n+1)/2 y la del oblongo O(n)=n(n+1).

En nuestro almacén de funciones disponemos de estas dos, que nos pueden servir para una búsqueda:

Public function estriangular(n) as boolean
dim a
a = Int(sqr(8*n+1))

if a*a=8*n+1 then estriangular = true else estriangular = false
end function

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

No las explicamos porque su uso es muy frecuente en este blog y, si usas la búsqueda, te encontrarás con ellas en muchas cuestiones.

Si aplico estos dos criterios de búsqueda con Excel o Calc, rápidamente obtendré las primeras soluciones:

Por ejemplo, 210 es el triangular número 20 (210=20*21/2) y también el oblongo de orden 14, pues 210=14*15.

Gráficamente:

Triangular 210: 1+2+3+4+…+19+20

Oblongo 210=15*14

Para encontrar más, es conveniente pasar al lenguaje PARI y tener en cuenta que en los triangulares T, es un cuadrado la expresión 8T+1, y en los oblongos 4T+1. De esa forma resulta un código muy breve:

for(i=1, 10^8, if(issquare(8*i+1)&&issquare(4*i+1), print(i)))

Con él conseguimos unos ejemplos más:

Puedes consultar los siguientes en http://oeis.org/A029549

0, 6, 210, 7140, 242556, 8239770, 279909630, 9508687656, 323015470680, 10973017315470, 372759573255306, 12662852473364940, 430164224521152660, 14612920781245825506, 496409142337836914550, 16863297918705209269200

Observamos que no hay muchos ejemplos, y que crecen rápidamente.

Estudio teórico

Al estudiar números poligonales, casi todas las situaciones terminan siendo previsibles, porque la búsqueda puede traducirse en un estudio teórico y en la resolución de alguna ecuación diofántica. En el caso que estudiamos se trataría de la ecuación de Pell, sobre la que disponemos de una herramienta con hoja de cálculo.

En primer lugar, planteamos que un triangular equivalga a un oblongo:

Comenzamos con x(x+1)/2=y(y+1)

Al desarrollar productos queda x2+x=2y2+2y

En estas cuestiones es frecuente completar cuadrados multiplicando por 4 y sumando algo, en este caso un 2: 4x2+4x+2=2(4y2+4y+1); (2x+1)2+1=2(2y+1)2

Si cambiamos de variable: a=2x+1;  b=2y+1, queda a2-2b2=-1

Esta ecuación es de tipo Pell, con un coeficiente D=2 en el segundo cuadrado. La resolveremos con nuestra hoja PELL

http://www.hojamat.es/sindecimales/aritmetica/herramientas/herrarit.htm#pell

El problema de esta ecuación es que se resuelve mejor si el segundo miembro es igual a 1. No entraremos en teorías, que ya publiqué en este blog:

https://hojaynumeros.blogspot.com/2010/02/ecuacion-de-pell.html

En esta herramienta comienzas por escribir el valor de D, que en este caso es 2 y el del segundo miembro, que es -1:

A continuación, la hoja aplica un algoritmo de fracciones continuas y sus reducidas y ofrece soluciones. En este caso se alternan las correspondientes a 1 con las de -1:

Hemos tenido suerte, y obtenido soluciones para el valor -1, pero estas son soluciones para A y B, y después hay que pasarlas a X y a Y:

En las dos últimas columnas aparecen las primeras soluciones de los triangulares que son idénticos a unos oblongos

Podemos seguir encontrando nuevos casos, porque la ecuación de Pell produce recurrencias, que recoge la herramienta nuestra que estamos utilizando:

Estas soluciones se han obtenido mediante la recurrencias xn=xn-1+2yn-1, yn=xn-1+yn-1. Este tema lo puedes estudiar en la entrada enlazada.

Son las recurrencias en Pell, pero como se alternan las soluciones 1 y -1, hay que reiterar cada recurrencia, y queda:

xn=3xn-1+4yn-1

yn=2xn-1+3yn-1

A partir de la primera solución X=1, Y=1, que corresponde al triangular 0, podemos, con estas iteraciones, comprobar las dos primeras columnas de la tabla obtenida:


Se puede comprobar con facilidad: 7=3*1+4*1, 5=2*1+3*1, 41=3*7+4*5 y 29=2*7+3*5, y así con todos. A partir de los dos últimos valores A=47321 B=33461 se pueden construir los siguientes, y completar la tabla hasta el límite que se desee. No sería una búsqueda, sino una obtención rigurosa.

Obtención de un listado por recurrencia

Las ideas anteriores se pueden plasmar en este código PARI:

a=1;b=1;for(i=1, 12, a1=3*a+4*b;b1=2*a+3*b;a=a1;b=b1;c=(b-1)/2;print(c*(c+1)))

En él se someten A y B a la recurrencia y después se extrae de su valores un nuevo triangular oblongo. Este listado devuelve el compilador:



Lo importante es que se puede avanzar siempre y que, por tanto, existen infinitos triangulares oblongos.

Recurrencia

Si los valores de X e Y siguen una recurrencia lineal, los triangulares que dependen de ellos también seguirán una propia. Para no enredarnos en cálculos algebraicos, usaremos una ecuación del tipo T(n+1)=A*(T(n)+B*T(n-1)+C. Le daremos tres juegos de valores para obtener un sistema de ecuaciones que nos dará los valores de A, B y C. Es un método rápido.

Usaremos los valores 0, 6, 210, 7140 y 242556. Quedará (sustituimos A, B, C por X, Y, Z para la resolución automática):

210=6X+0Y+Z

7140=210X+6Y+Z

242556=7140X+210Y+Z

Se resuelve con WIRIS (https://calcme.com/a) :


Coincide con la publicada en OEIS:

a(n+2) = 34*a(n + 1) - a(n) + 6. - Charlie Marion, Feb 11 2011

Por ejemplo, 7140=34*210-6+6.

Hemos combinado búsqueda con teoría, que es la mejor forma de iniciar un tema.

 

 

lunes, 3 de mayo de 2021

Números poligonales doblemente centrados

El día 17/02/21 publiqué en Twitter (@connumeros) lo siguiente:

17221 es un número multipoligonal centrado, porque equivale a un poligonal de ese tipo de 20 lados con medida 42 y también a otro de 21 lados y medida 41. Es interesante comparar las fórmulas:

17221=(20×42^2-20×42+2)/2

17221=(21×41^2-21×41+2)/2

Esto, que parece una casualidad, me llamó la atención por el hecho de que 42 es el doble de 21, y eso podría suponer que este tipo de coincidencias fuera más frecuente de lo esperado inicialmente. En efecto, existen coincidencias de este tipo y otros parecidos con abundancia de casos concretos.

En primer lugar hay que recordar que los poligonales centrados se forman mediante figuras concéntricas, y no adosadas como los poligonales usuales.

En la imagen está representado el triangular centrado de orden 3, que equivale a 10 unidades. En efecto, según la fórmula

 

POLC(3,3)=(3*3^2-3*3+2)/2=(27-9+2)/2=10

(Ver mi publicación “Números y formas”, http://www.hojamat.es/publicaciones/numform.pdf)

Podríamos usar esta fórmula para estudiar la casualidad que publiqué en Twitter:

POLC(20, 42)=(20×42^2-20×42+2)/2=17221

POLC(21,41)=(21×41^2-21×41+2)/2=17221

En general, usaremos las variables (n, k) para el primer poligonal y (n+1, k-1) para el segundo, olvidando por ahora si n es el doble de k+1 o no. Es decir, restringiremos la búsqueda al caso en el que los dos parámetros, número de lados n y orden k sean consecutivos con su par.

Podemos plantear esta igualdad:

(n*k2-n*k+2)/2=((n+1)*(k-1)2-(n+1)*(k-1)+2)/2

Simplificando y agrupando factores queda:

  n*(k2-k)=(n+1)((k-1)^2-(k-1))

O bien

nk(k-1)=(n+1)(k-1)(k-2)

nk=(n+1)(k-2)=nk+k-2n-2

k=2(n+1)

Luego el hecho de que 42 fuera el doble del 21 no era casual, sino obligado en este caso.

Así que todo poligonal centrado en el que n sea el doble de k-1 debe cumplir la condición de partida. Lo vemos:

En la tabla comenzamos con los números pares consecutivos y con su mitad menos 1 como orden. Aplicamos las fórmulas con parámetros consecutivos y comprobamos que da el mismo resultado. En la última fila se ha añadido el caso de 17221.

Esta tabla se podría prolongar y comprobaríamos que todos los poligonales centrados en los que el orden k sea par y el número de lados el adecuado (k/2-1) presentarán esta coincidencia.

Ya tenemos resuelto el caso planteado, pero en este blog nos seguimos planteando siempre segundas preguntas, y, en este caso ¿existirán muchos números multipoligonales centrados además de los estudiados?

Caso general

Para descubrir a cuántos poligonales centrados equivale uno concreto recorreremos todos los posibles parámetros n y k tomando nota de las repeticiones.

Poligonales no triviales

Al igual que con los números poligonales usuales, todo número entero positivo es poligonal centrado, ya que es igual a la unidad más un polígono de dos unidades por lado. En la imagen vemos el número 9 representado por la unidad centrada con un octógono, es decir, con un lado menos y dos unidades por lado:

Muchos números sólo poseen esta representación como poligonales centrados. Les llamaremos poligonales centrados triviales. Los no triviales están publicados en http://oeis.org/A275340 y los primeros son (han incluido casos con n<3, como 4 y 7):

4, 7, 10, 11, 13, 16, 19, 21, 22, 25, 28, 29, 31, 34, 37, 40, 41, 43, 46, 49, 51, 52, 55,…

Esto acota nuestra búsqueda, porque el caso trivial se repite demasiado y no nos interesa.

Comenzaremos, como casi siempre en este blog, con una función de Excel, que nos devolverá las formas de ser poligonal centrado de cada número. Veremos que se excluye el caso trivial:

Function multipoligc$(n)

Dim i, j, m

Dim s$

s = "" ‘Variable que recibirá los resultados

m = 0 ‘Número de resultados

For i = 3 To n ‘Número de lados, comenzando en 3

For j = 3 To n ’ Unidades por lado, evitando el caso trivial de 2

If n = (i * j * (j - 1) + 2) / 2 Then m = m + 1: s = s + Str$(i) + Str$(j) + "  # " ‘Existe una solución. Se incrementa el contador y se incorpora al conjunto obtenido

Next j

Next i

If s <> "" Then s = ajusta(m) + ":" + s ‘Se añade el contador al resultado

multipoligc = s

End Function

Si el resultado de esta función es la cadena vacía, es que no es “multipoligonal” y, en caso contrario, la cadena contiene el número de soluciones y sus parámetros.

Estos serían los primeros no triviales:

 

Los resultados se inician con el número de soluciones. Por ejemplo, el 43 posee dos formas de ser poligonal centrado, una de 7 lados y orden 4 y otra de 14 lados y orden 3.

En efecto, 43=1+7+14+21 y también 43=1+14+28, sumas de capas concéntricas (o múltiplos de 7 y 14)

Observamos que 61 posee cuatro representaciones. La razón es que 61-1=60 posee muchos divisores distintos.

El número con el que comenzamos este estudio, 17221, presenta 10 formas de ser poligonal centrado:

17221: 10: 20 42  #  21 41  #  82 21  #  164 15  #  615 8  #  820 7  #  1148 6  #  1722 5  #  2870 4  #  5740 3  #

Entre ellas, las que dieron lugar a estas búsquedas, 20 42 y 21 41