jueves, 2 de marzo de 2017

Números piramidales(1) Definiciones y fórmulas.


Repaso de los números poligonales

Los números piramidales son una extensión natural de los poligonales, por lo que puede ser adecuado comenzar con un repaso de estos. Lo más importante que hay que recordar ahora es su formación recurrente. Por ejemplo, los triangulares se forman añadiendo un lado nuevo a los ya formados en el anterior triangular, como queda claro en la imagen:



Es decir, que

t1 = 1 = 1
t2   = 1+2 = 3
t3  = 1+2+3 = 6
t4  = 1+2+3+4 = 10

En general, Tn+1 =Tn+n, lo que convierte a los triangulares en sumas de números consecutivos. Por eso Tn=1+2+3+…+n=n(n+1)/2.

Hemos preparado una hoja de cálculo con Calcupol, una calculadora especializada en números figurados, que puedes descargar desde

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

En ella, con la tecla POL puedes encontrar el k-ésimo número triangular. Por ejemplo, con la secuencia de teclas  3   POL   12   = encontrarás el triangular número 12, que resulta ser 78, como se ve en la imagen:



El presentar la calculadora en este momento se justifica porque la vamos a usar en toda una serie de entradas. Otra utilidad que tiene es la de identificar si un número es de un tipo dado o no. Observa la celda Tipos. Si fijas el tipo en Triangular (usa la lista desplegable) podrás averiguar si el número que escribas en pantalla es o no triangular, con la tecla ES, o bien encontrar el próximo o el anterior con PROX y ANT. Ya las iremos viendo. Fija el tipo en triangular, escribe 75 y pulsa la tecla ES. Te responderá que no es de ese tipo y en pantalla aparecerá un cero. Si hubieras escrito 78, te devolvería 12, que es su número de orden, o lado.

De igual forma se definen los números cuadrados, pero ahora, a cada elemento le añadimos dos lados, formando lo que se llama un gnomon, de fórmula 2n+1:



En la figura se observa la generación de cada número cuadrado:

C1 = 1 = 1
C2 = 1+3 = 4
C3 = 1+3+5 = 9
C4 = 1+3+5+7 = 16

Los primeros números cuadrados son: 1, 4, 9, 16, 25,… como bien sabemos, y, según se acaba de ver, son suma de impares consecutivos. Fija la calculadora en el tipo Cuadrado. Escribe un 1 en pantalla y ve pulsando reiteradamente la tecla PROX. Obtendrás esa secuancia 1, 4, 9, 16, 25,… En la imagen se había llegado al 36:



El resto de poligonales se define de la misma forma que los cuadrados y los triangulares, como números que forman pentágonos, hexágonos, o de más lados. Basta ir añadiendo n-2 lados nuevos, 3 para los pentagonales, 4 para los hexagonales, y así con los demás.


Escribe en la calculadora que el tipo es Poligonal y el orden 5 y podrás analizar los pentagonales. Con la tecla PROX (o la ANT) puedes recorrerlos. Comprueba que los primeros pentagonales son 1, 5, 12, 22, 35, 51, 70, 92,… En la imagen se ha llegado, con la tecla PROX, al siguiente a 92, que es el 117




Con este repaso ya estamos en condiciones de comenzar el estudio de los números piramidales.


Números piramidales

Al igual que los poligonales se generan añadiendo a cada uno de ellos lados nuevos, los piramidales se forman mediante números poligonales nuevos que van haciendo el papel de bases de una pirámide.

Tomemos, por ejemplo, los números triangulares, 1, 3, 6, 10,… Imaginemos que comenzamos por 1 (siempre se comienza con él), que hará el papel de vértice, y después le adosamos como base el siguiente triangular, 3, y después el siguiente, 6, y así hasta que obtengamos el orden deseado. Lo puedes ver en la imagen:


Para ver otras imágenes similares para los casos de cuadrados, pentagonales o hexagonales entra en Mathword:

http://mathworld.wolfram.com/PyramidalNumber.html

A los números poligonales de orden 3 (triangulares) les llamaremos tetraédricos, a los de orden 4, piramidales cuadrados, y al resto, pentagonales, hexagonales, y así hasta el orden que deseemos. Usamos la palabra orden para no crear confusión con la calculadora que ofrecemos. Llamaremos lado al número de poligonales que se acumulan.

Con nuestra calculadora calcupol podemos seguir cualquiera de estas sucesiones. Por ejemplo, para ver los piramidales hexagonales, fijamos el tipo en Piramidal y el orden en 6. Escribimos un 1 en pantalla y vamos pulsando la tecla PROX. Aparecerán los piramidales 1, 7, 22, 50,…En la imagen hemos llegado hasta 372:


Puedes comprobar los resultados obtenidos en la dirección http://oeis.org/A002412

Si tienes un piramidal en pantalla, como puede ser el hexagonal 715, de lado 10, con la secuencia de teclas  –  ANT  =  puedes restarle el anterior, de lado 9, y te dará 190, que es precisamente el poligonal de tipo 6 y lado 10. Para comprobarlo usa la secuencia de teclas  6   POL  10, y te resultará 190.

Ya estamos en condiciones de sintetizar la generación de los números piramidales:

El número piramidal de orden k y lado n equivale a la suma del piramidal de idéntico orden y un lado menos y el poligonal de mismo orden y lado.

Si nombramos los piramidales como PIR y los poligonales como POL, se podría expresar así:

PIR(N,K)=PIR(N-1,K)+POL(N,K)

Por ejemplo (lo puedes ir calculando con Calcupol): El octavo piramidal hexagonal es 372, y el poligonal hexagonal de lado nueve es 153. Si los sumamos obtenemos el noveno piramidal hexagonal, ya que 372+153=525, que es el piramidal esperado.

Fórmula

Existe una expresión general para calcular PIR(N,K). De todas las versiones publicadas nos quedamos con la siguiente:


Es un polinomio de tercer grado, al igual que los poligonales se expresan con uno de segundo

(ver http://www.hojamat.es/sindecimales/aritmetica/teoria/teorarit.pdf)

Tienes una demostración en http://oeis.org/wiki/Pyramidal_numbers

Lo comprobamos con 372, pirámide hexagonal de lado 8:

PIR(8,6)=(3*64+512*4-8*1)/6=2232/6=372

Con un poco de Álgebra, se puede extraer de esta fórmula el factor n(n+1)/2, que es, precisamente, el número triangular del mismo lado que el piramidal que estamos calculando. La fórmula quedaría entonces así:


Lo comprobamos: El vigésimo piramidal octogonal, según Calcupol, es 8190. El triangular del mismo lado 20, 210. Aplicamos la fórmula:

8190=210*(20*6-3)/3=210*117/3=24570/3=8190

Nos hemos detenido mucho en el repaso de los números poligonales y en el uso de la calculadora Calcupol, por lo que se deja para la siguiente entrada de la serie el estudio de los números piramidales de orden 3, o tetragonales.

lunes, 20 de febrero de 2017

Productos cartesianos condicionados con Cartesius (1) - Variaciones


Iniciamos una serie de entradas que estará basada en “Cartesius”, una herramienta implementada en hoja de cálculo para construir productos cartesianos condicionados, no sólo las clásicas Variaciones, Combinaciones y Permutaciones, sino otros más complejos, como particiones de un número o arreglos que cumplan condiciones específicas, como que el segundo elemento sea promedio de los dos primeros.

Introducción a Cartesius

Esta herramienta la puedes descargar desde

http://www.hojamat.es/sindecimales/combinatoria/herramientas/herrcomb.htm#cartesius

Está implementada en Excel y LibreOffice Calc, con una fiabilidad bastante aceptable, aunque quizás necesite ligeros retoques.

Actúa sobre conjuntos numéricos (hasta doce de ellos), iguales o diferentes, que ocupan cada uno una columna. Por ejemplo, en la imagen se van a combinar dos conjuntos de números pares con otro de números primos:


Sobre ellos se construirá un producto cartesiano que, si no se añaden condiciones, estará formado en este caso por 216 arreglos de tres elementos cada uno. Aquí tienes los doce primeros, que seguirían hasta un total de 216:



Este proceso no tiene interés si no se añaden algunas condiciones. Existen gran variedad de ellas en Cartesius. Las básicas definen los conjuntos y las demás condicionan el producto cartesiano.

Por ejemplo, sobre los conjuntos de arriba se puede exigir que la suma de los elementos sea 17. Esto se consigue en la columna de condiciones, que será el objetivo principal de estas instrucciones previas:



En este ejemplo se construyen los conjuntos, se impone además que la suma sea igual a 17, y se exige, por simplificación, que los elementos estén ordenados en orden creciente. Más adelante explicaremos la sintaxis de cada tipo de condición. Con estas conseguiríamos tres soluciones:


Este es en esencia el trabajo de esta herramienta: la construcción de productos cartesianos de conjuntos numéricos y su posterior condicionamiento. En esta serie de entradas te iremos dando la explicación necesaria para cada ejemplo, remitiéndote, para un estudio más sistemático, a la Instrucciones de uso de la herramienta, que puedes descargar desde la dirección

http://www.hojamat.es/sindecimales/combinatoria/herramientas/cartesius.pdf



Productos cartesianos condicionados

Antes de construir los primeros arreglos con Cartesius (en esta entrada serán variaciones), recordamos conceptos:

Producto cartesiano

El producto cartesiano de dos conjuntos A y B es otro conjunto cuyos elementos son todos los pares posibles formados por un elemento de A y otro de B en ese orden. Se representa como A×B


Imaginemos ahora productos cartesianos de un conjunto consigo mismo o con otros, pero que puede contener varios factores. Por ejemplo, este es el producto cartesiano A×A×A siendo A={1,2}


Una definición alternativa de producto cartesiano es el conjunto de formas de elección de un elemento de cada conjunto de los que forman el producto. Estos son los conjuntos básicos sobre los que trabajaremos. Por efectividad, sólo se estudiarán conjuntos de números naturales. Si ahora les imponemos condiciones (más adelante aprenderás cómo), obtendremos, por ejemplo, combinaciones con repetición, ya estudiadas en Combinatoria:


Con otro tipo de condiciones podemos también obtener particiones de un número en sumas. Aquí tienes las particiones del número 11 en sumas de impares:


A lo largo de varias entradas aprenderemos el manejo de la hoja Cartesius mediante ejemplos, independientemente de la lectura directa de las Instrucciones de uso. Comenzaremos con la aplicación de esta herramienta a los problemas clásicos de la Combinatoria.



Recorrido por los problemas

Dedicaremos varias entradas a los arreglos básicos de la Combinatoria, pero a cada uno le añadiremos condiciones que no suelen figurar en los libros de texto. Simultáneamente nos iremos familiarizando con los formatos de las condiciones en Cartesius.

Variaciones con repetición

Recordamos que un producto cartesiano es el conjunto de formas de elección de un elemento de cada conjunto de los que forman el producto. Así, del conjunto {1, 2, 3} multiplicado por sí mismo tres veces obtendríamos este producto cartesiano:



Hay 27 formas de elegir un elemento de cada conjunto factor. Coincide con 3^3=27. En general, si el conjunto posee m elementos y lo tomamos n veces, el número de elementos del producto cartesiano sería

Esta fórmula la conocemos desde la Enseñanza Media, y es la correspondiente a las variaciones con repetición. En efecto, la operación básica de Cartesius es formar estas variaciones, a las que también podríamos nombrar como producto cartesiano sin condicionar. Si después imponemos condiciones, obtendremos combinaciones, permutaciones, particiones, y otros subconjuntos del producto cartesiano que no reciben nombre, como sumas de cuadrados con total dado, descomposición de un número en suma de triangulares y otros similares que iremos viendo.

Al ser la operación más sencilla, se obtiene escribiendo sólo dos condiciones. Por ejemplo, para formar las variaciones con repetición del conjunto {1,2,3,4} tomadas de 3 en 3 bastarían estas:

XTOTAL=3
XT=1..4

No necesita más, pues si no le indicamos nada, repite y tiene en cuenta el orden (producto cartesiano) Es el arreglo básico en Cartesius.

Tu primer arreglo de números

Abre Cartesius. Busca su primera hoja Planteamiento. Si contiene datos, puedes usar los botones Borrar condiciones y Borrar datos, para verlo todo limpio. Escribe después en la zona de condiciones, celda N10, la condición XTOTAL=3. Significa que el conjunto que vas a definir lo combinarás consigo mismo en un producto cartesiano de tres factores. El TOTAL se refiere al número de columnas que se rellenarán.

En una celda más abajo, la N11, escribe: XT=1..4. Esto significa que trabajarás en todas las columnas con los números que van del 1 al 4.



Si ahora pulsas el botón Iniciar, se pasará automáticamente a la hoja Producto y verás el desarrollo de las 64 variaciones obtenidas (4^3). Aquí tienes las primeras:


Si vuelves a la hoja Planteamiento observarás que las columnas se han rellenado según tus deseos:



Aunque sea adelantar información, añade otra condición, XT=ETIQ(PRIMO), y tus datos cambiarán a los cuatro primeros números primos después de pulsar Iniciar.



Las variaciones seguirían siendo 64, porque no hemos condicionado el producto cartesiano, sólo los datos.

Por tanto, identificaremos las variaciones con repetición con los productos cartesianos sin condicionar. Prueba a simular la tirada simultánea de tres dados y verifica que obtienes 216 elementos en el producto cartesiano, porque las tiradas de cada dados se pueden repetir. Sólo tienes que definir XTOTAL=3 y XT=1..6. Inténtalo.

Variaciones sin repetición

No siempre deseamos elegir un elemento de cada conjunto con repetición. Podemos desear elegir elementos distintos, como ocurriría en la extracción de 3 bolas de colores de una bolsa, sin reponerlas una vez extraídas. Como Cartesius sólo maneja números, las podremos representar como 1, 2 y 3. El planteamiento podría ser:

XTOTAL=3
XT=1,2,3
NO REPITE

Aquí hemos cambiado la definición del conjunto: en lugar de usar XT=1..3, lo hemos definido como conjunto de elementos, como XT=1,2,3. Es una variante. Además, se ha añadido la condición NO REPITE, que no necesita explicación. No olvides borrar antes las condiciones si has estado trabajando con ellas.

Pulsamos el botón de Iniciar y obtenemos



Ya habrás identificado estos arreglos como variaciones sin repetición y comprendido que son 6 porque 6=3*2*1, según la conocida fórmula

Vm,n = m(m-1)(m-2)…(m-n+1)

Imagina que deseamos encontrar todas las variaciones de 6 elementos tomados de 4 en 4 en las que el segundo elemento sea un 2. Acudiríamos a este planteamiento:

XTOTAL=4
XT=1..6
X2=2..2

Con este ejemplo aprenderás una característica importante de Cartesius, y es que una condición puede anular parte de las anteriores. En XT=1..6 obligábamos a que todos los elementos recorrieran del 1 al 6, pero después hemos añadido algo contradictorio, que X2 (el segundo) sólo pueda pertenecer a 2..2. Pues bien, esta es la condición que prevalece (en pantalla pueden seguir apareciendo 3, 4, 5, 6, pero no tendrán validez).

Borra las condiciones, escribe estas nuevas y observarás que obtienes, en lugar de 1296=6^4, 216=6^3, ya que el segundo elemento permanece constante. Si no deseas ver los elementos, sino sólo el número de arreglos, en la hoja Producto puedes acudir a los controles y especificar que no quieres ver el desarrollo:



De esa forma los cálculos serán mucho más rápidos, pero sólo figurará el número total 216 arriba a la derecha del conjunto:



Podías haber escrito estas otras condiciones:

XTOTAL=4
X1=1..6
X2=2..2
X3=1..6
X4=1..6

Ya te habrás dado cuenta de que XT define para todos y X1, X2,… para cada uno en particular.

Importante: El programa se puede confundir si encuentra una celda con un espacio en blanco en lugar de estar vacía. Por eso, es conveniente borrar las condiciones antes de escribir las nuevas.

En la siguiente entrada procederemos a incluir diversos condicionamientos a las variaciones, con lo que adquirirás más dominio de la hoja Cartesius.


jueves, 9 de febrero de 2017

Divisores de los números 3-friables


En la entrada anterior presentamos los números 3-friables, que son aquellos que sólo tienen como factores primos el 2 y/o el 3, con expresión 2^p*3^q. Conviene leerla previamente para entender lo que sigue. Puedes pulsar el enlace "Entrada antigua" al final de esta entrada.

Las funciones dependientes de divisores serán en este caso muy simples, ya que sólo manejaremos los exponentes de 2 y 3. Vemos algunas:

Número de divisores (función TAU)

Nos basaremos en la expresión general de estos números, sea


Consultamos nuestra publicación sobre funciones multiplicativas (http://www.hojamat.es/publicaciones/multifun.pdf) y vemos que TAU se expresa respecto a los exponentes como

En este caso D(N)=(1+p)(1+q). Por tanto, nunca tendrán un número de divisores primo si son múltiplos de ambos 2 y 3, pero sí pueden serlo si sólo son múltiplos de uno de ellos. En otros casos podrá ser semiprimo el número de divisores, como en el caso 2^2*3^6 cuyo número de divisores es 3*7, semiprimo.

También se puede dar la casualidad, al tener pocos factores, de que el número 3-friable sea múltiplo de TAU. Pues bien, resultan muchos números con esta propiedad. Los primeros son:

1, 2, 8, 9, 12, 18, 24, 36, 72, 96, 108, 128, 288, 384, 864, 972, 1152, 1944, 3456, 6144, 6561, 6912, 7776, 13122, 18432, 26244, 31104, 32768, 52488, 55296, 62208, 69984, 98304,...

Los puedes conseguir con PARI:

m23(n)={local(m,v);m=n;while(m/2==m\2,m=m/2);while(m/3==m\3,m=m/3);if(m==1,v=1,v=0);v}
for(i=1,10^5,if(m23(i)&&i%sigma(i,0)==0,print1(i,", ")))


Función SIGMA

La función SIGMA suma todos los divisores de un número, al igual que la anterior los cuenta. Su expresión es

Es fácilmente adaptable a nuestro caso. Sería así:

Por ejemplo, el elemento 384=2^7*3 tendrá (1+7)(1+1)=16 divisores. En efecto, son estos: 384, 192, 128, 96, 64, 48, 32, 24, 16, 12, 8, 6, 4, 3, 2, 1. Su suma, la función SIGMA, tendrá el valor (2^8-1)(3^2-1)/2=255*4=1020, como puedes comprobar sumando los 16 divisores.

¿Puede ser prima la sigma de estos números?

Para ello, uno de los factores debería ser primo, y el otro la unidad. Si observas los paréntesis de la fórmula de arriba, sólo valdrán 1 si p=0 o q=0. Sólo pueden tener sigma prima aquellos elementos que sólo sean múltiplos de 2 o de 3. En concreto son los siguientes:

2, 4, 9, 16, 64, 729, 4096, 65536, 262144,…

Los puedes conseguir con este algoritmo en PARI

m23(n)={local(m,v);m=n;while(m/2==m\2,m=m/2);while(m/3==m\3,m=m/3);if(m==1,v=1,v=0);v}
for(i=1,300000,a=m23(i);if(a&&isprime(sigma(i)),print1(i,", ")))


Vemos que aparecen números de la forma 2^p, como 2, 4, 16, 64, 4096, y otros del tipo 3^q, que serían 9 y 729. Los vemos por separado:

Los elementos del tipo 2^p serán aquellos en los que 2^(p+1)-1 sea primo, pero esos son los  primos de Mersenne: 3, 7, 31, 127, 8191,…, por lo que serán los únicos casos posibles, según la tabla siguiente:



Aquí tienes la lista de los primeros casos del tipo 2^p:

2, 4, 16, 64, 4096, 65536, 262144, 1073741824, 1152921504606846976, 309485009821345068724781056, 81129638414606681695789005144064, 85070591730234615865843651857942052864,…

Es fácil ver que en esta tabla sigma(sigma(n))=2n. En efecto, los primeros de la tabla son fácilmente comprobables: sigma(sigma(4))=sigma(7)=7+1=2*4,…Mediante cálculos tendríamos que

sigma(sigma(2^p))=sigma(2^(p+1)-1)=2^(p+1)-1+1,

por ser prima la sigma, luego

Sigma(sigma(2^p))=2^(p+1)=2*2^p

Por tener esta propiedad, a estos números se les llama superperfectos, y están publicados en http://oeis.org/A019279

Los del tipo 3^q tendrán sigma prima si (3^(q+1)-1)/2 es primo, lo que obliga a que q sea par, como ocurre en los casos vistos de 9=3^2 y 729=3^6 y podemos añadir 3^12=531441. Esta es la lista de los primeros:

9, 729, 531441, 2503155504993241601315571986085849, 4638397686588101979328150167890591454318967698009,…

Están publicados en http://oeis.org/A255510


¿Podría ser semiprima?

La sigma de los números 3-friables también puede ser semiprima. Basta exigir en los algoritmos que bigomega(N) sea igual a 2, si recordamos que BIGOMEGA cuenta los factores primos con repetición. Si unimos las funciones solo23 (o m23 en PARI) con bigomega obtendremos las soluciones. En la tabla puedes estudiar los primeros ejemplos, obtenidos con hoja de cálculo




La primera columna contiene los números (3-friables), la segunda su sigma y la última los dos factores de la misma que la convierten en semiprima.

Podemos ampliar la lista usando PARI:

m23(n)={local(m,v);m=n;while(m/2==m\2,m=m/2);while(m/3==m\3,m=m/3);if(m==1,v=1,v=0);v}
for(i=2,10^11,if(m23(i)&&bigomega(sigma(i))==2,print1(i,", ")))

Obtendremos:

3, 8, 18, 36, 81, 144, 256, 576, 1024, 1458, 2916, 6561, 11664, 36864, 46656, 59049, 589824, 1062882, 2125764, 2359296, 2985984, 4194304, 8503056, 34012224, 43046721, 47775744, 191102976, 387420489, 2176782336, 9663676416, 31381059609, 34828517376, 68719476736, 139314069504,…

Este algoritmo es muy lento, por lo que podemos usar la idea del producto cartesiano que desarrollamos en la anterior entrada. Sólo hay que ordenar al final la lista que creemos término a término. Quedaría así:


l=List();for(i=0,40,for(j=0,25,a=2^i*3^j;if(bigomega(sigma(a))==2,listput(l,a))));listsort(l);print(l)

Nos da más términos de una forma muy rápida:

3, 8, 18, 36, 81, 144, 256, 576, 1024, 1458, 2916, 6561, 11664, 36864, 46656, 59049, 589824, 1062882, 2125764, 2359296, 2985984, 4194304, 8503056, 34012224, 43046721, 47775744, 191102976, 387420489, 2176782336, 9663676416, 31381059609, 34828517376, 68719476736, 139314069504, 782757789696, 1099511627776, 570630428688384,…

Y los que son sólo potencias de 2

8, 256, 1024, 4194304, 68719476736, 1099511627776, 281474976710656, 288230376151711744, 73786976294838206464, 4835703278458516698824704, 79228162514264337593543950336, 1267650600228229401496703205376, 5070602400912917605986812821504, 324518553658426726783156020576256,

Se encuentran fácilmente con PARI:

for(n=1,120,a=2^n;if(bigomega(sigma(a))==2,print1(a,", ")))

Se corresponden con los exponentes 3, 8, 10, 22, 36, 40, ,48, 58, 66, 82, 96, 100, 102, 108,…


Indicatriz de Euler

Para estos números N es muy fácil obtener la indicatriz, número de números coprimos con N y menores que él. Disponemos de una fórmula sencilla, publicada en muchos medios

En este caso:

j(N)=j(2^p*3^q)=2^p*3^q*(1-1/2)(1-1/3)=2^p*3^(q-1)

Existen relaciones muy sencillas en este caso entre N y j(N)

(a) Si q>0 y p>0 , la indicatriz es un tercio del número, como es fácil de ver por su expresión.

(b) Si q=0 tenemos que usar j(N)=j(2^p)=2^p*(1-1/2)=2^(p-1) y sería la mitad.

(c) Si p=0 tenemos j(N)=j(3^q)=3^q*(1-1/3)=3^(q-1)*2 y equivaldría a los dos tercios de N.

En la siguiente tabla lo puedes comprobar: los cocientes entre N y su Indicatriz siempre son 3, 2 o 1,5, según si son potencias dobles de 2 y 3 o sólo de 2 o sólo de 3:


Consecuencia importante: La indicatriz de un número 3-friable es también 3-friable.

Las propiedades que hemos estudiado se pueden unificar en una sola fórmula:

j(6N)=2N
Recorremos los casos:

Si q>0 y p>0 , 6N=2^(p+1)*3^(q+1), luego la indicatriz valdrá un tercio, es decir 2^(p+1)*3^q, que equivale a 2N

Si q=0, 6N=2^(p+1)*3, y la indictariz también será un tercio, es decir 2^(p+1)=2N

Si p=0, 6N=2*3^(q+1). La indicatriz vuelve a ser un tercio, y queda 2*3^q=2N

Divisores unitarios

Un divisor k de N es unitario si es primo con el cociente N/k, que por tanto también sería unitario. Los unitarios forman pares, comenzando con (N,1). Es sencillo razonar que en los números 3-friables 2^p*3^q con p>0 y q>0 sólo existirá otro par, el (2^p,3^q). Por tanto, la función USIGMA, suma de unitarios, valdrá en este caso

Usigma(n)=2^p*3^q+2^p+3^q+1=(2^p+1)(3^q+1).

Podemos interpretarlo como que se incrementan en una unidad las componentes 2^p y 3^q y después se multiplican, siempre que p>0 y q>0. Hemos construido una tabla en la que se confirma que usigma es igual a ese producto.



lunes, 30 de enero de 2017

Números 3-friables


Estudiaremos en esta entrada y la siguiente los números que sólo poseen como factores primos el 2 y el 3. De nuevo nos inspiramos en una sucesión de OEIS. Esta vez en la A003586 (http://oeis.org/A003586), que presenta los que llama “3-smooth numbers”, que se puede traducir como “liso o alisado (o regular) de grado 3”. En francés se les denomina 3-friables, y en nuestro idioma “friable” equivale a “fácilmente desmenuzable”. Si alguien conoce otra  denominación española puede comunicármelo. Mientras tanto, utilizaré una denominación similar a la francesa. Hendrik Lenstra les llama armónicos, en recuerdo de un texto de Phillipe de Vitry, obispo de Meaux, compositor del siglo XIV.

Me quedaré con la nomenclatura francesa: Un número es B-friable si todos sus factores primos son menores o iguales a B. En nuestro caso los números que estudiaremos son 3-friables. En este blog no nos son desconocidos, porque vimos en una entrada de hace unas semanas que los máximos productos de sumandos en las particiones de un número eran de este tipo (ver http://hojaynumeros.blogspot.com.es/2016/11/maximo-producto-en-la-particion-de-un_23.html)

Simplemente son números cuyos únicos factores primos son el 2 o el 3 (o ambos), es decir, que tienen la forma N=2^i*3^j con i,j³0.

Los primeros son estos:

1, 2, 3, 4, 6, 8, 9, 12, 16, 18, 24, 27, 32, 36, 48, 54, 64, 72, 81, 96, 108, 128, 144, 162, 192, 216, 243, 256, 288, 324, 384, 432, 486,…

Es fácil ver que desde el 1=2^0*3^0 hasta el final, todos tienen como únicos factores primos el 2 y/o el 3.

Existe una prueba muy sencilla para averiguar si un número es de este tipo. Consiste en dividir entre 2 y entre 3 mientras sea posible, es decir, mientras el número y los cocientes sucesivos sean múltiplos de uno de los dos. Si al final del proceso nos queda un 1, es que los únicos factores son 2 y 3, como se pide. Lo podemos concretar mediante la función solo23, que devuelve VERDADERO o FALSO. Adjuntamos la versión para el Basic de hojas de cálculo:

Public Function solo23(n) As Boolean
Dim m
m = n ‘m representa los cocientes sucesivos
While m Mod 2 = 0: m = m / 2: Wend ‘Divide entre 2 mientras se pueda
While m Mod 3 = 0: m = m / 3: Wend ‘Hace lo mismo con el 3
If m = 1 Then solo23 = True Else solo23 = False ‘Si al final queda un 1, es de ese tipo
End Function

La siguiente tabla aparece en la hoja con bastante rapidez:



La versión en PARI puede ser esta:

m23(n)={local(m,v);m=n;while(m/2==m\2,m=m/2);while(m/3==m\3,m=m/3);if(m==1,v=1,v=0);v}
for(i=1,300,a=m23(i);if(a,print1(i,", ")))

Es idéntica a la anterior, pero con otras reglas de sintaxis.

Esta misma idea puede servir para descomponer un número 3-friable en sus dos componentes 2^p y 3^q. Insertamos las funciones COMP2 Y COMP3 que no necesitan explicación:

Public Function comp2(n)
Dim m
m = n
While m Mod 3 = 0: m = m / 3: Wend 'Divide entre 3 mientras se pueda
comp2 = m
End Function

Public Function comp3(n)
Dim m
m = n
While m Mod 2 = 0: m = m / 2: Wend 'Divide entre 2 mientras se pueda
comp3 = m
End Function

En la siguiente tabla se han descompuesto los primeros números 3-friables:



Generación recursiva

Es tentador generar nuevos términos si se conocen los anteriores. Se puede lograr siguiendo algunas ideas sugeridas en la sucesión A003586 ( Hai He y Gilbert Traub, Dec 28 2004 ). El procedimiento se basa en que las potencias de 2 aparecen con más frecuencia que las de 3. Usamos estas potencias 3^q como indicadores del progreso de creación: mientras se pueda, se añaden factores 2 a los términos anteriores, y cuando ya sea imposible, se aumenta el exponente del 3 y se toma como nuevo término.

Dada una potencia de 3 cualquiera, 3^q, que sea término de la sucesión:

(1) Se prueba a multiplicar por 2 todos los términos anteriores que den lugar así a términos nuevos
(2) Si se agotan las multiplicaciones por 2 (al sobrepasar 3^q), se pasa a 3^(q+1) y se vuelve al paso 1.


 El problema de este procedimiento es que para multiplicar por 2 quizás debamos retroceder bastante en la sucesión, con lo que habría que definir variables locales que almacenaran los términos, con ocupación de memoria y la ignorancia previa de qué dimensión darles. Para resolverlo usaremos la primera columna de una hoja de cálculo. Definiremos como u(k) el valor de la celda k de la primera columna, y usaremos una subrutina es_u(k,v) para escribir el valor v en esa celda k. Lo escribimos para Excel:

Public Function u(i)
u = ActiveWorkbook.Sheets(1).Cells(i, 1).Value ‘la variable u(i) representa la celda i
End Function

Sub es_u(i, a)
ActiveWorkbook.Sheets(1).Cells(i, 1).Value = a ‘esta rutina lee el valor de la celda i
End Sub

Con la ayuda de estas dos rutinas, podemos ya presentar el algoritmo completo:

Sub engendram23()
Dim k, j, n

Call es_u(1, 1) ‘rellena con un 1 la primera celda de la columna 1
k = 1 ‘la variable k lleva la cuenta de los términos engendrados
j = 1 ‘la variable j lleva la cuenta de los exponentes del 3
For n = 1 To 100 ‘así se generan 100 términos. Lo podemos cambiar.
k = k + 1 ‘se busca un nuevo elemento
If 2 * u(k - j) < 3 ^ j Then ‘se retrocede para multiplicar por 2
Call es_u(k, 2 * u(k - j)) ‘si no se llega a la potencia 3^j, se almacena un nuevo término
Else
Call es_u(k, 3 ^ j): j = j + 1 ‘si ya no es posible multiplicar por 2, se almacena 3^j y se incrementa
End if
Next n
End Sub

Aquí tienes el resultado de los primeros, ordenado por filas:




¿Por qué no un producto cartesiano?

Los anteriores cálculos se han introducido para que los números 3-friables aparezcan ordenados, pero si renunciamos a ese detalle, se pueden generar sencillamente con un producto cartesiano entre el conjunto de las potencias de 2 y el de 3. Si trabajamos con hoja de cálculo podemos posteriormente ordenar la columna que los contiene.

Así hemos procedido acudiendo a nuestra hoja Cartesius, de pronta publicación. Hemos definido dos conjuntos de potencias (2 y 3) que hemos combinado formando un producto cartesiano, indicando a la hoja que nos presente el producto de cada par. Las instrucciones han sido estas:



Se adivina que se han definido dos conjuntos, uno de potencias de 2 a partir de 1 (de ahí el n-1) y otro de potencias de 3. A los pares que resultan se les ha convertido en producto, creando así una columna desordenada de números del tipo 2^p*3^q. Después sólo queda copiar esa columna en otra hoja y proceder a ordenarla. De esa forma dispondremos de (en este caso 1000) los números 3-friables hasta donde deseemos.

En esta captura de pantalla puedes ver algunos de ocho cifras:




jueves, 19 de enero de 2017

Número de descomposiciones en diferencia de cuadrados


Después de jugar bastante con los números naturales, he observado la disparidad existente entre ellos respecto al número de sus descomposiciones en diferencias de cuadrados. Nos referimos al número de soluciones de

N=a^2-b^2 con a y b enteros y a>0 y b>=0 para un N dado.

Hay números que no admiten ninguna descomposición de este tipo, como el 22, y otros que admiten muchas. Un ejemplo es el 1680, que admite doce:

1680=421^2-419^2=212^2-208^2=143^2-137^2=109^2-101^2=89^2-79^2=
=76^2-64^2=67^2-53^2=52^2-32^2=47^2-23^2=44^2-16^2=43^2-13^2=41^2-1^2

En la tabla lo puedes comprobar:



¿De qué depende esto? Lo iremos viendo más adelante.

Obtención del número de descomposiciones

Al igual que hemos procedido con otros temas, comenzaremos encontrando las soluciones sin apoyo de la teoría, para más adelante fundamentarlo y después extraer propiedades y curiosidades.

Cualquier algoritmo para resolver esta cuestión se puede basar en el hecho de que una descomposición de este tipo equivale a expresar N mediante un producto de factores con la misma paridad, ambos pares o ambos impares. En efecto, si N=b^2-a^2 resultaría N=(a+b)(a-b), y ambos factores tienen la misma paridad, como se comprueba estudiando los cuatro casos posibles para a y b: par-par, par-impar, impar-par e impar-impar. Es fácil. A la inversa: si N=m*n, ambos de la misma paridad resultaría que (m+n)/2 y (m-n)/2 serían enteros, cumpliéndose que N=((m+n)/2)^2-((m-n)/2)^2

El número de descomposiciones de N en diferencia de cuadrados coincide con el de productos con factores de la misma paridad y resultado N.

Para hacer más fáciles los trabajos, admitiremos que b pueda ser nulo, o de forma equivalente, que los dos factores sean iguales.

Establecida esta propiedad, la búsqueda se efectuaría encontrando divisores d de N tales que d y N/d tengan la misma paridad. Esto lo podemos lograr fácilmente, usando divisiones enteras y aritmética modular. En el siguiente ejemplo lo implementamos como función Basic para hojas de cálculo:

Public Function numdifcuad(n)
Dim i, m
m = 0 ‘Contador de casos
For i = 1 To Sqr(n) ‘Se llega a la raíz cuadrada para evitar repeticiones de divisores
If n / i = n \ i Then ‘Si el cociente es igual al cociente entero, es que es divisor
If Abs(i - n / i) Mod 2 = 0 Then m = m + 1 ‘el divisor i y el cociente n/i tienen la misma paridad, porque su diferencia da resto 0 módulo 2, luego incrementamos el contador.
End If
Next i
numdifcuad = m
End Function

Así de sencillo. Con esta función podemos contar las descomposiciones posibles para cada número. En la tabla puedes observar las correspondientes a los primeros números:



Verás que se dan muchos casos, desde el 22 o el 14, que no admiten descomposiciones, hasta el 16 o el 15, que admiten 2. Si siguiéramos leyendo hacia abajo descubriríamos que 45 es el primero que admite 3 casos: 45=23^2-22^2=9^2-6^2=7^2-2^2.que se corresponden con las descomposiciones en producto 45=45*1=15*3=9*5, todas con factores de igual paridad. El primero con cinco casos es el 96, y así podríamos seguir hasta 1680 que vimos presenta doce.



Estos resultados están ya publicados en https://oeis.org/A034178



Podemos comprobar que coinciden con nuestros resultados

Análisis teórico de la situación

Es importante distinguir en principio si N es par o impar.

Caso 1: N es impar

Si N es impar, todos los posibles pares de factores N=m*n tendrán la misma paridad, luego sólo tenemos que contarlos. Recordamos que la función TAU, que cuenta los divisores, viene dada por la fórmula


En ella a, b c,…representan los factores primos y p, q, r,…sus exponentes. Como los divisores han de formar pares, deberemos encontrar la mitad de la función (si esta es par), por tanto, si expresamos el número de descomposiciones mediante la función ND, tendremos:


Lo comprobamos. Según la tabla el 21 admite dos descomposiciones. Como 21=3*7, ?(21)=(1+1)(1+1)=4, y su mitad entera es dos, como indica la tabla.

Si TAU es impar, será porque todos los exponentes serán pares, con lo que N será un cuadrado, apareciendo entonces un par nuevo al multiplicar la raíz cuadrada por sí misma. Podemos unificar ambas situaciones:


El segundo paréntesis valdrá cero en el caso par y uno en el impar.

Es el caso del número 3969:



Los factores son todos impares, los exponentes, 4 y 2, pares. TAU valdrá en este caso (1+4)(1+2)=15. Su mitad entera es 7, y añadimos 1 por su raíz cuadrada. Coincide entonces con el valor 8 que nos da NUMDIFCUAD.

Caso 2: N es par

En este caso aparece el factor 2, lo que obliga a que los dos factores que buscamos sean ambos pares y deban contener el 2 como factor. Esto no es posible si el factor 2 es único, con exponente 1, y esa es la causa de que 6, 10, 14 o 22 no presenten descomposiciones.

No admiten descomposiciones en diferencias de cuadrados los múltiplos de 2 que no lo sean de 4, es decir, los del tipo 4k+2

N es potencia de 2

Siguiendo un razonamiento similar al caso impar, deberemos encontrar la función TAU. Como tratamos con un solo exponente, sea p, el número de divisores será 1+p, pero al ser el caso par, el divisor 1 no nos interesa, y nos quedarían tan solo p divisores. Así, para p=5 dispondríamos de 2, 4, 8, 16 y 32. La potencia completa, en este caso 32, no nos valdría, porque tendría que formar par con el 1, que es impar, luego sólo nos quedan p-1 divisores disponibles. Esto vuelve a confirmar que el caso p=1 no produce pares de la misma paridad.

Los pares engendrados por el 2 serán pues, (p-1)/2 si p es impar y Int((p-1)/2)+1 si es par, por el par que se gana por su raíz cuadrada. Unificando:

N no es potencia de 2

Si el número es potencia de 2, sin factores impares, esta expresión vale, pero, en caso contrario, estas posibilidades del factor 2 se deberán multiplicar por las correspondientes al factor impar. La complicación surge del hecho de cada par puede producir productos idénticos, que se contarían dos veces, y hay que tener en cuenta los pares de factores repetidos en el caso de que p sea par. Por ello, la única forma de encajar todo es:


Multiplicamos el número de pares con factores desiguales de la potencia de 2 contenida en N por todos los factores de la parte impar de N, y después, en otro producto, los factores con repetición se multiplican sólo por los pares que se forman en la parte impar. Algo complicado, pero funciona.

Hemos plasmado los tres casos en una única función, a la que llamaremos NUMDIFCUAD2:

Public Function numdifcuad2(n)
Dim p, q, r, s, t, m

m = n: p = 0
While m Mod 2 = 0: m = m / 2: p = p + 1: Wend ‘Extraemos la potencia de 2
If p = 1 Then numdifcuad2 = 0: Exit Function ‘Caso imposible
q = n / 2 ^ p ‘q es la parte impar
If q = 1 And p > 1 Then numdifcuad2 = Int((p - 1) / 2) + (p - 1) Mod 2
‘Es potencia de 2 pura
If p = 0 And q > 1 Then t = fsigma(q, 0): numdifcuad2 = Int(t / 2) + t Mod 2
‘Es un número impar
If p > 1 And q > 1 Then t = fsigma(q, 0): numdifcuad2 = t * Int((p - 1) / 2) + ((p - 1) Mod 2) * (Int(t / 2) + t Mod 2)
‘Tiene parte par y parte impar
End Function

La complejidad del cálculo nos ha aconsejado comprobar mediante tablas si las dos versiones de NUMDIFCUAD coinciden. Lo hemos probado desde 1 hasta 100000, sin que aparecieran discrepancias. Como ejemplo, adjuntamos los valores de algunos números de seis cifras entre los que hay impares, pares y una potencia de 2 pura:



Otra interpretación

Como todo cuadrado es suma de números impares consecutivos, como por ejemplo 16=1+3+5+7, al restar dos cuadrados se eliminarán sumandos impares, quedando tan sólo aquellos que no sean comunes. Es, por ejemplo, el caso de 44=12^2-10^2=21+23 o el de 72=9^2-3^2=7+9+11+13+15+17

Así que el número de descomposiciones que estamos estudiando coincide con el de formas de expresar el número como suma de impares.





lunes, 9 de enero de 2017

Sandwich de semiprimos


Unos comentarios de James Tanton (@jamestanton) en Twiter me han hecho interesarme por aquellos números tales que tanto su anterior como su posterior son semiprimos. No los recorreremos todos, porque son muchos, sino que los clasificaremos por tipos.

Todos los números que poseen esta propiedad han de ser pares, salvo el 5, porque si fueran impares, los semiprimos adyacentes deberían ser dobles de primos, que serían números consecutivos, lo que salvo el caso de 2 y 3 es imposible.

Consecuencia inmediata es que un número primo mayor que 5 no puede estar encerrado entre dos semiprimos.

Los comentarios citados arriba se referían a los cuadrados, y estos ya están publicados en http://oeis.org/A108278

Cuadrados “sandwicheados”

En realidad, en esa página figuran las bases, pero elevando al cuadrado nos resultarán los cuadrados pedidos:

144, 900, 1764, 3600, 10404, 11664, 39204, 97344, 213444, 272484, 360000, 656100, 685584, 1040400, 1102500, 1127844, 1633284, 2108304, 2214144,…

En todos ellos el anterior y el posterior son semiprimos. Tomemos el cuadrado 213444=462^2. Su anterior 213443=461*463  y el posterior 213445=5*42689, ambos semiprimos. El primero nos lleva a una situación interesante, y es que si el cuadrado central es n^2, el anterior será n^2-1=(n-1)(n+1), y al ser semiprimo el producto ambos factores serán primos y más aún, primos gemelos. Es lo que ha ocurrido con el 144.

Si un cuadrado está rodeado por dos semiprimos, el anterior es producto de dos primos gemelos.

Respecto a los factores de n^2+1, han de ser del tipo 4k+1, según estudiamos hace tiempo. Puedes seguir el razonamiento en el apartado dedicado a “Un cuadrado y una unidad” en el documento

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

Al deber ser pares, estos cuadrados serán todos múltiplos de 4.

Si deseas reproducirlos con PARI, este puede ser el código:

for(i=2,2000,n=i*i;if(bigomega(n-1)==2&&bigomega(n+1)==2,print1(n,"; ")))

Triangulares entre semiprimos

También los triangulares pueden estar comprendidos entre dos semiprimos. Los primeros están publicados en http://oeis.org/A121898

120, 300, 528, 780, 2628, 3240, 3828, 5460, 13530, 18528, 19110, 22578, 25878, 31878, 32640, 37128, 49770, 56280, 64980, 72390, …

En PARI:

for(i=2,2000,n=i*(i+1)/2;if(bigomega(n-1)==2&&bigomega(n+1)==2,print1(n,"; ")))

Además de ser pares, son múltiplos de 3, y por tanto de 6. En efecto, si un triangular no es múltiplo de 3 sólo puede ser porque su orden sea del tipo 3k+1, ya que entonces el triangular tendría la expresión (3k+1)(3k+2)/2, que no contiene ningún factor 3 (en los otros casos sí). Pero en este caso, al restarle 1 no obtendríamos un semiprimo. Lo desarrollamos:


Al tener el factor 9 no puede ser semiprimo. Además hemos descubierto que es nueve veces el triangular de orden k.

Por ejemplo, el número triangular de orden 13, 91=13*14/2, no es múltiplo de 3, y su anterior, 90, no puede ser semiprimo, y es igual a 9*10=9*T(4)

El desarrollo anterior se puede invertir, es decir, que si multiplicamos por 9 un triangular y sumamos 1, obtenemos otro triangular no múltiplo de 3 o 6.
Sólo los números triangulares N múltiplos de 6 pueden tener semiprimos N-1 anteriores a ellos.

Oblongos entre semiprimos

¿Ocurrirá algo similar con los oblongos? La respuesta es negativa.

Recordemos que los números oblongos son los dobles de los triangulares, es decir, los que se pueden expresar como N=k(k+1). Así, 56=7*8 es oblongo, y su anterior 55=5*11 y el posterior 57=3*19 son semiprimos. Cumple la condición de estar entre semiprimos, pero no es múltiplo de 3 (par sí tiene que ser).

Los primeros oblongos con la propiedad requerida son:

56, 552, 870, 1056, 1190, 1640, 1892, 2652, 4032, 5256, 5402, 6806, 8372, 9120, 9506, 9702, 10920, 11772, 12656, 12882, 15006, 15252, 15500, 16256, 16770, 17556, 18632, 23256, 24492, 27722, 29070, 30800, 33306, 33672, 34410, 36290, 40200, 40602, 44310, 45582, 46872, 49506,…

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

Tomamos uno de ellos, por ejemplo 16256=127*128, y por tanto, oblongo. Su anterior es semiprimo, ya que 16255=5*3251, y 16257=3*5419, también lo es.

El posterior no puede ser múltiplo de 5, porque los oblongos terminan todos en 0, 2 o 6, y al sumar no obtendremos ni 5 ni 0 como última cifra.

El anterior no puede ser múltiplo de 3. Si lo es el oblongo, es claro que al restar 1 deja de serlo. Si no lo es, sería del tipo

(3k+1)(3k+2)-1 = 9k^2+9k+1 y tampoco.

Si deseas obtener más términos, puedes adaptar este código en PARI:

for(i=2,2000,n=i*(i+1);if(bigomega(n-1)==2&&bigomega(n+1)==2,print1(n,"; ")))

Números de Fibonacci

Están publicados los números de la sucesión de Fibonacci comprendidos entre semiprimos. Sólo hay cuatro con pocas cifras: 5, 34, 144, 46368.  Se conjetura que no hay infinitos.

Puedes estudiarlos en http://oeis.org/A167023

Cubos perfectos

Los cubos rodeados de semiprimos son muy escasos. El primero es 216=6^3, con 215=5*43 y 217=7*31.

Los siguientes llegan a ser casi inabordables: 216, 1302170688, 7211429568, 20346417000, 71887512312, 281268868608, 1394417360448, 17571944311992, 28350304855488, 170400029184000, 450335804625000, 504966851923968, 616121259098688, 1064394808685208, 3442267015299000, 3517494650695368, 3540860163178632, …

Es preferible tratar con sus bases. Las tienes publicadas en http://oeis.org/A268043

6, 1092, 1932, 2730, 4158, 6552, 11172, 25998, 30492, 55440, 76650, 79632, 85092, 102102, 150990, 152082, 152418, 166782, 211218,…

Estos números tienen una propiedad importante, y es que su anterior y posterior han de formar un par de primos gemelos. La idea es sencilla: si n^3-1 ha de ser semiprimo, al ser múltiplo de n-1, este ha de ser primo, pues en caso contrario el otro no sería semiprimo. Igual ocurre con n+1. Por ejemplo, 166782 está rodeado por los primos gemelos 166781 y 166783.

Los puedes encontrar con PARI:

for(i=2,2000,n=i^3;if(bigomega(n-1)==2&&bigomega(n+1)==2,print1(i,"; ")))

Potencias enteras

Hemos estudiado los cuadrados y cubos entre semiprimos, pero podríamos generalizar a todas las potencias de base y exponente enteros mayores que 1.
No es muy difícil encontrarlos si se dispone de una función ESPOTENCIA o similar. En nuestro equipo disponemos de ella, y hemos podido emprender la búsqueda, consiguiendo esta lista de los primeros:

144, 216, 900, 1764, 2048, 3600, 10404, 11664, 39204, 97344, 213444, 248832, 272484, 360000, 656100, 685584, 1040400, 1102500, 1127844, 1633284, 2108304, 2214144, 3504384, 3802500, 4112784, 4536900, 4588164, 5475600, 7784100, 7851204, 8388608, 8820900, 9000000, 9734400…

Los hemos publicado en https://oeis.org/A276564

Puedes reproducirla con PARI:

for(i=2,10^7,if(ispower(i)&&bigomega(i-)==2&&bigomega(i+1)==2,print1(i,", ")))

Con base prima hay muy pocos. Los primeros son 2048 y 8388608

Otros casos

Podríamos seguir el estudio con pentagonales (los primeros serían 5, 92, 590, 1080, 1820, 8400,…) o hexagonales (120, 780, 3828, 19110,…), pero por hoy ya está bien. Lo dejamos como propuesta.