lunes, 27 de marzo de 2023

Regresos 7 – Otros automórficos

 

En el año 2009 publiqué un pequeño reto sobre cuadrados automórficos

https://hojaynumeros.blogspot.com/2009/05/numeros-automorficos.html

Los números de la primera columna de la siguiente tabla

son automórficos.

Si los estudias adivinarás pronto qué propiedad tienen para recibir este nombre.

¿Cómo podríamos encontrarlos con una hoja de cálculo? Para construir la tabla que se incluye se han usado macros, pero se puede prescindir de ellas. Puedes crear una tabla de números consecutivos y después aplicarles una condición.
Esta tabla es complementaria de la anterior. ¿Qué relación tiene con ella?


La pista que daba la segunda tabla era que a2-a = a(a-1) = N*10

Años más tarde, en 2013, se estudiaron los primos automórficos, que poseen como últimas cifras su número de orden como primo.

https://hojaynumeros.blogspot.com/2013/11/primo-que-tienes-que-ver-con-tu-numero.html

Ahora nos dedicaremos, fundamentalmente, a los números poligonales que sean automórficos. Como los cuadrados son poligonales, incluiremos lo que aparezca de nuevo respecto a la entrada de 2009.

Estos números poseen una fórmula general, y la usaremos en las búsquedas, y si se requiere un estudio algebraico, la simplificaremos para cada caso en particular.

Función de búsqueda

Los poligonales los tenemos muy estudiados en este blog y están contenidos en nuestra publicación

http://www.hojamat.es/publicaciones/poligonales.pdf

Las fórmulas para su formación las puedes estudiar en ella. Aquí las usaremos en su versión para hojas de cálculo:

Function poligonal(n, k)

poligonal = n * (n * (k - 2) - (k - 4)) / 2

End Function

En ella n es el orden o longitud del “lado” y k el tipo, o número de lados.

Una vez contemos con esta función podremos buscar los casos automórficos. La plasmamos así:

Function autopolig(n, k) 'Devuelve el poligonal dado su índice si es automórfico

Dim b, l, u

Dim s$, t$

b = poligonal(n, k) ‘Busca el poligonal

t = ajusta(b) ‘Se convierten los datos a String

s = ajusta(n)

l = Len(s$) ‘Ahora se ve si coinciden las cifras

If s = Right(t, l) Then u = Val(t) else u=0

autopolig = u

End Function

Con esta función podemos buscar poligonales automórficos, a los que llamaremos polimórficos. Con esto se podría dar por terminada la cuestión, porque nos da fácilmente todas las soluciones, pero deseamos estudiar también cada caso por separado. Aquí tenemos algunos listados:

Triangulares: 1, 15, 325, 195625, 43959376, 4106490625,… http://oeis.org/A219253

Cuadrados: , 1, 25, 36, 625, 5776, 141376, 390625, 87909376, 8212890625,… http://oeis.org/A035383

Pentagonales: 1, 35, 925, 585625, 131859376, 12319290625

Estudiaremos ahora cada tipo en particular para casos interesantes.

Triangulares

En el caso de los triangulares el automorfismo se puede expresar con su fórmula clásica N(N+1)/2:

N(N+1)/2 = N módulo 10m siendo m el número de cifras de N

Lo podemos expresar de forma más sencilla:

N(N+1)-2N=N2+N-2N=N2-N=N(N-1) = 0 (mod 10m

Por ejemplo, 325 es automórfico, porque su número de orden es 25, y se cumple que 25(25-1)=25*24=600, que es múltiplo de 102, siendo 2 el número de cifras de 25

Tenemos listado de estos números: 1, 15, 325, 195625, 43959376, 4106490625, 396606890625, 25271617109376, 83084112890625, 22661209212890625, 1596879961787109376, 3344565630081787109376, 1795096118003159918212890625

http://oeis.org/A219253

Vemos que el problema se vuelve algo intratable. Con la propiedad anterior se puede abordar con hoja de cálculo sin gran coste de tiempo. Usamos la función siguiente, similar a la general, en la que hemos integrado la condición modular:

Function trimorfico(n)

Dim a, b, u, l

Dim s$, t$

a = numcifras(n)

If n * (n - 1) Mod 10 ^ a = 0 Then

b = n * (n + 1) / 2

t = ajusta(b)

s = ajusta(n)

l = Len(s$)

If s = Right(t, l) Then u = Val(t) Else u = 0

End If

trimorfico = u

End Function

Con algunos segundos de tiempo se consiguen varios términos:

Esto anima a intentar el mismo proceso con PARI. El código es algo complejo:

issub(vv, v) = {for (i=1, #v - #vv + 1, if (vector(#vv, k, v[k+i-1]) == vv, return(1)); ); }

substring(ss,s)={my(vv=Vec(ss),v=Vec(s));return(issub(vv,v))}

trimorf(n)={my(a,b,u=0,l,s="",t="");a=#Str(n);if(n*(n-1)%10^a==0,b=n*(n+1)/2;t=Str(b);s=Str(n);u=substring(s,t));if(u>0,return(b))}

for (i=1,10^7,m=trimorf(i);if(m>0,print(m)))

Con él se llega más lejos que con hoja de cálculo:

Este ejemplo ilustra la conveniencia de una condición previa para acelerar la velocidad de un algoritmo.


Cuadrados

Con este ejemplo comenzamos el tema en el año 2009. Lo completamos ahora.

Podemos usar la función autopolig con la fórmula n^2, pero merece la pena buscar una condición como procedimos con los triangulares:

N2 = N módulo 10^m siendo m el número de cifras de N

N2-N=N(N-1) = 0(mod 10m

Resulta la misma condición que para los triangulares. En realidad, es similar a la condición de exigir que N termine en una de las cifras 1, 5 o 6, que son las únicas terminaciones que coinciden con sus cuadrados.

Si cambiamos n*(n-1)/2 por n^2 en la función anterior nos resultan bien las soluciones para cuadrados:

Los valores de N coinciden con los primeros de los publicados en http://oeis.org/A003226: 1, 5, 6, 25, 76, 376, 625, 9376, 90625, 109376, 890625, 2890625, 7109376, 12890625, 87109376, 212890625, 787109376, 1787109376, 8212890625, 18212890625, 81787109376, 918212890625, 9918212890625, 40081787109376, 59918212890625, 259918212890625, 740081787109376 

Los valores de N2 los podemos lograr con la misma sustitución en el código PARI:


Otros poligonales

Antes de pasar a algunos casos particulares, es fácil plantear que la condición en la que coinciden triangulares y cuadrados es válida para otros poligonales:

N2-N=N(N-1) = 0(mod 10m

Es sencilla su justificación, basada en la fórmula general del poligonal de lado n y número de lados k:

P(n,k)=n(n(k-2)-(k-4))/2

Con ella se justifica fácilmente:

N(N*(k-2)-(k-4)/2=N mod 10m

(k-2)N2-(k-4)N=2N mod 10m

(k-2)(N2-N)=0 mod 10m

Si k-2 es primo con 100 (sin factores 2 y 5) vale el criterio para todos esos poligonales, y en ellos se simplifica la búsqueda con seguridad, aunque aparecerán otros casos.

Pentagonales

La fórmula de los números pentagonales (además de la general para poligonales usada en autopolig) es (3n2-n)/2. Podemos aplicarle el filtro del módulo, porque k-2=5-2=3 en este caso, primo con 10. El resultado, tanto con ese filtro como sin él, es el mismo:

1, 35, 925, 585625, 131859376, 12319290625,…


Con la adaptación a PARI se llega más lejos en la segunda columna:

Los valores de la primera columna cinciden con los de los triangulares, por ser 5-2 primo con 10.

Hexagonales

En estos aparecen más casos, porque k-2=6-2=4 no es primo con 10. Por esa abundancia, el algoritmo autopolig funciona con más rapidez:


Los valores de N están publicados en http://oeis.org/A039594 y los de HEX(N) en http://oeis.org/A038494


Soluciones universales

 En la equivalencia que hemos usado como filtro para los poligonales, (k-2)(N2-N)=0 mod 10m , los elementos que cumplan (N2-N)=0 mod 10m figurarán en todos ellos como automórficos, porque no les afecta el valor de (k-2). Son soluciones universales, que figuran en todos los casos que hemos estudiado hasta ahora. Coinciden con los valores de N en los triangulares, y son

1, 5, 25, 625, 9376, 90625, 890625, 7109376,…

Si recorres con autopolig los distintos tipos de poligonales, verás que estos valores pertenecerán a todos ellos. Por ejemplo, creamos la sucesión para decágonos (k=10):

1, 5, 6, 25, 26, 50, 51, 75, 76, 125, 126, 250, 251, 375, 376, 500, 501, 625, 626, 750, 751, 875, 876, 1876, 2500, 2501, 3125, 4376, 5000, 5001, 5625, 6876, 7500, 7501, 8125, 9376, 15625, 25000, 25001, 34376, 40625, 50000, 50001, 59376, 65625, 75000, 75001, 84376, 90625, 109376, 140625, 250000, 250001, 359376, 390625, 500000, 500001, 609376, 640625, 750000, 750001, 859376, 890625, 2109376, 2500000, 2500001, 2890625, 4609376, 5000000, 5000001, 5390625, 7109376, 7500000, 7500001, 7890625, 9609376,…

Figuran en negrita los valores universales, que pertenecen a todas las sucesiones dependientes de poligonales. Es un interesante resultado. Por ejemplo, en esta tabla figuran el número de lados k y los poligonales correspondientes al 9376:


Todos terminan en las cifras 9376.

 

 

 

No hay comentarios: