miércoles, 18 de diciembre de 2013

Resultados curiosos de la suma de divisores cuadrados

Engendramos cuadrados

La siguiente sucesión presenta varias propiedades respecto a la suma de los divisores cuadrados (ver entrada anterior) que merece la pena destacar

1764, 60516, 82369, 529984, 2056356, 2798929, 3534400, 18181696, 38900169, 96020401, 97121025, 335988900, 455907904, 457318225, 617820736, 1334513961, 1599200100, 2176689025, 3279852900, 4464244225, 8586616896…(publicada en https://oeis.org/A232554)

Todos ellos son cuadrados tales que la suma de sus divisores cuadrados, incluidos ellos mismos, también es un cuadrado. Sí, puedes volver a leerlo si no lo has captado. En la siguiente tabla puedes comprobar esta propiedad:



En la primera columna figuran los elementos de la sucesión. Hemos prescindido del 1, que también cumpliría la misma propiedad. En la siguiente su descomposición en factores primos, que ya analizaremos. Como en la entrada anterior sugeríamos sumar los divisores cuadrados mediante la función sigma_2 aplicada a la raíz interna, hemos calculado dicha suma en las siguientes columnas, comprobando mediante su raíz cuadrada que se trata de cuadrados perfectos. Finamente también se han calculado los factores de esas raíces.

Se pueden generar con este código en lenguaje PARI:

{for(n=1,10^5,m=n*n;k=sumdiv(m,d,d*issquare(d));if(issquare(k)&&k>>1,print(m)))}

Factorización

Podemos observar que ningún término de la sucesión es potencia de un solo primo.

Con dos factores primos distintos sólo se dan tres casos, que puedes buscar en la tabla, y los primos que intervienen son 7, 41 y 239, curiosamente pertenecientes a la sucesión de primos  p para los que p^2+1 no está libre de cuadrados (ver el documento de Rafael Parra http://hojamat.es/parra/NumerosLDC.pdf y la sucesión https://oeis.org/A224718). En el caso de los tres citados, 7^2+1=2*25^2, 41^2+1=2*29^2 y 239^2+1=2*13^4. Si ahora los multiplicamos dos a dos, obtendremos un factor 2*2=4 multiplicado por dos cuadrados, luego será cuadrado perfecto, como se pedía.

Otra curiosidad es que las sumas de cuadrados son todas pares y muchas de ellas múltiplos de 100. Sus raíces son pares hasta donde hemos buscado. Queda ahí abierta una cuestión para estudiarla con más ciencia que nosotros.

Sucesión derivada

Si multiplicamos los términos de esta sucesión por otro número libre de cuadrados resultará otra sucesión formada por números no cuadrados con suma de divisores cuadrados propios que resulta ser cuadrada:

3528, 5292, 8820, 10584, 12348, 17640, 19404, 22932, 24696, 26460, 29988, 33516, 37044, 38808, 40572, 45864, 51156, 52920, 54684, 58212, 59976, 61740, 65268, 67032, 68796, 72324, 74088, 75852, 81144, 82908, 89964, 93492, 97020……(publicada en https://oeis.org/A232555)

Podemos construir todos los múltiplos de ese tipo hasta una cota, por ejemplo un millón y después ordenarlos en sucesión. Así lo hemos hecho y casi todos los primeros son múltiplos de 1764.

En realidad esta sucesión es parte de otra más amplia en la que aparecen todos los casos, y no sólo estos múltiplos que hemos considerado. Son estos:

Números cuya suma de divisores cuadrados propios es otro cuadrado mayor que 1

900, 3528, 4900, 5292, 8820, 10404, 10584, 12348, 17640, 19404, 22932, 24696, 26460, 29988, 33516, 37044, 38808, 40572, 45864, 51156,  52920, 54684, 58212, 59976, 61740, 65268, 67032, 68796, 72324, 74088, 75852, 79524, 81144, 81796, 82908, 89964, 93492, 97020………(publicada en https://oeis.org/A232556)

En ellos la suma de divisores cuadrados propios es otro cuadrado. Por ejemplo, la suma en el caso de 5292 es  1764+441+196+49+36+9+4+1=2500=50^2, que también es un cuadrado.

Aunque los hemos buscado con funciones de hoja de cálculo, se puede intentar también con PARI. Prueba si quieres este código:

{for(n=1,10^5,k=sumdiv(n,d,d*issquare(d)*(d<n));if(issquare(k)&&k>>1,print(n)))}

Todos los encontrados son múltiplos de 4 y al menos poseen tres factores primos distintos. De ellos, algunos son también cuadrados:

900, 4900, 10404, 79524, 81796, 417316, 532900, 846400, 1542564, 2464900, 3232804, 3334276, 3496900, 12432676, 43850884, 50836900, 51811204, 71470116, 107453956, 236975236, 253892356, 432889636, 544102276, 864948100, 1192597156, 1450543396, 1554094084, 2024820004, 2165413156………(publicada en https://oeis.org/A232557)

No son cuadrados el resto: 3528, 5292, 8820, 10584, 12348,…que resultan ser los múltiplos de la primera sucesión que ya tratamos.

Resumimos:

Sucesiones de cuadrados

(1) Pueden formar un cuadrado sumándoles todos sus divisores cuadrados propios. Nos resultaría la primera sucesión: 1764, 60516, 82369, 529984,…(A232554)

(2) Forman un cuadrado sólo la suma de divisores propios, sin sumarles el número dado. Tendríamos la sucesión: 900, 4900, 10404, 79524, 81796,…(A232557)

Sucesiones de no cuadrados

(3) Números cuyos divisores cuadrados suman otro cuadrado. Son 3528, 5292, 8820, 10584,…(A232555) Son múltiplos de elementos de la sucesión (1)

Sin condicionamiento

(4) La unión de la sucesión (2) con la (3) (A232556)
   
Formamos palindrómicos

Con la suma de divisores cuadrados podemos formar números palindrómicos. Es una simple curiosidad, pero está inédita, que sepamos. Hay dos formas, con divisores cuadrados propios o con todos:

Con divisores propios

Estos son los números en los que la suma de divisores cuadrados propios es un número palindrómico de al menos dos cifras (para eliminar casos triviales):

144, 324, 1089, 1936, 5929, 13225, 30752, 46128, 58564, 76880, 92256, 107632, 125316, 138384, 149769, 153760, 154449, 169136, 199888, 215264, 230640, 261392, 292144, 322896, 338272, 342225, 353648, 378225, 399776, 405769, 445904, 461280, 476656, 507408, 522784, 538160, 568912, 584288, 599664
(Los hemos publicado en https://oeis.org/A232892)

Si expresamos el resultado en una tabla de dos columnas, vemos los resultados palindrómicos a la derecha:

Llama la atención la frecuencia con la que aparece el valor 20202, y prolongando la tabla veríamos muchos más. La razón de esto es que el primer caso, 30752=25*312,  tiene como divisores cuadrados  15376+3844+961+16+4+1=20202, que provienen de los factores 24*312 =15376 y entonces, si multiplicamos ese número por factores libres de cuadrados se volverá a dar el mismo caso. En efecto, según la tabla, los siguientes son: 46128=15376*3, 76880=15376*5, 92256=15376*6, 107632=15376*7,…

La pregunta es por qué no funciona este razonamiento en los primeros casos de la tabla. La respuesta es que esos números son cuadrados y si los multiplicamos por un libre de cuadrados, se convertirían ellos mismos en divisores cuadrados propios, y eso alteraría la suma.

Un código PARI para encontrarlos puede ser

reverse(n)=concat(Vecrev(Str(n)))
palind(n)=(Str(n)==reverse(n)&&n>10)
{for(n=1,10^5,k=sumdiv(n,d,d*issquare(d)*(d<n));if(palind(k),print(n)))}

Con todos los divisores cuadrados

Los primeros números con esta propiedad son

15376, 30752, 46128, 76880, 92256, 107632, 153760, 169136, 199888, 215264, 230640, 261392, 292144, 322896, 338272, 353648, 399776, 445904, 461280, 476656, 507408, 522784, 538160, 568912, 584288, 599664, 630416, 645792, 661168, 707296, 722672, 784176, 814928, 845680, 876432, 891808, 907184, 937936, 953312, 999440,…
(Los hemos publicado en https://oeis.org/A232893)

Todos producen la suma de cuadrados 20202, que ya vimos, y todos son múltiplos del primero 15376 con cociente libre de cuadrados. Esta situación llega hasta el número 2217121, que ya no es múltiplo de 15376 y la suma palindrómica que produce es 2217122, ya que sus únicos divisores cuadrados son él mismo y la unidad.

Código PARI:

reverse(n)=concat(Vecrev(Str(n)))
palind(n)=(Str(n)==reverse(n)&&n>10)
{for(n=1,10^5,k=sumdiv(n,d,d*issquare(d));if(palind(k),print(n)))}

Otras sumas

Podemos intentar lograr números de otros tipos, como triangulares u oblongos, pero los resultados son tan abundantes que pierden su interés. En el caso de los oblongos los primeros resultados son múltiplos de 144. Ahí tienes una exploración.

martes, 10 de diciembre de 2013

Divisores cuadrados


Consideremos el conjunto de divisores de un número natural N que son cuadrados perfectos. Sabemos que el mayor de ellos es la parte cuadrada del número

(ver http://hojaynumeros.blogspot.com.es/2011/05/parte-cuadrada-y-parte-libre.html),

a la que designaremos como PC(N). Si descomponemos N en factores primos


para encontrar la parte cuadrada basta elevar a cada factor primo al mayor número par contenido en cada uno de los exponentes, es decir
(2)

Así, por ejemplo, para encontrar la parte cuadrada de 26460=22*33*5*72 bastará truncar cada exponente a un número par, con lo que quedaría PC(26460)= 22*32*72=1764. A la raíz cuadrada de esa parte se le suele llamar Raíz Interna del número N (ver http://hojaynumeros.blogspot.com.es/2011/12/emparedado-de-cuadrados-2.html)

En este caso la raíz interna de 26460 sería 42=2*3*7.

Todo esto lo recordamos para poder estudiar mejor los divisores cuadrados de un número. Se pueden considerar las siguientes afirmaciones:

Los divisores cuadrados de N coinciden con los de su parte cuadrada.

Si k es divisor cuadrado de N, todos sus exponentes en (1) serán pares, pero ninguno sobrepasará al correspondiente en PC(N), luego será también divisor de esa parte cuadrada. Inversamente, todo divisor de PC(N) lo es también de N.

El número de divisores cuadrados de N coincide con el de los divisores de la raíz interna de N.

Esto es así porque si extraemos la raíz cuadrada a todos los divisores cuadrados de N, es claro que permanecerán los mismos factores primos, pero con sus exponentes reducidos a la mitad, que es la misma operación sufrida por la raíz interna.

En el ejemplo elegido, si esa raíz interna es 42, poseerá ocho divisores, por ser igual a 2*3*7 (aplicando la fórmula del número de divisores resultaría (1+1)(1+1)(1+1)=8). Efectivamente, si buscamos todos los divisores cuadrados de 26460 nos resultan estos ocho: 1764, 441, 196, 49, 36, 9, 4 y 1, que son los cuadrados de los divisores de 42: 42, 21, 14, 7, 6, 3, 2 y 1

Existe una correspondencia biyectiva entre los divisores cuadrados de N y los divisores de su raíz interna, de forma que cada uno de los primeros es el cuadrado de otro del segundo conjunto.

Por ejemplo, para N=1200, su parte cuadrada es 400, su raíz interna 20, y se da la correspondencia entre los divisores de 20 y los divisores cuadrados de 20.



Esto nos da, como hemos visto, un procedimiento para contar los divisores cuadrados de un número, pero también para sumarlos, si recordamos la fórmula de la función sigma_2, que suma los cuadrados de los divisores (ver http://hojaynumeros.blogspot.com.es/2011/03/la-familia-de-las-sigmas-2.html)


Aplicamos esa fórmula a la raíz interna. Esto es importante, porque esa raíz determina el número de divisores cuadrados. En nuestro ejemplo lo haríamos así:

SDC(26460)=(2^4-1)/(2^2-1)* (3^4-1)/(3^2-1)* (7^4-1)/(7^2-1)=5*10*50=2500

Comprueba: 1764+441+196+49+36+9+4+1=2500

Si deseas comprobar este resultado con otros números, con este codigo PARI puedes sumar todos los divisores cuadrados:

print(sumdiv(26460,d,d*issquare(d)))

Sustituyes el ejemplo 26460 por otro número cada vez que lo desees.

Con el Basic de las hojas de cálculo también lo puedes calcular mediante esta función:

public function sumdivcuad(n)
dim i,p,a,s

p=1
s=0
for i=1 to sqr(n)
a=i*i
if n/a=n\a then s=s+a
next i
sumadivcuad=s
end function

Comprueba de varias formas que el número 84000 posee sólo seis divisores cuadrados cuya suma es 546. Usa también la fórmula basada en sigma_2 ((2^6-1)/(2^2-1)*(5^4-1)/(5^2-1)=21*26=546)

Como otras variantes de la función sigma, esta suma de divisores cuadrados es una función multiplicativa, por lo que basta definirla para pr, siendo p un factor primo. Para ello, según (2) tomamos como exponente de su raíz interna (r – r MOD 2)/2, con lo que la suma de los divisores cuadrados será




Por ejemplo, la suma de divisores cuadrados de 2048=211 será igual a (2^12-1)/(2^2-1)=4095/3=1365. Comprobamos: 1024+256+64+16+4+1 = 1365.

En el caso particular de que r sea igual a 2 o a 3 la suma de divisores cuadrados será p2+1. Es muy fácil razonarlo.
Otro caso particular se da cuando la raíz interna está libre de cuadrados, tipo RI(N)=p*q*r*s…, la suma buscada será (1+p2)(1+q2)(1+r2)(1+s2)…Sería el caso, por ejemplo, del número 60500, cuya parte cuadrada es 12100 y la raíz interna 110=2*5*11, libre de cuadrados, por lo que la suma de divisores cuadrados de 60500 debería ser (1+22)(1+52)(1+112)=5*26*122=15860. En efecto, los divisores cuadrados de 60500 suman 12100+3025+484+121+100+25+4+1=15860

En la siguiente entrada encontraremos algunos resultados curiosos sobre esta suma.

martes, 3 de diciembre de 2013

Una curiosidad: permutaciones obtenidas por simulación


El estudio que emprendemos hoy se parece bastante al problema de completar una colección de cromos, que ya tratamos hace unos meses (http://hojaynumeros.blogspot.com.es/2012/05/este-cromo-lo-tengo-repe-1.html)

Pertenece al tipo de problemas de llenado aleatorio de un conjunto, como el de una línea o un cartón de bingo. Estos ejemplos se caracterizan porque la probabilidad de obtención de un nuevo elemento del conjunto depende del número de los ya obtenidos, en el sentido negativo, de ir disminuyendo la probabilidad conforme se llena el conjunto.

Hoy lo experimentaremos con permutaciones. Hace días, jugando con las cifras del número 19913 con el fin de obtener todos los números primos posibles, acudí a la herramienta Combimaq, de hojamat.es (http://hojamat.es/sindecimales/combinatoria/herramientas/herrcomb.htm#combimaq), que me proporcionó la solución exacta, elemental, de 30 permutaciones, 30=5!/(2!2!)=120/4



Me pregunté entonces por la posibilidad de obtener esos resultados mediante simulación. Elegí este procedimiento:

(1) Se fija un conjunto cualquiera de unos pocos elementos, por ejemplo el dado 1, 9, 9, 1, 3, con o sin repetición de elementos.

(2) Lo sometemos reiteradamente a transposiciones aleatorias de sus elementos. Como una permutación se puede  descomponer en dichas transposiciones, cada vez que efectuemos esta operación estaremos creando una permutación del conjunto primitivo. Como es de suponer, después de varios intentos las permutaciones comenzarán a repetirse.

(3) Cada permutación nueva la comparamos con las anteriores, y si es distinta a todas ellas, la incorporamos a la lista de las formadas y seguimos el proceso. Nada nos garantiza que esto agote el conjunto de todas las permutaciones posibles, al igual que una colección de cromos en la que no se intercambian ni se compran puede no llegar a completarse nunca.

(4) El proceso parará si le incluimos un tope, que podría ser el número total de permutaciones que conozcamos previamente. Por ejemplo, en el caso de 19913 serían 30 permutaciones. Si no se indica ningún tope, puede que el proceso llegue a completar el catálogo de permutaciones o bien, cosa improbable, que nunca lo haga, se inicie un ciclo sin fin y haya que interrumpir el proceso (en realidad, esto también puede ocurrir fijado un tope de resultados). Esta interrupción se logra con la pulsación de la tecla ESC (en Excel) o Ctrl+May+ Q en OpenOffice y LibreOffice.

Descripción de la herramienta

Hemos incluido este simulador en http://hojamat.es/sindecimales/combinatoria/herramientas/herrcomb.htm#simulpermu

Funcionamiento

La  hoja principal presenta esta estructura



Escribes los elementos del conjunto en la fila de color verde. En la imagen se  ha elegido aaabbb.

Fijas el número de elementos, porque en esa fila puede haber otros residuales más a la derecha.

Después concretas el tope, o número de permutaciones esperado. En el ejemplo hemos escrito un 0 para que sea el simulador el que llegue al número de permutaciones totales, en este caso 20.

En la parte izquierda verás aparecer los intentos y los resultados. Es normal que se necesiten muchos intentos, y en este caso sin tope, la tardanza nuestra en interrumpir el proceso añadirá más. Por eso, para recuentos o estadísticas es preferible fijar previamente el número esperado de permutaciones.

Junto a cada permutación figura el número de intentos que ha necesitado.

Podemos usar el simulador para reproducir un resultado que ya conocemos. Imaginemos que en un curso de Combinatoria al alumnado le cuesta entender el número de permutaciones que se pueden construir con las letras REDADA. Iniciamos la simulación y observamos que la creación de permutaciones se estabiliza en el número 180













Para entender mejor el proceso, ordenamos la tabla completa mediante las columnas D, E, F,… (no olvides desactivar la opción de “Mis datos tienen encabezados”). De esta forma se entenderá mejor cómo se crean las distintas permutaciones:



En un segundo paso se puede demostrar la fórmula 6!/(2!2!)=720/4=180

Por el contrario, si sabemos, por ejemplo, que el conjunto 17767 presenta 5!/3!=20 permutaciones, planteamos la generación aleatoria con tope 20, y posteriormente ordenamos la tabla:



Podemos observar que las permutaciones se han ordenado de forma creciente (como si fueran cifras de un número) y demuestran mediante formación ordenada que el número de permutaciones vale 20.

Estadísticas de la simulación

Lo anterior presenta un interés relativo, es un mero ejercicio de simulación. Le dotaremos de más potencia realizando algunas estadísticas mediante la inclusión de un generador de series, que repite el proceso cuantas veces deseemos y nos devuelve las estadísticas.

Recuerda que cada permutación viene acompañada de los intentos que se han necesitado para encontrarla. En la imagen figura el desarrollo para generar las permutaciones del conjunto 1234.



Se han necesitado 64 intentos, repartidos como se ve en la imagen, con bastantes oscilaciones aleatorias, aunque con tendencia a crecer. Si deseamos estudiarlos mejor deberemos acudir a series de simulaciones.

La primera permutación sólo ha necesitado un intento. Siempre es así si el conjunto básico no presenta repeticiones (¿por qué?). Aquí el segundo también ha salido a la primera, pero el tercero ya necesita a 2 intentos. Así van aumentando hasta llegar al último, que requirió 16 intentos. Estamos ante una sucesión creciente de incrementos también crecientes.

Para estudiarla mejor pasamos a la segunda hoja de cálculo, en la que disponemos del botón para crear series, y lanzamos una de 1000 repeticiones, para obtener unas medias que se puedan confrontar con una posible teoría o realizar el ajuste a una función. El resultado de esta serie ha sido el siguiente:



¿Se podrá confrontar esto con alguna teoría? En realidad sí, porque el caso de los intentos necesarios para obtener unos éxitos se estudia con la distribución binomial negativa o de Pascal (http://www.uv.es/ceaces/base/modelos%20de%20probabilidad/binegativa.htm).

En nuestro ejemplo sólo se pretende conseguir un éxito y no varios, por lo que la fórmula de los intentos medios es muy simple M=1/p, siendo p la probabilidad de obtener, en nuestro caso, una permutación nueva, y que será del tipo 3/24, 4/24, …

En la imagen se han añadido los resultados que se esperarían según la teoría. Parecen muy ajustados, pero en otros muchos experimentos que hemos realizado se advierte un sesgo, en el sentido de que el número de intentos medios es algo superior a lo esperado, lo que nos hace dudar de la absoluta aleatoriedad del proceso.

En esa misma segunda hoja aparecerán los valores máximos y mínimos del número de intentos. El mínimo, si no hay repeticiones, siempre será 1 y el máximo oscila tanto que no tiene interés una estadística sobre él.

Pues a ver si descubres algo más o amplías el modelo.

martes, 26 de noviembre de 2013

Primo, ¿qué tienes que ver con tu número de orden?

Esta entrada participa en la Edición 4.12310562 del Carnaval de Matemáticas cuyo blog anfitrión es ZTFNews.org.


En el mes de septiembre, en un diálogo a través de Twiter, Benjamin Vitale (http://benvitalenum3ers.wordpress.com/) me hizo notar que 3559 es el número primo de número de orden 499, y que ambos números tienen la misma suma de cifras, 22. Ya sabéis que en este blog respondemos, cuando es posible, a todas las ideas que nos llegan con una cuestión a resolver, y no es la primera vez que estas nos llegan de Ben Vitale. En este caso podría ser:

¿Qué detalles pueden tener en común un número primo y su número de orden en la lista de los mismos?

Coincidencia entre cifras

No sólo pueden coincidir en la suma de sus cifras. Será relativamente fácil que lo hagan en la última cifra. En efecto, los primos 17, 31, 83, 109, 157, 563, 587, 599, 661, 811, 823, 859, … Por ejemplo, el 17 es el primo número 7 y 31 el número 11. Puedes estudiarlos mejor en http://oeis.org/A085598

Es más difícil que ambos números coincidan en sus dos últimas cifras. Los primeros números que cumplen esto son (los presentamos por pares, número de orden y primo):

(243,1543), (519, 3719), (589, 4289), (703, 5303), (741, 5641), (823, 6323), (901, 7001), (959, 7559), (973, 7673), (1033, 8233), (1081, 8681), (1197, 9697), (1223, 9923), (1443, 12043), (1477, 12377), (1491, 12491),(1541, 12941), (1723, 14723) (1751, 14951)…

En todos ellos coinciden las dos últimas cifras del primo y de su número de orden. Para encontrarlos necesitamos dos funciones: CORTACIFRAS y PRIMONUM.

Cortar cifras

La primera no es difícil de programar en cualquier lenguaje. Su misión es seleccionar algunas cifras de la expresión decimal de un número. La versión más simple, sin control de errores, es esta
CORTACIFRAS(P,M,N)=(P MOD 10^N)\10^(M-1), en la que P es el número, M el inicio del corte y N el final, ambos incluidos (pueden ser iguales y entonces se corta una sola cifra). El significado de la fórmula es que calculas el módulo o residuo de P respecto a 10^N y el resultado lo divides de forma entera entre 10^(M-1)

Si del número 288762 deseas seleccionar las cifras que van de la segunda a la quinta deberás efectuar estos cálculos: 288763 MOD 10^5 = 88762 y ese número lo divides sin decimales entre 10^(2-1), es decir 8876.

En hoja de cálculo se expresaría así: =COCIENTE(RESIDUO(288762;10^5);10). Compruébalo.

En PARI es más sintético: (288762%10^5)\10

Encontrar el número primo dado su número de orden

Esta función PRIMONUM es más difícil de conseguir. En PARI está yá implementada: prime(k), pero no para números grandes. En el resto de la entrada usaremos esta notación prime(k) que resulta muy sintética. En hoja de cálculo no está disponible de entrada, aunque sí en algún complemento. Un código que resulta un poco lento podría ser este:

Public Function primonum(n)
Dim p, c, i

'encuentra el primo cuyo número de orden es n

c = 0: i = 2
While c < n
If esprimo(i) Then c = c + 1: p = i
i = i + 1
Wend
primonum = p
End Function

Para quienes siguen este blog no será muy difícil encontrar la función esprimo.

Con estas dos funciones y una estructura tipo FOR_NEXT puedes encontrar los primos deseados. Hemos usado también este programa en PARI:

cutdigit(a,p,q)=(a%10^q)\10^(p-1)
{for(n=5,5000,p=prime(n);if(cutdigit(p,1,2)==cutdigit(n,1,2),print(p)))}

En primer lugar hemos definido cutdigit para seleccionar cifras y después la hemos usado entre 1 y 2 para averiguar si coinciden las cifras en k y prime(k)

Hemos publicado la tabla para prime(k) en  https://oeis.org/A232102 y la de k ya estaba publicada en https://oeis.org/A067838

Modificando lo anterior podemos buscar la igualdad en las tres últimas cifras. Los resultados son estos:

(1491, 12491), (1723, 14723), (4119, 39119), (4437, 42437), (6347, 63347), (6931, 69931), (7817, 79817), (9551, 99551), (12083, 129083), (12637, 135637), (13647, 147647), (15103, 165103), (16637, 183637), (17181, 190181),…

Los números primos los hemos publicado en https://oeis.org/A232104 y sus números de orden los tienes en https://oeis.org/A067841. Intenta reproducirlos.

Con cuatro cifras tenemos que forzar la máquina, porque en Basic resulta lento y en PARI la función prime(k) sólo está definida hasta un tope, que en nuestro caso se supera después de obtener el primo número 24833. Hemos tenido que acudir a la función primenext (o nuestra primprox), pero no daremos detalles. El resultado es, para los números de orden:

9551, 15103, 18697, 23071, 24833, 48229, 53853, 58681, 83819, 91617, 93909, 107647, 115259, 120487, 126497, 156991, 160681, 162857, 177477, 181833, 189143, 194229, 208679, 213703, 221569,…

Y para los números primos:

99551, 165103, 208697, 263071, 284833, 588229, 663853, 728681, 1073819, 1181617,
1213909, 1407647, 1515259, 1590487, 1676497, 2116991, 2170681, 2202857, 2417477,
2481833, 2589143, 2664229, 2878679, 2953703, 3071569,…

Puedes compara uno a uno. Por ejemplo, el primo número 194229 es el 2664229.

Las hemos incorporado a https://oeis.org/A232189 y https://oeis.org/A232188 respectivamente.

No seguimos presentando sucesiones, por nuestro deseo de no cansar. Sólo destacaremos que los primos 1407647 y 1515259, de órdenes respectivos 107647 y 115259 son los primeros en presentar una coincidencia de cinco cifras, y prime(303027)=4303027, prime(440999)=6440999 son los primeros en coincidir en seis.

De los de coincidencia en siete cifras damos el primero: prime(5517973)=95517973, pero le siguen más. Hay que forzar el PARI y con las hojas de cálculo mejor lo olvidamos.

Coincidencia total

Existen primos cuyo número de orden constituye todo su final en cifras. Son los llamados primos automórficos, y están publicados en http://oeis.org/A046883. Por ejemplo, el primo número 9551 resulta ser 99551 y el 303027, 4303027, coincidencia en las últimas cifras.

Operaciones con cifras

Las coincidencias en la suma de cifras similares a las de 499 y 3559 están recogidas en http://oeis.org/A033548 y reciben el nombre de “primos de Honaker”. Puedes ver en la siguiente dirección un ejemplo notable de este tipo de primos:

http://primes.utm.edu/curios/page.php/37778931862957154241011.html

Hemos investigado las coincidencias en el producto de cifras, pero no presenta gran interés, ya que las cifras 0 aumentan las posibilidades de coincidencia. Te lo dejamos como propuesta. Los primeros son: 17, 181, 409, 443, 491, 601, 809, 1013, 1069,…

Concatenaciones

Están publicadas relaciones basadas en la concatenación de cifras:

Concatenar p y prime(p) y que resulte un primo:

http://oeis.org/A084667: La concatenaciones primeras son (separamos con un guión el número de orden y el primo) 2-3, 4-7, 6-13, 12-37, 17-59, 18-61, 23-83, 27-103, 30-113, 35-149, 36-151,…

Concatenación inversa

http://oeis.org/A084669: Si invertimos la concatenación también obtenemos ejemplos:

5-3, 23-9, 67-19, 73-21, 157-37, 307-63, 389-77, 419-81, 449-87, 587-107,…

Hemos investigado también las diferencias entre prime(k) y k, pero o están publicadas o carecen de interés. Ahí tienes un reto.




miércoles, 23 de octubre de 2013

Triangulares con piezas concatenadas


Esta entrada participa en la edición 4.1231056 del Carnaval de Matemáticas, cuyo anfitrión es el blog Scientia.

Quien ha entrado en el mundo de la programación elemental sabe qué es la operación de concatenar cadenas (“strings”): situar sus caracteres uno detrás del otro. Si lo representamos por &, equivaldría a que “Pablo “&”Pérez”= “Pablo Pérez”.

En las hojas de cálculo disponemos de la función CONCATENAR, que une varios textos de celdas en uno =CONCATENAR(A12;B22;G1).

Más difícil es concatenar números naturales, de forma que el resultado sea otro verdadero número en el que cada cifra tenga su valor relativo. Una forma se basa en esta función CONCATENAR. Para ello debemos convertir los números en cadenas, con la función TEXTO, después, concatenarlos, y finalmente, usar la función VALOR para devolverles el carácter numérico. Tiene un inconveniente, y es que TEXTO ha de ir acompañado de un formato, y esto lo complica todo. En PARI no existe ese problema, por lo que puedes definir la concatenación entre números mediante

concatint(a,b)=eval(concat(Str(a),Str(b)))

Un método más matemático, y es el que adoptaremos para la hoja de cálculo es el de multiplicar el número de la izquierda por una potencia de 10 adecuada y sumar luego el de la derecha. Así, concatenar 255 con 182 equivaldría al número 255*10^3+182=255182

¿Qué exponente ha de tener esa potencia de 10? El número de cifras del que está a la derecha. Para encontrar ese número podemos usar el logaritmo decimal, de esta forma: =ENTERO(LOG(N;10))+1. Por tanto, una concatenación numérica vendría dada por la fórmula CONCAT(A;B)=A*10^((ENTERO(LOG(B;10))+1))+B

Esta fórmula fallaría para B=0, por lo que habría que retocarla con un condicional, pero no lo haremos. Basta que se sepa que existe esa función numérica, y en la práctica en este blog usaremos una rutina en Basic.

Se producen muchas curiosidades cuando concatenamos números naturales. Veamos algunas. Es evidente que nos movemos en cuestiones curiosas y no teóricas. Comenzamos generando números triangulares y dejaremos para otras entradas otros casos.

Producir triangulares

Intentaremos concatenar un número n consigo mismo o con otros relacionados con él a fin de conseguir un número triangular. Por ejemplo, 426 concatenado consigo mismo produce el triangular 426426. Para entender mejor lo que sigue, recuerda que todo número triangular se puede expresar como N(N+1)/2, es decir, la mitad de un oblongo N(N+1). En este caso, 426426=923*924/2

Estudiamos algunas concatenaciones concretas:

Triangular concatenando n//n

En primer lugar probaremos a concatenar un número consigo mismo para producir un triangular.

Ya están publicados en http://oeis.org/A068899

55, 66, 5050, 5151, 203203, 255255, 426426, 500500, 501501, 581581, 828828, 930930, 39653965, 50005000, 50015001, 61566156, 3347133471, 5000050000, 5000150001, 6983669836, 220028220028, 500000500000, 500001500001…

Si te llaman la atención los ejemplos del tipo 500…500 y 500…1500…1, piensa que no son nada extraordinarios: 500500=1000*1001/2, que es un triangular y 50015001=10001*10002/2 que es otro. Investiga casos similares.

Triangular concatenando 2n//n

De esta forma se generan los siguientes:

21, 105, 2211, 9045, 222111, 306153, 742371, 890445, 1050525, 22221111, 88904445, 107905395, 173808690, 2222211111, 8889044445, 12141260706, 15754278771, 222222111111, 888890444445, 22222221111111, 36734701836735, 65306123265306, 88888904444445, 163718828185941…

¿Es siempre triangular 2222…1111…? Sí, porque sus dobles se descomponen como 4444…2222=6666..6*6666…7, es decir, números oblongos formados por productos de números consecutivos. En lo que sigue acudiremos varias veces al hecho de que el doble de un triangular es un oblongo, k(k+1).
Se puede demostrar que cada vez que se añade la cifra a los factores aparecen 4444..2222. Lo razonamos con 666*667=444222 pero para más cifras se comprende igual: En efecto, si 666*667=444222, al añadir una cifra tenemos:

6666*6667=(6000+666)(6000+667)=36000000+6000*1333+666*667=43998000+444222=44442222.

Observa que si aumentamos las cifras, 1333 se convertiría en 133….33 y el sumando final 43998000 en 4399…8000… con lo que el efecto de reconstruir 44444 y 2222 sería el mismo.

Algo similar ocurre con la subsucesión 9045, 890445, 88904445,…engendrada por los oblongos 134*135, 1334*1335, 13334*13335,…Son casualidades que ocurren al dividir las potencias de 10 en tercios o en sextos.

Si deseas reproducir los resultados puedes usar este código en PARI

concatint(a,b)=eval(concat(Str(a),Str(b)))
istriang(x)=issquare(8*x+1)
{for(n=1,10^5,a=concatint(2*n,n);if(istriang(a),print(a)))}

Hemos publicado esta sucesión en https://oeis.org/A226742

Concatenación inversa n//2n

¿Y si concatenáramos en sentido contrario, primero el número y después su doble? Pues, aunque menos llamativo, también se construyen triangulares. Son estos:

36, 1326, 2346, 3570, 125250, 223446, 12502500, 22234446, 1250025000, 2066441328, 2222344446, 2383847676, 3673573470, 125000250000, 222223444446, 5794481158896, 12500002500000, 12857132571426, 22222234444446, 49293309858660...

Intenta razonar la aparición de estos números, con un método similar al usado en el anterior caso: 36, 2346, 223446, 22234446,… es porque sus dobles se descomponen como 666…68*666…69. Observa también esta otra subsucesión: 125250, 12502500, 12500025000, que provienen de los oblongos 500*501, 5000*5001,…¿Y el resto? Te lo dejamos por si encuentras una pauta.

Código PARI para este caso:

concatint(a,b)=eval(concat(Str(a),Str(b)))
istriang(x)=issquare(8*x+1)
{for(n=1,10^7,a=concatint(n,2*n);if(istriang(a),print(a)))}

Hemos publicado esta sucesión en https://oeis.org/A226772

Concatenación n//n+1

También se producen números triangulares:

45, 78, 4950, 5253, 295296, 369370, 415416, 499500, 502503, 594595, 652653, 760761, 22542255, 49995000, 50025003, 88278828, 1033010331, 1487714878, 4999950000, 5000250003, 490150490151, 499999500000, 500002500003, 509949509950, 33471093347110, 49999995000000, 50000025000003, 69834706983471…

Se destaca el subconjunto 45, 4950, 499500,….y es porque sus dobles son 9999…*10000… y también los 5253, 502503, 50035003,…¿En qué se parecen entre sí?

Puedes reproducirlos con este código PARI

concatint(a,b)=eval(concat(Str(a),Str(b)))
istriang(x)=issquare(8*x+1)
{for(n=1,10^7,a=concatint(n,n+1);if(istriang(a),print(a)))}

Hemos publicado esta sucesión en https://oeis.org/A226788

Con n+1//n resultan verdaderos monstruos

21, 26519722651971, 33388573338856, 69954026995401, 80863378086336,…

A partir de este último no se han podido encontrar más para n<10^10, o resultados menores que 10^20. Quizás con una herramienta o equipo más potentes se pueda encontrar alguno más fuera de esa acotación. Los lectores quedáis invitados a intentarlo. Podéis usar este código PARI

concatint(a,b)=eval(concat(Str(a),Str(b)))
istriang(x)=issquare(8*x+1)
{for(n=1,10^7,a=concatint(n,n+1);if(istriang(a),print(a)))}

Si disponéis de MATHEMATICA también bastará adaptar este otro, añadido por T.D. Noe a A226789:

TriangularQ[n_] := IntegerQ[Sqrt[1 + 8*n]]; t = {}; Do[s = FromDigits[Join[IntegerDigits[n+1], IntegerDigits[n]]]; If[TriangularQ[s], AppendTo[t, s]], {n, 100000}]; t (* T. D. Noe, Jun 18 2013 *)

No vamos seguir las concatenaciones de este tipo. Las dejamos para quien le apetezca encontrar más ejemplos curiosos. Sí podíamos seguir jugando con las cifras, pero con otras estructuras. Seguimos buscando triangulares.

Otras concatenaciones para triangulares

No hemos intentado todavía concatenar un número con su reverso. Por ejemplo, 59 con 95 forman el triangular 5995. Intentamos una búsqueda por ahí. Antes de presentar resultados hay que advertir que los terminados en 0, como 90, producen resultados ambiguos, en este caso 990. Por eso restringiremos la búsqueda a números no múltiplos de 10. En ese caso resultan estas soluciones:

55, 66, 5995, 8778, 617716, 828828, 35133153, 61477416, 1264114621,…, que forman una subsucesión de http://oeis.org/A003098

Un resultado curioso es si concatenamos un número n por la izquierda con 10*n, porque en ese caso resulta un número duplicado con un cero en el centro. Hemos encontrado estos, que resultan muy vistosos:

41041, 66066, 165301653, 56661056661, 3719010371901, 276816602768166, 13776656013776656, 28265441028265441, 41631576041631576, 47337278047337278, 55666611055666611, 82189446082189446, 91836735091836735, 1185252600118525260, 1960592100196059210…

Como es norma de este blog, evitamos seguir insistiendo en el tema. Con estos ejemplos nuestros lectores pueden abordar otras búsquedas.


jueves, 17 de octubre de 2013

Ciclos(3) Números de Stirling de primera especie

Vimos en la entrada anterior que toda permutación sobre el conjunto {1,2,3,…,n} se puede descomponer en k ciclos, y van desde la identidad, que comprende n ciclos, hasta las permutaciones cíclicas, que se reducen a un solo ciclo.

Si fijamos el número k, podremos plantearnos cuántas permutaciones se pueden descomponer exactamente en k ciclos. Por ejemplo, en el conjunto {1,2,3,4,5}, las permutaciones formadas por dos ciclos son (escribimos sólo los conjuntos invariantes en los ciclos):

(1,2,3,4)(5), (1,2,3,5)(4), (1,2,4,5)(3), (1,3,4,5)(2), (2,3,4,5)(1),
(1,2,3)(4,5), (1,2,4)(3,5), (1,3,4)(2,5), (2,3,4)(1,5), (1,2,5)(3,4), (1,3,5)(2,4), (2,3,5)(1,4),
(1,4,5)(2,3), (2,4,5)(1,3), (1,3,5)(1,2)

Resultan en total 15 configuraciones, pero cada conjunto de cuatro elementos equivale a seis ciclos (permutaciones circulares, factorial de n-1=3). Así, (1,2,3,4) contiene en realidad los ciclos (1,2,3,4), (1,2,4,3), (1,3,2,4), (1,3,4,2), (1,4,2,3)(1,4,3,2) y cada conjunto de tres equivale a dos ciclos (y los de dos, a uno solo), luego tendremos:

S(5,2)=5*6+10*2=50

Al número de permutaciones de n elementos que están formadas por k ciclos le llamaremos número de Stirling de primera especie sin signo, y lo representaremos por S(n,k). Así, el cálculo anterior se puede expresar como S(5,2)=50

Es evidente que S(n,n)=1, pues sólo la identidad contiene n ciclos, y que S(n,1)=(n-1)!, pues representaría a las permutaciones circulares. Además, S(n,0)=0, valor adoptado por definición. Piensa también por qué S(n,n-1)=Cn,2 (número combinatorio).

El resto de números de Stirling se obtiene mediante la fórmula de recurrencia

S(n+1,k)=S(n,k-1)+nS(n,k)

En efecto, si añadimos un elemento nuevo a una configuración en ciclos, puede ocurrir que ese elemento sea un invariante, que forme ciclo consigo mismo. En ese caso puede estar acompañado de S(n,k-1) formas distintas de distribución en ciclos. Por el contrario, si el nuevo lo deseamos integrar en los ciclos ya existentes, lo podemos incluir ocupando n lugares distintos, luego formará nS(n,k) configuraciones diferentes.

Lo entenderás mejor con un ejemplo. Formemos todas las distribuciones de 4 elementos en 3 ciclos:

(1)(2,3)(4), (2)(1,3)(4), (3)(1,2)(4)
(1,4)(2)(3), (1)(2,4)(3), (1)(2)(3,4)

En total resultan 6. En la primera fila hemos añadido el 4 como elemento invariante, añadido a las tres configuraciones de 3 elementos en dos ciclos S(3,2) y en la segunda lo hemos integrado en los ciclos existentes, que sólo tienen una posibilidad, (1)(2)(3) (S(3,1)) y podemos insertarlo en 3 posiciones distintas, luego resultan 3S(3,3). En resumen:

S(4,3)=S(3,2)+3S(3,3)

Esto nos da una posibilidad de calcular estos números. Por convenio se les da valor cero cuando el número de ciclos es cero. En la imagen tienes la tabla conseguida en hoja de cálculo con stirling.xls y stirling.ods (los puedes descargar desde
http://hojamat.es/sindecimales/combinatoria/herramientas/herrcomb.htm#nume)



Comprueba en ella alguna generación por recurrencia. Por ejemplo, 274=50*5+24, 1624=225*6+274

También es elemental la propiedad de que la suma de números de Stirling para un n dado es n!, pues abarcan todas las posibilidades. Comprueba este hecho sumando todos los números de una misma fila en la tabla de la imagen.

Observa que cada fila posee un solo máximo, como ocurre, por ejemplo con los números combinatorios, sólo que aquí no está necesariamente en el punto medio.

Función generatriz

La función generatriz de estos números (con signo), para un n dado es

Fn(x)=x(x-1)(x-2)(x-3)…(x-n+1)=x(n

Con ella resultan los números con signo y prescindiendo de S(n,0). Observa que se trata de una potencia factorial, o factorial de grado n de x. Los números de Stirling con signo obedecen la misma fórmula de recurrencia, pero restando el segundo término. Esto es claro si consideras el desarrollo de

Fn+1(x)=x(x-1)(x-2)(x-3)…(x-n+1)(x-n)= Fn(x)(x-n)

Piensa en un grado cualquiera del desarrollo y lo comprenderás.

Lo podemos comprobar con PARI, por ejemplo en el caso n=6

{print(taylor(x*(x-1)*(x-2)*(x-3)*(x-4)*(x-5),x,7))}

Resultado: -120*x + 274*x^2 - 225*x^3 + 85*x^4 - 15*x^5 + x^6 + O(x^7)

En la imagen puedes estudiar la comprobación con wxMaxima:



Como ves, los ordena en sentido inverso.

Una interpretación sencilla de este desarrollo es el considerar los números de Stirling (salvo el caso de índice cero) como los coeficientes mediante los que una potencia factorial x(n se descompone como combinación lineal de potencias ordinarias xk de x.

jueves, 10 de octubre de 2013

Ciclos (2) – Descomposición en ciclos


Algunas permutaciones dejan invariantes unos elementos, y a otros los van transformando cíclicamente hasta volver al primero. Así, la permutación (1,3,4,2,5,6) deja invariantes 1, 5 y 6, mientras 3 se transforma en 4, este en 2 y el 2 tiene como imagen el 3. A este tipo de permutaciones las llamaremos ciclos. Omitimos definiciones formales, porque aquí nuestro interés es práctico y de aprendizaje de las hojas de cálculo.

Llamaremos ciclo a una permutación que deja invariantes algunos elementos y somete a una rotaciones completas a los restantes. 

Representaremos un ciclo mediante los elementos que se van transformando uno en otro, omitiendo los invariantes. Así, (3,4,2) representaría a la anterior permutación. Podemos someter a los elementos 3,4,2 a una rotación en el orden y representarían el mismo ciclo: (3,4,2) = (4,2,3) = (2,3,4), pero otro tipo de alteración del orden, como (3,2,4) ya representaría un ciclo distinto. Si aplicamos reiteradamente un ciclo, cada elemento irá pasando por todas las posiciones posibles e, inversamente, por una posición dada irán pasando ordenadamente todos los elementos.

Un mismo ciclo se puede representar comenzando con cualquiera de sus elementos si se respeta el orden circular.

Un ciclo de un elemento representa un elemento invariante, y el de dos, una transposición entre dos elementos. Si el ciclo abarca la permutación completa, a esta la llamaremos cíclica.

La propiedad más importante de los ciclos es que toda permutación se puede descomponer en ciclos disjuntos de forma única salvo el orden. Según esto, la del ejemplo podemos representarla como (1,3,4,2,5,6)=(3,4,2)(1)(5)(6). Se suelen ordenar los ciclos por su magnitud, de mayor a menor.

¿Cómo descomponer una permutación en ciclos?

El procedimiento puede ser el siguiente:

Elegimos el elemento 1, y aplicamos la permutación de forma reiterada hasta que la imagen vuelva a ser 1. Como el conjunto es finito, esto se acabará logrando, con lo que ya tendremos el primer ciclo de la descomposición. Buscamos después el siguiente elemento que no pertenezca al ciclo conseguido (si hemos acabado es que la permutación estudiada se reduce a un solo ciclo, es cíclica) y efectuamos la misma operación para obtener el segundo ciclo, y así sucesivamente hasta agotar el conjunto.
Por ejemplo, la permutación (4, 2, 6, 7, 8, 9, 10, 11, 3, 1, 5) nos llevaría al siguiente proceso:
Comenzamos con el 1. Las sucesivas imágenes serían: 1 – 4 – 7 – 10 – 1. Ya tendríamos el primer ciclo (4, 7, 10, 1).

Buscamos el siguiente elemento no estudiado aún: el 2, que se transforma en sí mismo. El siguiente ciclo es, pues, (2)

Siguiente elemento libre: 3, que engendra: 3 – 6 – 9 – 3, formando el ciclo (3, 6, 9)

Por último, con 5 logramos (5, 8, 11)

Hemos terminado: (4, 2, 6, 7, 8, 9, 10, 11, 3, 1, 5) = (4, 7, 10,1) (3, 6, 9) (5, 8, 11) (2)

Como cada ciclo opera sobre elementos disjuntos, esta descomposición es un producto en Sn (ver entrada anterior del blog), en el que los ciclos son permutables y por tanto, no influye el orden.
En este proceso los ciclos que se formen serán disjuntos, pues si dos de ellos tuvieran un elemento común, al aplicar el ciclo sobre él reiteradamente se incluirían todos los elementos, y los ciclos serían en realidad uno solo.

El número de ciclos en que se descompone una permutación varía entre 1, si ella misma es cíclica, hasta n, si se trata de la permutación identidad.

Podemos conseguir que una hoja de cálculo haga lo mismo:


Lo hemos implementado en Excel y Apache OpenOffice (http://hojamat.es/sindecimales/combinatoria/herramientas/herrcomb.htm#ciclos)

Observa que ha creado una fila en la que va tomando nota de los ciclos a los que pertenece cada elemento, y después ha escrito debajo la composición de cada ciclo. Es una tarea un poco larga, por lo que sólo explicaremos los fundamentos, remitiendo después a la hoja ya confeccionada.

Proceso para encontrar los ciclos:

1) Se crean unas memorias que contendrán la información de los ciclos que se van ocupando. Al principio se inician todas a cero.

2) En cada paso del proceso se busca el primer elemento cuyo número de ciclo es 0. Se aumenta en una unidad el número del ciclo, que, por tanto, comenzará en 1. Con un procedimiento similar al usado en la anterior entrada, se aplica reiteradamente la permutación hasta completar el ciclo.

Este paso se da mientras exista un elemento con número de ciclo 0. Para cada elemento, se irá escribiendo en la hoja a qué ciclo pertenece.

3) Localizados los ciclos, se van buscando los elementos de cada uno y se escriben en filas distintas debajo del esquema. Esta parte es más informática que matemática, y la podemos omitir.

Generación aleatoria

Como la hoja de cálculo ofrecida no tiene más objetivo que el de explicar el concepto, se ha añadido la posibilidad de generar aleatoriamente una permutación para comprender mejor la descomposición en ciclos.


Orden de un ciclo

No es difícil entender que el orden de un ciclo es su longitud, ya que los elementos invariantes seguirán siéndolo aunque reiteremos y los cíclicos se irán recorriendo uno por uno y se llegará al primero cuando se recorra toda la longitud:

El orden de un ciclo coincide con su longitud

También es sencillo entender que si una permutación se descompone en ciclos, su orden será el MCM de las longitudes de los mismos.

Así, el orden de (1)(2, 3, 7)(4, 5)(6) será 6, el mcm(1, 3, 2, 1)

En la misma hoja se puede estudiar el orden de los ciclos y el de la permutación total

El orden de los ciclos aparece en la parte izquierda de los mismos










El orden total, MCM de los de los ciclos lo tendrás en la parte derecha

Transposiciones

Llamaremos transposición a un ciclo de orden 2. Todo ciclo, y en consecuencia toda permutación, se puede descomponer en transposiciones. Se comprende sólo con estudiar este desarrollo:

(a, b, c, d, e)=(a, e)(a, d)(a, c)(a, b)

Esta descomposición no es única.

Algunos cálculos

Permutaciones circulares  o cíclicas

Puede ocurrir que una permutación sea en sí misma un ciclo. La llamaremos cíclica o circular. Dentro del grupo simétrico Sn el número de permutaciones cíclicas equivale a (n-1)! Es algo muy conocido y se justifica porque para inventarte una permutación de este tipo en primer lugar has de ordenar todos los elementos, lo que puedes realizar de n! formas diferentes y una vez elegida una, esta representa n circulares idénticas, porque tienes n formas de elegir el primer elemento, luego el número es n!/n=(n-1)!
Permutaciones de n elementos que son ciclos de orden k

Deberemos elegir k elementos para el ciclo y dejar los restantes n-k fijos. El elegirlos nos supone Cn,k formas y dentro de los elegidos, (k-1)! ciclos posibles, luego el número total de ciclos de orden k será



Permutaciones reducidas

Son aquellas que no dejan fijo ningún elemento, las que en la descomposición en ciclos ninguno de ellos tiene orden 1. Son las conocidas como desarreglos (o desbarajustes) Los puedes estudiar en http://hojamat.es/sindecimales/combinatoria/teoria/teorcomb.pdf

En esa dirección hemos explicado su fórmula



jueves, 3 de octubre de 2013

Ciclos (1) Grupo simétrico


Solemos considerar las permutaciones como las distintas ordenaciones de un conjunto. Existe otro punto de vista alternativo, que es muy fructífero, y es considerarlas como  aplicaciones biyectivas del conjunto en sí mismo. Así, la permutación S=(3,2,1,4) se puede considerar derivada de (1,2,3,4) (orden principal) mediante la aplicación S(1)=3, S(2)=2, S(3)=1 y S(4)=4. Así la interpretaremos aquí.

Como la naturaleza de los elementos no influye en la teoría, imaginaremos que se trabaja siempre sobre el conjunto {1,2,3,4,…,n} y que una permutación como S=(5,1,3,2,…) se interpreta: S(1)=5, S(2)=1, S(3)=3, S(4)=2,…La escribimos así, como un conjunto de imágenes, por comodidad de escritura, pero te la puedes imaginar con los orígenes sobre ellas formando una matriz de dos filas, con lo que cae cada imagen debajo del origen

Las permutaciones se pueden componer como todas las aplicaciones, usando una de ellas  y después la otra sobre las imágenes de la primera. No es fácil verlo en este caso, por lo que usaremos un ejemplo:
Sean G=(4,2,5,3,1) y H=(1,4,3,5,2), o escribiendo orígenes:

G:







H:








La composición H*G (escribiendo de derecha a izquierda) se formaría así (hay que estar atentos):

H*G(1)=H(G(1))=H(4)=5   H*G(2)=H(G(2))=H(2)=4   H*G(3)=H(G(3))=H(5)=2
H*G(4)=H(G(4))=H(3)=3   H*G(5)=H(G(5))=H(1)=1, con lo que resultaría
H*G=(5,4,2,3,1)  Como ves, no es nada intuitivo.

Es fácil demostrar que las n! permutaciones forman grupo para esta composición, siendo la identidad E=(1,2,3,4,…, n) y el inverso la permutación que convierte las imágenes en orígenes. A este grupo lo llamaremos Grupo simétrico para {1,2,3,…, n} y lo representaremos como Sn.

¿Te apetecería comprobar composiciones de permutaciones con hoja de cálculo? Te damos unas ideas:

Puedes escribir en filas distintas, una debajo de la otra, las dos permutaciones G y H (en la imagen, filas 12 y 16) y después la composición de ambas (fila 20), que es la única que contendrá fórmulas. El resto de la hoja sólo contiene datos.

Es muy interesante estudiar qué fórmula podemos implementar en la fila 20 de la imagen. Explicaremos la primera celda, B20, y después bastará extenderla al resto de la fila. La fórmula adecuada es:

=ÍNDICE($B16:$J16;1;B12)

La función ÍNDICE elige en una lista el elemento que presenta un número de orden. En este caso la lista es la permutación H. De ahí que hayamos usado el rango $B16:$J16. Después hay que indicar la fila del rango. Como solo hay una fila, hemos escrito un 1. El siguiente parámetro es el número de orden, y aquí va a residir el truco: Hemos de elegir en H el elemento que ocupe el lugar que indica G en la misma columna. Insistimos en que esto, al principio, no es fácil. Hemos escrito en la fórmula “B12”, que es la primera imagen de G, un 6, luego deberemos ir a H y buscar el sexto elemento, un 8, y por eso en la celda B20 aparece ese 8.

Como puede que te siga costando, te ofrecemos esta hoja en la dirección

http://hojamat.es/blog/compopermu.zip

Como el grupo simétrico opera sobre un conjunto finito (cardinal n!), la aplicación reiterada de una sustitución consigo misma (potencia de la permutación) llevará a la repetición de resultados, es decir, a que dos potencias distintas sean equivalentes:

Pm=Pn

Si suponemos, por ejemplo que m<n, entonces esa igualdad, si le aplicamos la permutación inversa para simplicar, se convertiría en

Pn-m=Pk=E (identidad)

Toda permutación, aplicada un número determinado de veces, se convierte en la identidad.

El número mínimo para el que eso ocurre recibe el nombre de orden de la permutación. En los ejemplos de arriba, el orden de G es 4, y el de H es 3. Compruébalo. Esta idea nos servirá en lo que sigue.

Una propuesta: En la imagen se ha compuesto G consigo misma, y el conjunto total parece haberse dividido en tres subconjuntos, cada uno de los cuales parece que va “a su aire”, sin mezclarse con los otros. ¿Cuáles son?


En otra entrada los relacionaremos con los ciclos. Te puedes adelantar en su estudio.



viernes, 27 de septiembre de 2013

Triangulares de lado par

Esta entrada participa en la Edición 4.123105 del Carnaval de Matemáticas, cuyo anfitrión es el blog Cifras y Teclas.

Los números triangulares 3, 10, 21, 36,…que nos aparecieron en la anterior entrada (http://hojaynumeros.blogspot.com.es/2013/09/igualdad-de-sumas-de-cuadrados-con-un.html) son aquellos cuyo número de orden es par: 3=T(2)=2*3/2; 10=T(4)=4*5/2; 21=T(6)=6*7/2,…

Si aplicamos la expresión algebraica de un número triangular, la de estos será

T(2n)=2n(2n+1)/2=n(2n+1)=2n2+n

Los podemos representar como formados por filas de triángulos de 3 elementos separados por otros elementos aislados. En la imagen hemos representado el 36, es decir T(8)


Observa que está formado por 10 triángulos de tres elementos y 6 puntos aislados. Nos sugiere que un número triangular de orden par equivale al triangular de orden mitad multiplicado por 3 más su triangular anterior, es decir:

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

Es fácil demostrarlo por inducción: T(2)=3*T(1)+T(0)=3*1+0=3; T(4)=3*T(2)+T(1)=3*3+1=10…

Probemos con T(2(n+1))=T(2n)+(2n+1)+(2n+2) por definición de número triangular. Si aceptamos la hipótesis para n, tendremos:

T(2(n+1))=3*T(n)+T(n-1)+(n+1+n+1+n+1)+n=3*T(n)+3*(n+1)+T(n-1)+n=3*T(n+1)+T(n), luego la hipótesis se cumple para n+1.

La fórmula T(2n)=3T(n)+T(n-1) es válida

Adaptamos una demostración visual contenida en http://math.berkeley.edu/~rbayer/09su-55/handouts/ProofByPicture-printable.pdf



Así se ve  mejor la relación.

En realidad, estos números son los triangulares que no pueden ser hexagonales. Se sabe que todo hexagonal es triangular, porque su expresión es H(n)=n(2n-1)=2n(2n-1)/2=T(2n-1), pero el número de orden del triangular es 2n-1, impar, luego los que no son hexagonales formarán la sucesión que estamos estudiando: 3, 10, 21, 36,…, que está contenida en http://oeis.org/A014105

Expresión como diferencia entre una suma de pares y otra de impares

En la página OEIS enlazada se destacan estas relaciones:

3=4-1
10=6+8-1-3
21=8+10+12-1-3-5
36=10+12+14+16-1-3-5-7

No se justifican, y esto es una invitación a que lo hagamos nosotros. En primer lugar generalizamos.

Llamamos a nuestra sucesión TT(n)

TT(n)=T(2n)=SP(2(n+1),n)-SI(1,n)

Con SP(2(n+1),n) deseamos expresar que se toman n números pares a partir de 2(n+1) y con SI(1,n) que se suman los primeros n impares. Lo intentamos demostrar por inducción:

TT(n+1)=TT(n)+2n+1+2n+2, como ya sabemos por los párrafos anteriores. Si usamos la hipótesis para n queda:

TT(n+1)=2(n+1)+2(n+2)+…+2(2n)-1-3-5-7…- (2n-1)+2n+1+2n+2

Para construir la nueva suma de pares hay que añadir 2(2n+1)+2(2n+2) y eliminar 2(n+1). La diferencia es 4n+2+4n+4-2n-2=6n+4, que ha de salir de los nuevos sumandos 2n+1+2n+2=4n+3, que equivalen a 6n+4-(2n+1), siendo el paréntesis el nuevo impar que habría que restar, luego la estructura de la fórmula se mantiene y es correcta.

Usamos el álgebra

TT(n)=T(2n)=n(2n+1)=2n2+n
SP(2(n+1),n)=(2(n+1)+2(2n))*n/2=3n2+n
SI(1,n)=n2 como es sabido.

Por tanto, se verifica la diferencia.

Demostración visual

Ahí te la dejamos para el caso de 36. Analízala e intenta reproducirla para otros casos:



Esta construcción sólo es posible porque el triángulo es de orden par.

Otros desarrollos

Se cumple que TT(n)=T(2n)=3+7+11+15+…(4n-1), es decir, que es la suma de impares tomados de 4 en 4 a partir de 3. Si sabes verlo ( mira sólo las bolas rojas de la figura de la  derecha), en la anterior imagen se muestra esa suma con claridad. Puedes justificarlo algebraicamente:

3+7+11+15+…(4n-1)=(3+4n-1)*n/2=(4n+2)*n/2=n(2n+1)=TT(n)

Este desarrollo se puede escribir así:

TT(n)=22-12+42-32+62-52+82-72

que es una forma elegante de terminar esta entrada.






jueves, 19 de septiembre de 2013

Igualdad de sumas de cuadrados con un escalón

Repasando algunas propiedades curiosas me encontré en hojamat.es con esta:

365=102+112+122 = 132+142

La pregunta inmediata que me surgió fue la de si existían otros números con la misma propiedad o similar. Los encontré en OEIS (http://oeis.org/) pero  no descubriré dónde por ahora, aunque los lectores experimentados sabrán hallarlos. Con esto quiero aclarar que lo que se consiga en esta entrada está ya descubierto, pero el objetivo (tan frecuente en este blog) es intentar la concurrencia de métodos y el uso de la hoja de cálculo.

Nos acercaremos al problema con el planteamiento de dos preguntas:

¿Existen más números en los que la suma de tres cuadrados consecutivos coincida con los dos siguientes?
¿Qué ocurrirá si aumentamos o disminuimos el número de cuadrados?

Es probable que hayas pensado en el 25=32+42=52, luego parece que sí existen casos similares. Lo vemos.

Acercamiento con la hoja de cálculo

Si concretamos un número de inicio n y un número de cuadrados igual a k+1 en el primer miembro y a k en el segundo, con estas sencillas líneas podemos descubrir si existen otros casos:

For i=1 to 10000 (por ejemplo)
‘calcula el primer miembro
a = 0
For l = 0 To k
a = a + (i + l) ^ 2
Next l

‘calcula el segundo miembro
b = 0
For l = k + 1 To 2 * k
b = b + (i + l) ^ 2
Next l

‘Los compara y si son iguales lo comunica
If a = b Then
Msgbox(n)
Msgbox(a)
End If
Next i

Hemos tomado como tope 10000, pero después habrá quizás que ampliar. Implementa esto como rutina en tu hoja de cálculo y descubrirás que para cada k existe una solución y sólo una.

Recogemos en una tabla los primeros resultados:



Ahora ya descubrimos que los resultados coinciden con los recogidos en http://oeis.org/A059255, pero no podemos dejarlo así, porque en la tabla aparecen números triangulares y múltiplos de 5. Algo habrá detrás. Intentamos descubrirlo.

Un poco de Álgebra

Si sospechamos que las soluciones son únicas para cada valor de k, es probable que exista una relación algebraica sencilla. En efecto, aunque los principios son algo farragosos, con paciencia algebraica llegaremos a la meta. No damos todos los detalles y te dejamos practicar:

Primera suma de cuadrados A

Suponemos que comienza en n y termina en n+k (k+1 sumandos), es decir:


Segunda suma de cuadrados B


Observa cómo lo hemos escrito, para que te aproveches de la fórmula para la suma de números naturales consecutivos.

Desarrolla cada suma separando los coeficientes de n2, de n y los independientes. Como esta tarea te puede llevar a la desesperación, usa las dos populares fórmulas:



Calcula A-B para igualarla a cero y ve encontrando los coeficientes:

De n2 te deberá resultar a=1. Es fácil verlo.

De n, si sabes usar la primera fórmula ofrecida, con algún retoque, te dará b=-2k2

El coeficiente independiente es un poco más complejo de encontrar correctamente. Puedes usar la suma de cuadrados de los primeros naturales. Deberá resultar c=-2k3-k2

Así que la ecuación para calcular n quedaría así:


Su discriminante es el cuadrado de 2k(k+1), lo que nos garantiza una solución entera. Tomamos la positiva y, efectivamente n=k(2k+1), que es el número triangular de orden 2k, como habíamos sospechado al principio.

Para cada valor de k, la igualdad de cuadrados pretendida ocurre para n=k(2k+1), el número triangular correspondiente a 2k, y es por tanto la solución única.

Hemos resuelto con rigor lo que sospechábamos tras el uso de la hoja de cálculo. Esto es imprescindible: las herramientas informáticas sólo proponen o dan pistas, pero no demuestran nada. A veces olvidamos esta limitación.

Expresión de la suma

Ahora podemos calcular el valor de las dos sumas. Sustituimos k(2k+1) en una de ellas, y sacando factor común nos resulta

A(k)=k(k+1)(2k+1)(12k2+12k+1)/6. 

Por ejemplo, para k=3 resulta 3*4*7*(12*9+12*3+1)=2030.

El problema se ha reducido a una cuestión algebraica.

Carácter de múltiplos de 5

Es fácil ver que aunque la expresión propuesta tiene denominador 6, su resultado será entero, porque ese ha sido su origen, y porque los factores k(k+1)(2k+1) garantizan un factor 2 y un 3. Estúdialo, que no es difícil de descubrir.

¿De dónde sacamos el factor 5?

Lo podemos ver mediante congruencias módulo 5. El valor de k puede presentar respecto al 5 los restos 0, 1, 2, 3 o 4.

Resto 0: En ese caso k contiene el factor 5

Resto 1: El factor 12k2+12k+1 será múltiplo de 5

Resto 2: Contamos con el factor 2k+1

Resto 3: El factor 12k2+12k+1 sería congruente con 12*9+12*3+1=108+36+1=145, múltiplo de 5

Resto 4: Nos proporciona el factor deseado el valor de k+1

En todos los casos la suma de cuadrados será un múltiplo de 5.

Hemos terminado con éxito. Nuestras sospechas tenían fundamento y la sucesión 25, 365, 2030, 7230, 19855, 45955, 94220, 176460… representa simplemente los distintos valores de un polinomio de quinto grado definido sobre los números naturales.

jueves, 12 de septiembre de 2013

Tus funciones, disponibles en todas las hojas de cálculo (2)


Procedimiento para Apache OpenOffice y LibreOffice

En la entrada anterior (http://hojaynumeros.blogspot.com.es/2013/09/tus-funciones-disponibles-en-todas-las.html) proponíamos un procedimiento para extender tus funciones a cualquier hoja de cálculo que abras. Propusimos el procedimiento de crear e instalar un complemento para Excel. Si pasamos a Apache OpenOffice o LibreOffice, la creación de complementos (extensiones) se complica, porque está orientada al uso de terceros. Como aquí sólo nos interesa que tengas disponibles tus funciones en cualquier archivo nuevo que crees para tu propio uso, desarrollaremos un método mucho más sencillo.

Usaremos el código que se presentó en la anterior entrada para descomponer un número natural en sus factores primos. Cópialo y guárdalo, porque te servirá en esta entrada.

Una vez decidido el código deberás pasarlo a Apache OpenOffice o a LibreOffice. El procedimiento es similar en ambos programas, y sólo añadiremos los detalles específicos de LibreOffice si fuera necesario.

Abre una hoja nueva. Acude al menú Herramientas y en él elige Macros, después Organizar macros y finalmente OpenOffice Basic (o LibreOffice Basic)



Observa que tu archivo aparecerá en la parte baja (en la imagen aún no tiene título). Tú has de ir a la superior, “Mis macros - Standard”. Pide crear un módulo nuevo con el botón “Nuevo” de la parte derecha. Si ya existe uno, como ocurre en la imagen, le asignará el nombre de Module 2 u otro similar.

Abre el nuevo módulo que has creado (pinchando sobre su nombre) y pégale el código que desees, como el que te ofrecimos en la anterior entrada. Acepta y cierra todo.

Ahora puede ser un buen momento para comprobar si todo va bien. Vuelve a la hoja. Escribe cualquier número entero, por ejemplo 366220 en la celda B4. En otra celda escribe =factores(B4). Si ves escrito [2,2][5,1][18311,1] es que tu función se comporta bien. La interpretación de lo que ves es que el primer número de cada corchete es el factor primo y el segundo el exponente al que está elevado. En este caso 366220=22*5*18311. No intentes cálculos con esta expresión, que tiene formato de texto.

Como has usado el contenedor “Mis macros”, todo lo que has construido hasta ahora lo encontrarás implementado en cualquier libro que abras. Prueba a hacerlo. Cierra el archivo, abre uno nuevo, y en cualquier celda escribe un número entero y aplícale la función factores (no aparecerá en ningún catálogo. Te lo tienes que aprender)

En la imagen se ha descompuesto el número 491300 en factores dentro de un archivo recién creado:



Ahora inténtalo tú.

lunes, 9 de septiembre de 2013

Tus funciones, disponibles en todas las hojas de cálculo (1)


Procedimiento para Excel

El autor de esta entrada necesita frecuentemente descomponer un número en factores primos. Como esta función no viene implementada en la hoja de cálculo, ha tenido que programarla en el Basic de Excel. El problema que surge es que sólo está disponible en la hoja que contiene el código y no en cualquier otra que se cree. Esto tiene un remedio, y es la construcción de un complemento de Excel que nos permita acceder a esa factorización cuando se abra cualquier hoja.

Complementos de Excel

Para saber de qué estamos hablando, entra en las Opciones de Excel y busca Complementos. En la ventana que se abre podrás comprobar qué complementos tienes instalados en tu equipo














(el volcado de pantalla corresponde al Excel 2007 sobre Windows XP, una querida antigüedad,
pero igual te funciona en Excel 2010)

En la imagen vemos que el autor tiene instaladas dos herramientas de análisis, el Solver y un complemento suyo titulado Micomplemento. Como habrás comprendido, los cuatro contienen funciones y rutinas que no vienen implementadas en Excel originariamente.

Crea tu propio complemento

Al final de esta entrada se ha incluido el código mínimo necesario para implementar la descomposición factorial de un número entero (dentro de los límites de Excel y del propio código, no le pidas milagros) como un regalo del autor a sus lectores.

Pasos a seguir

En primer lugar tienes que escribir tus funciones. En el caso que estamos desarrollando basta con que las copies desde el final de esta entrada. Abre un archivo nuevo y pega en él las definiciones que desees según te explicamos a continuación:

Una vez decidido el código deberás pasarlo a Excel. Para ello acude a la pestaña Programador de la cinta de opciones. Si no la tienes visible deberás activarla en Opciones de Excel – Más frecuentes.

Entras en el ámbito de programación mediante el primer botón de la ficha Programador:



Te aparecerá el acceso a las macros que utiliza tu hoja de cálculo en este momento:



A ti no te aparecerá la referencia a Micomplemento. También, si usas la versión 2010 los colores podrán cambiar, pero el contenido será el mismo.

Ahora debes crear un módulo que aloje tu código. Pide Insertar – Módulo y Excel lo hará con el nombre de Modulo 1 (salvo que tengas otro anterior).

En la hoja en blanco que aparece pega el código que habrás copiado desde esta entrada o que haya sido creado por ti:



Ahora puede ser un buen momento para comprobar si todo va bien. Guarda el archivo nuevo como Libro habilitado para macros. Vuelve a la hoja. Escribe cualquier número entero, por ejemplo 366220 en la celda B4. En otra celda escribe =factores(B4). Si ves escrito [2,2][5,1][18311,1] es que tu función se comporta bien. La interpretación de lo que ves es que el primer número de cada corchete es el factor primo y el segundo el exponente al que está elevado. En este caso 366220=22*5*18311. No intentes cálculos con esta expresión, que tiene formato de texto.

Lo que has construido hasta ahora sólo te vale para el archivo que contiene el código. Para que se active en cualquier hoja hay que convertirlo en complemento.

Instalación del complemento

Borra si acaso los cálculos efectuados y vuelve a guardar el libro como complemento de Excel. Puedes cambiarle el nombre a factores. Guíate por la imagen:



Observa que Excel te lleva a la carpeta Complementos, que es donde debe estar alojado el tuyo.
No cambies esa carpeta, que si no, no podrás instalar el complemento.

Puedes acceder a la ruta en la que está situada la carpeta:



En Office 2010 se te muestra también toda la ruta, que es distinta a la anterior:





Es interesante conocer esa ruta, por si deseas borrar el archivo.

Instalación

Ya sólo te falta instalar tu complemento. Vuelve a las opciones de Excel y busca Complementos. En la parte inferior de la ventana tendrás el botón Ir… Úsalo y descubrirás que tu trabajo está preparado ya para ser usado:



Activa la casilla de verificación que está junto al nombre Factores y pulsa Aceptar. Si todo ha ido bien, cuando abras Excel de nuevo, en el catálogo de funciones definidas por el usuario dispondrás de la función factores:



Las otras dos funciones ajusta y sacaprimos son auxiliares y no tienes por qué usarlas, ya que quizás no interpretarías bien su resultado.

Ahora define tú un complemento propio ¡Suerte!


Código en Basic


Global primo(50), expo(50)
Global numomega

Function ajusta$(a)
Dim d$
d$ = Str$(a)
While Left$(d$, 1) = " "
d$ = Right$(d$, Len(d$) - 1)
Wend
ajusta$ = d$

End Function

Public Function sacaprimos(n)
Dim f, a, e

a = n
f = 2: i = 0: numomega = 0
While f * f <= a
e = 0
While a / f = Int(a / f)
e = e + 1
a = a / f
Wend
If e > 0 Then
numomega = numomega + 1
primo(numomega) = f
expo(numomega) = e
End If
If f = 2 Then f = 3 Else f = f + 2
Wend
If a > 1 Then
numomega = numomega + 1
primo(numomega) = a
expo(numomega) = 1
End If
sacaprimos = numomega

End Function

Public Function factores(n) As String
Dim a, nn
Dim s$

'saca factores en forma de string
a = n
nn = sacaprimos(a)
s$ = ""
For i = 1 To numomega
s$ = s$ + "[" + ajusta(primo(i)) + "," + ajusta(expo(i)) + "]"
Next i
factores = s$
End Function