domingo, 16 de abril de 2017

Hoja Cartesius(3) Arreglos con cuentas


Para una mejor comprensión de esta entrada es conveniente que te leas las dos anteriores de la serie, publicadas en las direcciones. Basta con que uses la etiqueta "Cartesius" en el lateral derecho.

Permutaciones con cuentas

Imagina que creamos un producto cartesiano considerando el orden y la repetición de elementos, pero exigimos el número de repetición de alguno de ellos.

Por ejemplo, deseamos construir permutaciones con siete elementos a partir de los números 2 y 3, pero deseamos que aparezca en cada arreglo 4 veces el 2 y tres veces el 3. Para eso debemos usar las condiciones, que filtran el producto cartesiano total para adaptarlo a nuestros deseos. Puedes intentar escribir esto como planteamiento:

XTOTAL=7
XT=2,3
CONTAR(2)=4
CONTAR(3)=3

Pulsa en Iniciar y obtendrás 35 arreglos, 7!/(3!*4!)=7*5=35, según la fórmula elemental



De igual forma, podría interesarnos marcar un mínimo a algunos elementos. Por ejemplo, permutar con repetición los números 1, 2, 3, 4 y 5, pero exigiendo que al menos se repita el 2 tres veces.

Escribiríamos

XTOTAL=5
XT=1..5
CONTAR(2)>2

Obtendríamos un número algo extraño, el 181. Razonamos de dónde procede.

Clasificamos los arreglos según las veces que aparece el 2, y nos daría

C(5,3)*VR(4,2)+C(5,4)*VR(4,1)+C(5,5)*VR(4,0) = 10*4^2+5*4+1*1 = 160+20+1 =181

Los números combinatorios representan los lugares que ocupa el 2 repetido, y las variaciones con repetición los otros números que le acompañan en cada arreglo. Es interesante, para quienes se inician en estos temas, recorrer los 181 resultados e identificar cada grupo para contarlos mejor y llegar a 160, 20 y 1. Si en los controles activas que el resultado sea un número, podrás verlos de forma más compacta:


Observarás que vamos recorriendo los temas de la Combinatoria clásica, pero pronto nos desviaremos a otras cuestiones.

Variaciones con cuentas

Lo que sigue no se suele estudiar en Enseñanza Media. Imaginemos que deseamos construir variaciones (se tienen en cuenta el orden y los elementos), pero que sometemos alguno de estos a una cuenta. Por ejemplo, tomemos los siete primeros números naturales. Formemos con ellos variaciones con repetición tomados de 5 en 5. Si no imponemos más condiciones, el número de arreglos sería 7^5=16807.

Sobre esa base, si deseamos que los elementos 2 y 3 se repitan exactamente dos veces cada uno, la estructura de los arreglos cambia totalmente. Con Cartesius se puede resolver el problema con este planteo:

XTOTAL=5
XT=1..7
CONTAR(2)=2
CONTAR(3)=2

No se añade REPITE porque es la opción por omisión en la construcción de las variaciones. Al pulsar en Iniciar observamos que sólo quedan 150 casos posibles (con LibreOffice Calc tardará un poco. Para ver que no ha terminado observa la celda A1 de la hoja Producto). Aquí tienes un fragmento de la tabla:



Resultan 150 casos porque 2, 2, 3, 3 admiten 24/(2*2)=6 posibilidades y a cada uno le acompañan uno de los restantes elementos, 1, 4, 5, 6, y 7, que además se pueden situar en cinco sitios, luego 6*5*5=150. Como en un ejemplo anterior, podemos expresarlo como C(4,2)*VR(5,2)

Fórmula general

Supongamos que combinamos m números tomados de n en n con orden y repetición, en los que p de ellos están sometidos a unas cuentas r1, r2,...rp que suman s. Vemos que en el recuento de las variaciones posibles debemos multiplicar tres factores.

1) Posibles ordenamientos de los p elementos forzados a repetir: s!/(r1!r2!...rp!)

2) Variaciones de los restantes: (m-p)^(n-s).

3) Formas de intercambiarse los s que admiten cuentas con los n-p elementos del arreglo que no obedecen a esa cuenta. Serían n!(s!(n-s)!)

Multiplicamos y quedaría:


Simplificando entre s! y uniendo fracciones:



Lo comprobamos con el anterior ejemplo: m=7, n=5, p=2, s=4, r1=2, r2=2
V7,5,2,2=5!/(2!2!1!)*51=30*5=150, que era la respuesta de Cartesius.

Comprobamos la fórmula con otros ejemplos:

Variaciones de siete elementos tomados de 6 en 6, en las que el 2 se debe repetir dos veces. Lo programamos en Cartesius y obtenemos 19440 soluciones.

XTOTAL=6
XT=1..7
CONTAR(2)=2

(Hemos optado por un NO en la opción de Ver desarrollo. Hay que tener paciencia, porque tarda. En algunas versiones de Excel se para la aparición, pero luego vuelve)



Comprobamos la fórmula: m=7, n=6, p=1, s=2,  r1=2,

V7,6,2,2 = 6!/(2!4!)64=15*1296=19440

Una última comprobación:

Siete elementos tomados de 5 en 5, en los que el elemento 2 (podría ser otro. No afecta al resultado) se repite 3 veces.

Usamos estas condiciones en Cartesius:

XTOTAL=5
XT=1..7
CONTAR(2)=3

360 posibilidades.



Calculamos: m=7, n=5, p=1, s=3, r1=3

V7,5,3,3 = 5!/(3!2!)62 = 120/12*36 = 360

Proponemos otro cálculo, que no explicaremos.

Variaciones de 8 objetos tomados de seis en seis, de los que un elemento (puede ser el 2) se repite dos veces y otro, (por ejemplo el 3)  tres. Te deben resultar 360. Comprueba con la fórmula. Las primeras variaciones serían estas:



Estos ejemplos con más de cinco elementos por arreglo pueden tardar bastante. Paciencia.

Otros condicionamientos

Hemos condicionado las variaciones fijando el número de apariciones de un elemento, pero podemos pensar en otros muchos condicionamientos.

Desarrollaremos ahora algunos para que te vayas familiarizando con el manejo de Cartesius.

Igualdades y desigualdades

Imaginemos que deseamos formar todas las permutaciones con repetición de los números 1, 2, 3 y 4 (256 en total, es decir 4*4*4*4), pero que deseamos que el primer elemento sea igual al segundo, y que este sea mayor que el tercero. Los elementos aislados se representan en Cartesius como X1, X2, X3,… Por tanto, lo que deseamos es que X1=X2 y que X2>X3.

En este tipo de programas la conectiva lógica Y se puede sustituir por el producto *, ya que VERDADERO suele ser equivalente a “distinto de cero” y FALSO a “igual a cero”. Por eso, las dos condiciones unidas se pueden escribir como (X1=X2)*(X2>X3).

Para introducir estas fórmulas condicionantes usamos el prefijo ES, por lo que escribiremos:

XTOTAL=4  Número de elementos que se toman
XT=1..4       Conjunto con el que se forma el producto cartesiano
ES (X1=X2)*(X2>X3)  Condición añadida

No escribas los comentarios en cursiva, que pueden alterar el funcionamiento. Debes usar estas condiciones de abajo.

XTOTAL=4
XT=1..4
ES (X1=X2)*(X2>X3)

Iniciamos, y obtenemos 24 arreglos en lugar de los 256 previstos:



Este ejemplo te dará idea de la potencia de cálculo y planteamiento que puedes obtener con la hoja Cartesius.

Aquí no merece la pena buscar una fórmula teórica (puedes intentarlo), porque al depender el número de arreglos del primer elemento, no sería práctica.

lunes, 3 de abril de 2017

Números piramidales (2): Tetraedros.


Esta entrada forma serie con otra ya publicada, cuya lectura se recomienda, situada en la dirección

http://hojaynumeros.blogspot.com.es/2017/03/numeros-piramidales1-definiciones-y.html

A los números piramidales triangulares se les conoce también como tetraédricos, o simplemente tetraedros (abreviado, TET), en recuerdo del primer poliedro regular. Todos ellos se forman a partir del 1 adosando los distintos números triangulares, 3, 6, 10, 15, 21, 28… por lo que también podemos decir que los tetraédricos equivalen a las sumas parciales de los triangulares.



TET(1)=1
TET(2)=1+3=4
TET(3)=4+6=1+3+6=10
TET(4)=10+10)1+3+6+10=20

La lista de los primeros será, pues:

1, 4, 10, 20, 35, 56, 84, 120, 165, 220, 286, 364, 455, 560, 680, 816, 969, 1140, 1330, 1540, 1771, 2024, 2300, 2600, 2925,… http://oeis.org/A000292

La puedes reproducir con la calculadora Calcupol que presentamos en la anterior entrada de esta serie.

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

Basta fijar el tipo en Piramidal, el orden en 3, y escribir en pantalla 1. Con esto, cada vez que pulses en la Tecla PROX se formará un nuevo piramidal tetragonal. En la imagen llegamos hasta 969:



La formula para estos números se simplifica mucho. Recordamos la expresión general para todos los piramidales:

Hacemos k=3 y queda:


Esta expresión nos suena familiar, y es que equivale al número combinatorio n+2 sobre 3:


Por ejemplo, el tetragonal de orden 7 es 84, y equivale a (7*8*9)/6=504/6=84
Puedes usar la expresión de hoja de cálculo COMBINAT, para calcular el número combinatorio:

Y ya, por repasar más detalles, con nuestra calculadora combinatoria puedes usar las teclas 9 C 3:



La tienes en la dirección

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

Por ser números combinatorios de orden 3, los tetraedros se situarán en la cuarta fila del triángulo de Pascal:



(Imagen adaptada de otra contenida en Wikipedia.es)

Por cierto, y como era de esperar, los números triangulares se presentan en la anterior paralela.

Curiosidades

Al igual que hicimos con cuestiones similares, desarrollaremos a continuación algunas propiedades, muchas de ellas tomadas de http://oeis.org/A000292

Suma de diferencias

Si, como es costumbre en oeis.org, comenzamos la sucesión por el 0, resulta que cada número tetragonal de orden n es suma de todas las diferencias b-a que se pueden formar entre los números 1, 2, 3, … n entre sí, si b>=a (Amarnath Murthy, May 29 2003). Lo vemos mejor con un esquema de esas diferencias. La imagen contiene el desarrollo para el tetragonal 20:



Las cabeceras de filas y columnas están formadas por los números del 1 al 5. En el centro figuran las diferencias entre ellos sin contar las negativas, y a la derecha figuran sus sumas por filas. El número 20 resulta como suma de todas las diferencias del interior. Como ese número, por definición, es suma de triangulares, se formará a partir de 10+6+3+1, que son triangulares porque cada uno es suma de enteros consecutivos 1, 2,… k.

Suma de productos

El mismo autor, Amarnath Murthy, nos propone otra igualdad interesante, y es proceder a multiplicar todos los sumandos posibles p y q cuya suma es n+1, y todos los productos también sumarán un número tetragonal. En este caso es más una curiosidad algebraica que aritmética, pues se justifica así:

Suma de productos p*q con p+q=n+1:

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

Pero la suma de cuadrados es n(n+1)(2n+1)/6

Restamos y queda n(n+1)(n+1)/2- n(n+1)(2n+1)/6 =n(n+1)(3n+3-2n+1)/6=n(n+1)(n+2)/6

Como es la expresión del tetragonal de orden n, ya lo tenemos demostrado. Un esquema con hoja de cálculo aclara bastante el proceso. En este caso no se considera el 0 como inicio de la sucesión:



Suma de cuadrados

Un número tetragonal, si tiene lado par n, coincide con la suma de los cuadrados de todos los números pares comprendidos entre 1 y n/2. Por ejemplo:

El tetragonal 56=TET(6) equivale a la suma 2^2+4^2+6^2=4+16+36=56. Basta aplicar la suma de cuadrados consecutivos, ((n(n + 1)(2n + 1)) / 6), al caso n/2 y después multiplicar por el factor común 2^2=4. En cuanto desarrollemos
obtenemos TET(n)= n(n+1)(n+2)/6:

Suma cuadrados pares es  4(n/2)(n/2+1)(n+1)/6=n(n+1)(n+2)/6

Si es impar, bastará sumar el mismo número de cuadrados impares. Como 35=1^2+3^2+5^2=1+9+25

Basta ver que la suma de ambos daría la de todos los cuadrados, en este caso, 56+35=91, que coincide con (6*7*(2*6+1))/6=7*13=91, luego es válida la posibilidad de sumar cuadrados impares.

Fórmula de recurrencia

Al tener expresión algebraica sencilla, los números tetragonales permiten fácilmente una expresión recurrente. En concreto es:

TET(n) = n + 2*TET(n-1) - TET(n-2)

La demostración es inmediata: n + 2*TET(n-1) - TET(n-2)=n+2*(n-1)*n*(n+1)/6-(n-2)(n-1)n/6 y simplificando llegamos a n(n+1)(n+2)/6=TET(n)
Si disponemos estos números en columna, podemos aplicar a cada dos de ellos esta fórmula de recurrencia:



Las líneas nos indican que 35 depende de los dos anteriores, 10 y 20, y de su número de orden 5, mediante la operación 35 = 5+2*20-10 = 35

Equivalencia con un triangular

Una cuestión interesante es estudiar la posibilidad de reducir un número tetraédrico a un triangular puro, como si “aplanáramos” la pirámide hasta convertirla en un número triangular con un lado distinto. Basta aplicar el criterio para que m sea triangular, y es que 8m+1 sea cuadrado. Pues bien. Aplicando ese criterio, sólo se han encontrado cinco números tetraédricos que sean también triangulares: 1, 10, 120, 1540 y 7140. Si aplicamos el criterio al cuarto, nos queda:

8*1540+1 = 12321 = 111^2

Por cierto, la equivalencia con un cuadrado aún es más escasa: sólo son cuadrados los tetraédricos 1, 4 y 19600.



jueves, 23 de marzo de 2017

Hoja Cartesius (2) – Variaciones condicionadas


En una entrada anterior comenzamos a usar nuestra herramienta Cartesius. Sería conveniente que la leyeras antes de iniciar el estudio de esta.

http://hojaynumeros.blogspot.com.es/2017/02/productos-cartesianos-condicionados-con.html

Variaciones condicionadas

Una gran utilidad de Cartesius es la posibilidad de añadir condiciones a las propias de un arreglo determinado. En la entrada anterior iniciamos el uso de Cartesius y procedimos a construir variaciones. Ahora las condicionaremos de diversas formas.

Explicamos condiciones nuevas con un ejemplo:

De todas las variaciones sin repetición que podemos formar con los números 1 al 7 tomados de 4 en 4, ¿cuántas presentan una suma de elementos igual a 14? ¿Cuántas de ellas contienen un 1 y un 6?

El principio de la programación es fácil:

XTOTAL=4
XT=1..7
NO REPITE

Obtendremos 840=7*6*5 variaciones. Compruébalo.

Si le añadimos la condición SUMA=14, obtendremos el desarrollo pedido:



(Se admiten mayúsculas y minúsculas y que no influyen los formatos de las  celdas)



Se obtiene un total de 96 resultados. Es interesante que, en lo posible, se justifiquen los resultados que nos ofrece Cartesius. En este caso, había cuatro formas de sumar 14: 1+2+4+7=1+2+5+6=1+3+4+6=2+3+4+5 y si multiplicamos por 24 órdenes distintos que admiten los sumandos, obtenemos 24*4=96.

Así que podemos fijar la suma de nuestros arreglos numéricos. Basta escribir SUMA= y el resultado que nos interese.

En la segunda parte de la propuesta nos preguntábamos en cuántas de esas sumas figurará un 1 y un 6. Esto se consigue con la condición CONTAR. Escribiremos CONTAR(1)=1 y CONTAR(6)=1, para exigir que sólo aparezcan una vez.



Pulsa en el botón Iniciar (o en el de Reiterar de la siguiente hoja) y obtendrás la mitad de resultados, 48. También se puede justificar: si figuran 1+6 y 6+1 en todas las sumas, los otros sumandos han de ser 2+5, 5+2, 3+4 y 4+3. En total, combinando, nos resultan 8 sumas diferentes (teniendo en cuenta el orden porque son variaciones). Cada una de estas sumas admite 6 órdenes (4!/(2!2!), luego, multiplicando, resultarán 48 variaciones.

Otro ejemplo

Disponemos de los números 1 al 5, y deseamos formar con ellos variaciones de cuatro en cuatro sin repetición. Según lo estudiado hasta ahora, vemos que bastarán estas tres condiciones:

XTOTAL=4
XT=1..5
NO REPITE

Escríbelas en Cartesius y comprueba que resultan 5*4*3*2=120 soluciones.



Con los elementos anteriores, deseamos destacar aquellos arreglos en los que aparecen el 3 y el 4, las veces que sean. Comenzamos como en el ejemplo anterior

XTOTAL=4
XT=1..5
NO REPITE

Ahora le añadimos dos condiciones nuevas:

CONTAR(3)>0
CONTAR(4)>0



Significan que al contar el 3 o el 4, el resultado ha de ser distinto de cero, o lo que es igual, que han aparecido. Iniciamos la construcción del producto cartesiano condicionado y obtenemos sólo 72 resultados, porque se han perdido los arreglos que no contenían ni 3 ni 4 simultáneamente, que suman 1*2*3*4+1*2*3*4 = 48. Esto es así porque van de cuatro en cuatro, luego al menos o el 3 o el 4 aparecerán, aunque no simultáneamente. Tenemos entonces 120-48=72.


Otra forma de verlo: Los elementos restantes producen 3*2=6 resultados. Los elementos 3 y 4 producen 2, luego ya tenemos 12 (el producto). Pero entre unos y otros se pueden ordenar, según la conocida fórmula de permutaciones con repetición, de 4!/(2!2!)=6 formas. Multiplicamos y obtenemos 12*6=72.

La función CONTAR tiene más propiedades, que veremos en otro momento. Lo importante es que vas descubriendo la flexibilidad de condiciones que permite Cartesius.

Datos como sucesiones

La condición XT=1..8 nos marca un intervalo del número 1 hasta el 8, pero podemos cambiar el valor de esos datos, 1, 2, … 8… por otros que se calculen a partir de ellos. Esto se puede lograr con la condición SUC seguida de una expresión en N válida y entre paréntesis. Por ejemplo, SUC(N^3) convertiría esos números 1..8 en sus cubos, 1, 8, 27,…512. En teoría admite cualquier expresión válida con números enteros. Si no lo es, se pueden producir errores inesperados, por lo que si se usa con alumnos, se deberá tener mucha paciencia, e iniciar el cálculo si las operaciones fallan.

Proponemos un ejemplo: Descomponer 2017 como suma de cubos de todas las formas posibles, no pudiendo pasar de cuatro cubos (para controlar un poco la explosión de resultados que podrían producir 1^3)

Como no nos indican el número de sumandos, sustituimos la condición XTOTAL=4 por XRANGO=4. La diferencia estriba en que esta última hace recorrer el número de elementos de los arreglos pedidos entre 1 y el total, lo que, aunque tarda más, nos ofrece todas las posibilidades pedidas.

Podía quedar así:

XRANGO=4
XT=1..12 (que es el mayor cubo posible)
XT=SUC(N^3)
SUMA=2017

Aunque no lo haremos, no importa incluir un comentario entre paréntesis si está bien separado de la condición por espacios en blanco.

Lo escribimos en Cartesius:


Nos resultarán 15 posibilidades:



Es buen momento para insistir en que estos cálculos pueden resultar lentos con LibreOffice Calc, por lo que se ha insertado un contador en la celda A1 de la hoja Producto como aviso de que no se ha finalizado el cálculo.

Aquí vemos que no queríamos tantas, por lo que podíamos haber añadido la condición CRECIENTE, para eliminar el orden en el resultado:



Esto nos llevaría a usar combinaciones, y será el tema de la siguiente entrada.

lunes, 13 de marzo de 2017

Sumas de cuadrados con diferencias simétricas


Preparando unos cálculos sobre fechas en Twitter, me he encontrado con desarrollos dobles en suma de tres cuadrados, cuyas bases presentan diferencias simétricas en ambas sumas. El primer ejemplo fue el de 6/1/17, que escrita como 6117 se descompone así:

6117=(46-6)^2+46^2+(46+3)^2
6117=(44-3)^2+44^2+(44+6)^2

En las dos sumas las diferencias son las mismas, 3 y 6, pero situadas de forma simétrica.

Tres días más tarde, el 9/1/17, me encontré con que 9117 presentaba una propiedad similar:

9117=(56-6)^2+56^2+(56+3)^2
9117=(54-3)^2+54^2+(54+6)^2

Decidí entonces estudiar esta situación, que no parece darse a menudo. El que estos dos, 6117 y 9117 aparecieran tan seguidos pudo ser una casualidad. Después he visto que se encuentran más de los que creía.

Planteamiento del problema

En esta situación intervienen cuatro parámetros: las diferencias (en el ejemplo 3 y 6), a las que asignaremos las variables a y b, el número total (6117 o 9117 en nuestro ejemplo), al que llamaremos N, y el desplazamiento que existe entre los dos cuadrados centrales de la suma, que representaremos con la letra m. En ambos ejemplos el desplazamiento es de 2 (46-44 o 56-54). Con estos convenios, nuestro problema se puede plantear así:

(x-a)2+x2+(x+b)2 = (x+m-b)2+(x+m)2+(x+m+a)2

Se observa enseguida que aquí se pueden simplificar bastantes términos y, en efecto, la ecuación queda así:

(4a-4b+6m)x = m(2b-2a-3m)

Como, según hemos comprobado en los ejemplos, el valor de x no depende del de m, la única solución es que ambos paréntesis sean nulos, lo que nos lleva a que


Esta relación supone dos condiciones:

b-a ha de ser múltiplo de 3, es decir, b=a+3k (en los ejemplos, 3 y 6 la cumplen)

m ha de ser par (en los ejemplos m=2)

Si no lo ves claro con la variable x, aquí lo tienes con dos enteros p y q, p<q, a<b:

(p-a)^2+p^2+(p+b)^2 = (q-b)^2+q^2+(q+a)^2
3q^2-3p^2=-q(2a-2b)+p(2b-2a)
3(p+q)(q-p) = (p+q)(2b-2a)
3(q-p)=2(b-a)

Llegamos a la misma conclusión.

Para fijar mejor el problema suponemos que a<b y que las sumas no contienen sumandos nulos.

Relación de las sumas con N

Volvemos a una de las sumas equivalentes:

(x-a)2+x2+(x+b)2 = N

Para valores dados de a y de b, será posible despejar x en la ecuación, y así relacionarla con N. Simultáneamente descubriremos qué condiciones ha de cumplir N para que x sea entero.

Simplificando y despejando x llegamos a


a-b es múltiplo de 3, según vimos anteriormente, luego el radicando será equivalente a 9 veces un cuadrado. Pues ya tenemos la condición que ha de cumplir N:


Representamos por p2 un cuadrado adecuado para que se verifique la igualdad.

Si en cada caso particular sustituimos a y b por su valor, podremos saber si N puede presentar o no, una suma con diferencias simétricas.

Volvemos a nuestros ejemplos, en los que a=3, b=6 y m=2. Si sustituimos en la condición anterior nos resulta que


Esto también obliga a que N (en este caso) sea múltiplo de 3.

Hemos aplicado esta condición a los números comprendidos entre 5000 y 10000 y ahí han aparecido nuestros conocidos 6117 y 9117:



De forma simultánea, hemos despejado x, con lo que comprobamos que al 6117 le corresponde el 44, como ya sabíamos, y al 9117 el 54.

No es de extrañar que las soluciones de x hayan resultado consecutivas. En realidad, para cada valor de x podemos encontrar N mediante un polinomio de segundo grado. En el ejemplo sería:

N=(x-3)2+x2+(x+6)2 = 3x2+6x+45

Así que para cada par de valores a y b, los valores de N presentan una relación cuadrática con x. Si tomo valores de N más pequeños, para que x comience en 1, y construyo un gráfico, se percibe claramente la relación cuadrática:


Puedes ir comprobando, en otros valores de la tabla, si se cumple la condición encontrada y si x tiene el valor esperado.

Valores de N con esta propiedad

En principio, no todos los números naturales tienen por qué presentar esta equivalencia de sumas. Por ejemplo, 4258 no la posee. ¿Cómo podíamos encontrar los números que admiten esta descomposición para valores adecuados de a, b y m?

La búsqueda de números con la propiedad de simetría se puede basar en recorrer, para cada uno, los valores posibles de a y b, y en lugar de usar m, apoyarnos en los criterios estudiados en párrafos anteriores.

Si consideramos, por ejemplo, que b>a, es claro que b no puede sobrepasar la raíz cuadrada de N, y a, menor que b, de la mitad de esa raíz, ya que ambos se suman. Se podía estudiar una acotación más fuerte, pero esta no nos retrasa mucho. Para cada valor de a y b se estudia si se cumple la condición para N, y después un pequeño ajuste para que las bases de los cuadrados sean todas no negativas.

Hemos creado una función tal que a cada valor de N le hace corresponder la palabra “NO” si no presenta la simetría buscada, o una cadena con los valores de a, b, x y m en caso afirmativo.
Su código es el siguiente:

Public Function essumasim(n) As String
Dim a, b, r, m, p, q, d
Dim es As Boolean
Dim s$

es = False ‘variable que controla si se ha encontrado una solución
a = 1
r = Sqr(n)
s$ = ""
While a <= r / 2 And Not es ‘la variable a no sobrepasa la mitad de la raíz de N
b = a + 1
While b <= Sqr(r ^ 2 - a ^ 2) And Not es ‘acotación para b
q = (3 * n - 2 * a ^ 2 - 2 * b ^ 2 - 2 * a * b) / 9 ‘condición para que exista simetría
If escuad(q) Then
q = (a - b + Sqr(q * 9)) / 3 'valor de x
d = (b - a) * 2 / 3 'desplazamiento
If q + d - b >= 1 Then es = True: m = a: p = b 'evita un sumando negativo o cero
End If
b = b + 1
Wend
a = a + 1
Wend
If es Then essumasim = Str$(m) + ", " + Str$(p) + ", " + Str$(q) + ", " + Str$((p - m) * 2 / 3) Else essumasim = "NO" ‘salida de la función, o un NO o las variables deseadas
End Function

Si aplicamos esta función a los primeros números nos damos cuenta de que existen con simetría más de los esperados. Los primeros son los siguientes (hemos añadido los cuatro parámetros a su derecha).




Los primeros valores con descomposición simétrica de este tipo son:

62, 89, 101, 122, 134, 146, 150, 161, 173, 185, 189, 203, 206, 209, 218, 230, 234, 248, 254, 257, 266, 269, 270, 278, 281, 285, 299, 305, 314, 317, 321, 326, 329, 338, 341, 342, 347, 356, 357, 362, 374, 377, 378, 386, 389, 398, 401, 404, 405, 414, 419, 422, 425, 426, 434, 437, 441, 446, 449, 458, 461, 467, 470, 474, 477, 485, 488, 489, 494, 497,…

Por ejemplo, el 62 presentará las diferencias 1 y 4, un valor central de 3 y un desplazamiento de 2. Lo comprobamos:

(3-1)^2+3^2+(3+4)^2 = 4+9+49 = 62
(5-4)^2+5^2+(5+1)^2 = 1+25+36 = 62

Obtenemos los dos desarrollos con diferencias simétricas, tal como esperábamos.

Los que no aparecen en la tabla, o bien no admiten descomposición en suma de tres cuadrados, como le ocurre al 40, bien las admiten sin simetría o si son simétricas las diferencias, una de ellas es nula.

En el caso del 69 admite dos sumas, pero sus diferencias no son simétricas:

(2-1)^2+2^2+(2+6)^2 = 1+4+64 = 69
(4-2)^2+4^2+(4+3)^2 = 4+16+49 = 69

Otro número, el 114, presenta diferencias simétricas, pero una es nula. Por eso no se incluye en la lista:

114=(7-3)^2+7^2+(7+0)^2
114=(5-0)^2+5^2+(5+3)^2

Versión en PARI

Esta sucesión estaba inédita, y la hemos publicado en OEIS mediante este código en PARI:

is_sym_sum(n)=local(x,e=0,a,b,p);x=1;while(x^2<n\3&&e==0,a=1;while(x^2+(x+a)^2<n&&e==0,z=n-x^2-(x+a)^2; if(issquare(z),z=sqrtint(z);b=z-x-a;if(b>a,p=1;while(p^2<=n/3&&e==0,if(p^2+(p+b)^2+(p+a+b)^2==n,e=1);p+=1)));a+=1);x+=1);e
for(i=1,1000,if(is_sym_sum(i),print1(i,",")))

Sigue a misma metodología organizada de otra forma.

La puedes consultar en la dirección http://oeis.org/A282241

Nos alegra haber podido profundizar en este tema, pues no hemos encontrado un estudio similar.

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.