jueves, 15 de junio de 2017

Descomposiciones múltiples del tipo x^2+ky^2

Últimamente nos han surgido cuestiones sobre descomposiciones en suma de cuadrados. Recordamos dos:

http://hojaynumeros.blogspot.com.es/2016/09/expresion-cuadratica-x2ky2-n.html
http://hojaynumeros.blogspot.com.es/2017/01/numero-de-descomposiciones-en.html

Siguiendo esta línea, hoy recorreremos aquellos números que se pueden descomponer en una suma del tipo x^2+ky^2, con k>1, x>0, y>0 de varias formas distintas. Expresado así, es un problema bastante general, que se presta a muchos casos y subcasos, por lo que sólo se desarrollarán algunos, con el fin de aprender a tratarlos y sacar alguna posible propiedad.

Hay un hecho que vale para todos ellos, y es que si N admite una descomposición de un tipo dado x^2+ky^2, con k>1, si lo multiplicamos por un cuadrado admitirá el mismo número de descomposiciones al menos, luego muchas soluciones que encontremos engendrarán otras al multiplicarlas por un cuadrado.

Caso k=2

Si deseamos encontrar todas las expresiones de un número de la forma x^2+2y^2, nuestra mejor herramienta es la que hemos presentado hace pocas semanas bajo el nombre de Cartesius, hoja de cálculo especializada en productos cartesianos condicionados. Puedes descargarla en versión para Excel y LibreOffice Calc, así como las instrucciones en la dirección

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

En este caso bastará concretar: 2 sumandos, uno de ellos un cuadrado, el otro doble de un cuadrado, y que la suma de ambos sea igual al número propuesto. Por ejemplo, para saber  cuántas descomposiciones de este tipo permite el número 969, daríamos a Cartesius estas instrucciones:

xtotal=2
xt=1..33
x1=suc(n^2)
x2=suc(2*n^2)
suma=969

La primera exige que sean dos sumandos. La segunda fija un rango de búsqueda de 1 al 33, para que no se nos escape ningún cuadrado inferior a 969, y las siguientes determinan un sumando n^2 y otro 2*n^2. Así se recorrerán todas las posibilidades, que resultan ser cuatro. Si copias esas instrucciones en Cartesius (zona de condiciones) y pulsas el botón Iniciar obtendrás estos cuatro sumandos:



Traducidos a nuestra cuestión, equivalen a las igualdades

969=1^2+2*22^2=13^2+2*20^2=29^2+2*8^2=31^2+2*2^2

No seguiremos por ahí. Nos interesa buscar números con este tipo de propiedad, y podemos dejar Cartesius solo para comprobar. Nos pasamos al VisualBasic de las hojas de cálculo.

Es fácil diseñar una función que recorra todas las posibilidades de suma del tipo x^2+ky^2 para un número dado. El que tenga forma de función nos permite construir tablas para distintos valores, cosa imposible con Cartesius. Proponemos esta:

Public Function numsumacuad(n, k)  ‘Tiene dos parámetros, el número n y k
Dim x, p

p = 0 ‘Iniciamos el contador a cero
For x = 1 To Sqr(n - k) ‘Al estar x elevada al cuadrado, será inferior a una raíz cuadrada
If escuad((n - x ^ 2) / k) Then p = p + 1 ‘Si la diferencia dividida entre k es cuadrado, vale
Next x
numsumacuad = p ‘Contamos las veces
End Function

Esta función no se puede aplicar a 1, pero ya sabemos que no es suma de cuadrados no nulos.

Así podemos formar tablas como esta:


Vemos que entre 20 y 30 solo tienen solución 22, 24 y 27, y esta, doble. Todos los números que admiten al menos una de estas descomposiciones, se podrán representar como suma de tres cuadrados simétricos. Es sólo una curiosidad, pero atractiva. Así, 24=2^2+4^2+2^2

Este número de soluciones, asignando un 0 al 1, está publicada en http://oeis.org/A216278

Destacamos en negrita el intervalo entre 20 y 30.
0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 2, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 2…

Con la función numsumacuad podemos seleccionar aquellos números que admiten dos representaciones (al menos) distintas del tipo x^2+2y^2. Los primeros son estos:

27, 33, 51, 54, 57, 66, 81, 99, 102, 108, 114, 123, 129, 132, 153, 162, 171, 177, 187, 198, 201, 204, 209, 216, 219, 228, 243, 246, 249, 258, 264, 267, 291, 297, 306, 321, 323, 324, 339, 342, 354, 363, 369, 374, 387, 393, 396, 402, 408, 411, 417, 418, 432, 438, 451, 456, 459, 473, 486, 489, 492, 498,…

Todos los números de la sucesión son compuestos, pues Fermat, Euler y Gauss demostraron que los números primos sólo podían descomponerse como x^2+2y^2 de forma única, y no todos, porque deberían ser congruentes con 1 o 3 respecto al módulo 8.



En esta tabla figuran los primeros números primos que se pueden descomponer de la forma dada, y vemos que sus restos son 1 o 3 módulo 8. Un buen ejercicio es adivinar la descomposición en cuadrados mentalmente: 73=1^2+2*6^2, 89=9^2+2*2^2,…

En este tipo de búsquedas siempre recomendamos el lenguaje PARI como complemento o ampliación. En esta cuestión el código adecuado sería, por ejemplo:

for(n=3,500,p=0;for(x=1,sqrtint(n-2),if(issquare((n - x ^ 2) / 2),p+=1));if(p>1,print1(n,", ")))

Si cambiamos la condición p>1 por p==2 obtendremos los números que admiten exactamente dos descomposiciones del tipo que estamos estudiando:

27, 33, 51, 54, 57, 66, 81, 102, 108, 114, 123, 129, 132, 162, 177, 187, 201, 204, 209, 216, 219, 228, 246, 249, 258, 264, 267, 291, 321, 323, 324, 339, 354, 374, 393, 402, 408, 411, 417, 418, 432, 438, 451, 456, 473, 489, 492, 498,…

Vemos que faltan algunos, como el 99, que admiten más de una descomposición.
En todos estos números se dará la siguiente igualdad

N= a2+2b2=c2+2d2  que equivale a (a+c)(a-c)=2(d+b)(d-b)

De esa identidad se deduce que a y c han de tener la misma paridad, para que coincida con el múltiplo de 2 del segundo miembro, pero entonces (a+c)(a-c) será múltiplo de 4, lo que obliga a que también d y b tengan la misma paridad.

Lo puedes comprobar con los ejemplos.

Algunos de estos elementos son cuadrados

81, 324, 729, 1089, 1296, 2025, 2601, 2916, 3249, 3969, 4356, 5184, 6561, 8100, 9801,…

En ellos se cumple que n2=x2+2y2, o bien (n2-x2)/2=y2, es decir, que (n+x)(n-x)/2=y^2. Podemos interpretar que estos números generan triángulos de catetos enteros cuya área coincide con la de un cuadrado. Por ejemplo, tomamos 1089=33^2. Según nuestra hoja Cartesius admite cuatro descomposiciones del tipo deseado:



Si tomo la segunda, tendré: n=33, x=17, y=20, y se cumple 332=172+2*202, y aplicando los cálculos anteriores, se puede formar el triángulo de lados (33+17, 33-17), es decir 50 y 16, con área 50*16/2=400=202, que efectivamente, es un cuadrado.

Con el primero: (33+11,33-11) se convierte en los lados 44 y 22 de área 44*22/2=484=22^2.

Tipo x^2+3y^2

Este caso ofrece menor interés. Estos son los primeros números que admiten más de una descomposición de ese tipo:

Con más de un caso de sumas de cuadrados

28, 52, 76, 84, 91, 112, 124, 133, 148, 156, 172, 196, 208, 217, 228, 244, 247, 252, 259, 268, 273, 292, 301, 304, 316, 336, 343, 364, 372, 388, 399, 403, 412, 427, 436, 444, 448, 468, 469, …

Los puedes generar con este código PARI o con Cartesius o nuestra función en Visual Basic para Excel.

for(n=4,1000,p=0;for(x=1,sqrtint(n-3),if(issquare((n - x ^ 2) / 3),p+=1));if(p>1,write1("final.txt",n,", ")))

Por ejemplo, 469 se descompone como

469=13^2+3*10^2=19^2+3*6^2

Podemos seguir con otros números de casos. Por ejemplo, con tres o más descomposiciones están:

28, 52, 76, 84, 112, 124, 148, 156, 172, 196, 208, 228, 244, 252, 268, 292, 304, 316, 336, 364, 372, 388, 412, 436, 444, 448, 468, 496,…

Vemos que falta el 469, pero no el 468, que admite tres descomposiciones:
468=62+3*122=152+3*92=212+3*32

Puedes intentar descubrir casos llamativos. Un ejemplo: 2548 es el primero con nueve descomposiciones distintas. Insertamos el desarrollo con Cartesius. Las columnas X4 y X5 son los valores de x e y respectivamente:




Tipo x^2+4y^2

Su interés radica en que produce sumas simétricas de cinco cuadrados. No lo estudiaremos. Tan sólo un ejemplo:

464=10^2+10^2+8^2+10^2+10^2


Tipo 2x^2+3^y2

También este caso presenta el interés de obtener una suma de cinco cuadrados que sea simétrica y con bases alternantes. También damos un ejemplo:

365 =3^2+13^2+3^2+13^2+3^2

La reiteración mata el interés. Es mejor parar aquí y dejar abiertos otros caminos de investigación.

martes, 6 de junio de 2017

Números piramidales (4) Pentágonos


Esta es la cuarta entrada que dedicamos a los números piramidales. Puedes consultar las anteriores mediante la etiqueta "Números figurados".

Hoy desarrollaremos los piramidales pentagonales, que se forman añadiendo a la unidad (el vértice de la pirámide) distintos números pentagonales como si fueran cortes poligonales de la pirámide. Para nosotros es preferible ver los piramidales como suma de pentagonales sucesivos. Así, si estos forman la sucesión 1, 5, 12, 22, 35, 51, 70, 92, 117, 145,… http://oeis.org/A000326, los piramidales correspondientes coincidirán con sus sumas parciales: 1, 6, 18, 40, 75, 126, 196,…
Los primeros piramidales pentagonales son:

1, 6, 18, 40, 75, 126, 196, 288, 405, 550, 726, 936, 1183, 1470, 1800, 2176, 2601, 3078, 3610, 4200, 4851, 5566, 6348, 7200, 8125, 9126, 10206, 11368, 12615, 13950, 15376, 16896, 18513, 20230, 22050, 23976, 26011, 28158, 30420, 32800, 35301, 37926, 40678,…
http://oeis.org/A002411

Al igual que en entradas anteriores sobre el mismo tema, puedes usar nuestra calculadora calcupol para recorrerlos. Descárgala, si lo deseas, desde

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

Para recorrer la sucesión basta fijar el tipo en Piramidal y el orden en 5. Después se escribe un 1 en pantalla y cada pulsación de la tecla PROX nos devolverá un térmiuno nuevo de la sucesión.

En la imagen hemos llegado a 405:



Con la tecla ANT puedes retroceder, y entre ambas recorrer el rango de términos que desees.

Fórmula

Los números piramidales pentagonales (PPENT) siguen una expresión polinómica muy sencilla:



Esta fórmula se obtiene particularizando para 5 la general de los piramidales:



Por tanto, podemos afirmar que los piramidales pentagonales son los promedios entre el cuadrado y el cubo de un número. Por ejemplo:

405 es el piramidal pentagonal número 9, y se cumple que 405=(81+729)/2=810/2=405

Esto nos permite crear una tabla a partir de la sucesión de números naturales:



También la fórmula obtenida descubre que una pirámide pentagonal de lado k equivale a k veces el triangular del mismo lado. Por ejemplo, la pirámide de lado 6, 126, es seis veces mayor que 21, que es el triangular número 6.

Otra interpretación

El número piramidal pentagonal PPENT(n) equivale a la suma de los n+1 múltiplos menores de n. En efecto, esos múltiplos serán n*0, n*1, n*2,…n*n, y formarán progresión aritmética de diferencia n, luego su suma será (n*0+n*n)*(n+1)/2 = (n^3+n^2)/2, que es la expresión descubierta más arriba. Aquí tienes el esquema para PPENT(7)=196

Si extraemos factor común el 7, nos queda la suma 0+1+2+3+…que es un número triangular, tal como vimos unos párrafos más arriba. Esto nos descubre otra interpretación, y es que un número piramidal pentagonal equivale a un “prisma” triangular de la misma altura.

Expresado como sumatorio:



Recurrencia

Estos números presentan tantas formas de generación que el procedimiento recurrente no es muy necesario. No obstante, existen varias fórmulas de recurrencia. La más simple es

ppent(n) = 3*ppent(n-1) - 3*ppent(n-2) + ppent(n-3) + 3.

Es una recurrencia de tercer orden no homogénea. Se puede demostrar con un simple desarrollo algebraico, si recordamos que ppent(n)=(n^3+n^2)/2.

Desarrollamos:

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

Si nos da pereza simplificar, podemos acudir a Wiris, wxMaxima u otro similar. Usamos el segundo y obtenemos:


Como el resultado es (n^3+n^2)/2, hemos demostrado la recurrencia. No es muy útil.

Cuestiones combinatorias

Es muy ilustrativo el estudio de algunas relaciones entre temas propios de números enteros con otros combinatorios. Muchas sucesiones poseen sentidos bastante simples si las estudiamos desde ese punto de vista. Los piramidales pentagonales también las admiten.

Bolas y cajas

Imagina que disponemos de n bolas que deseamos guardar en n cajas, pero con la caprichosa condición de que solo usaremos 2 de ellas, dejando vacías las demás. En ese caso, el número de formas de guardar esas bolas es PPENT(n-1)
Así que decidimos usar solamente dos cajas. En la imagen nos hemos decidido por la 3 y la 6:


Nos comprometemos a guardar las n bolas en esas dos cajas. Es evidente que tenemos n-1 posibilidades, si no deseamos que una quede vacía: 1+(n-1), 2+(n-2), 3+(n-3), …(n-1)+1

Por otra parte, la elección de las cajas, que en nuestro ejemplo eran la 3 y la 6, se puede efectuar de C(n,2) formas, combinaciones de n cajas tomadas de 2 en 2, es decir n(n-1)/2

Multiplicamos las formas de elegir dos cajas por las de rellenarlas, y tenemos:
P= n(n-1)/2*(n-1)=(n^3-2n^2+n)/2

Esta expresión coincide con PPENT(n-1)=((n-1)^3+(n-1)^2)/2=(n^3-2n^2+n)/2

Cadenas de caracteres

En esta cuestión imaginamos que formamos todas las palabras posibles de tres caracteres en un alfabeto de n caracteres, y consideramos iguales entre sí aquellas palabras que contienen los mismos caracteres, pero invertidos.

Por ejemplo, supongamos las cinco letras A, B, C, D, E agrupadas en palabras de tres AAA, ABC, CBD,… y consideramos idénticas las inversas entre sí, como CBD, que la considaremos equivalente a DBC.

Con estas condiciones, el número de palabras con un alfabeto de n caracteres será PPENT(n).

Tampoco es difícil de razonar: El número total de palabras será n*n*n, pero estas se dividen en dos grupos:


  •  Simétricas (capicúas o palindrómicas) que se contarán una vez. Su número es n*n=n^2 (el tercer elemento está obligado)
  •  No simétricas, cuyo número se ha dividir entre 2 para eliminar las palabras simétricas entre sí. Como su número es (n*n*n-n*n), al dividir entre 2 quedará (n*n*n-n*n)/2=n^2(n-1)/2

Sumamos ambos casos:

P=n^2+n^2(n-1)/2 = n^2(2+n-1)/2 = n^2(n+1)/2 = (n^3+n^2)/2=PPENT(n)

Así hemos demostrado la equivalencia. Lo vemos con el caso n=5:

Con un alfabeto de 5 caracteres se forman 5*5*5=125 palabras, de las que 5*5=25 son capicúas, y 125-25=100, no capicúas. Estas segundas hay que contarlas una vez, luego dividimos entre 2, quedando 50. Sumamos ambos casos y obtenemos 50+25=75, que es el quinto número piramidal pentagonal.

lunes, 29 de mayo de 2017

Cartesius(4) Combinaciones


Llegamos a la cuarta entrada de esta serie sobre la herramienta Cartesius. Las anteriores las puedes leer previamente si eliges la etiqueta Cartesius en el lateral de este blog:


Recordamos también la dirección de descarga:

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

Combinaciones

Cartesius maneja de igual forma variaciones que combinaciones. La única diferencia es que en estas hay que añadir CRECIENTE, para que el orden no intervenga y cada arreglo sea en realidad un conjunto. Si además se desea que no existan repeticiones, se añade NO REPITE.

Combinaciones ORDINARIAS

Ya lo hemos explicado: basta añadir CRECIENTE y NO REPITE  a las condiciones. Por ejemplo, así construiríamos las combinaciones de 7 elementos tomados de 5 en 5:


XTOTAL=5 indica que las combinaciones constarán de cinco elementos cada una, XT=1..7 define los elementos del conjunto base, Y CRECIENTE y NO REPITE ya están explicados.

Te resultarán 21, según la clásica fórmula

que en este caso da C7,5=7!/(5!2!)=21. Son estas:



Es un tema sencillo, que podemos usar para comprobar desarrollos construidos manualmente.

Combinaciones con repetición

Es evidente que si suprimimos la condición NO REPITE resultarán combinaciones con repetición.

Si combinamos 6 elementos tomados de 3 en 3, de forma creciente y pudiendo repetir elementos, nos resultarán combinaciones con repetición. Usamos estas condiciones:



Resultan 56 combinaciones. Aquí vemos las primeras:



Este resultado está de acuerdo con la fórmula general:


En efecto, CR6,3 = 8!/(3!5!) = 8*7*6/6 = 56

Se comprende que esta hoja es muy útil para comprobar cálculos efectuados con otras herramientas. Pero también permite investigar condiciones nuevas. ¿Qué hubiera ocurrido si añadimos la palabra REPITE? Una primera idea es que no se alteraría nada, que resultarían combinaciones con repetición, pero no es exactamente así. Si desarrollamos con esa nueva condición el resultado no es ya 56, sino 36. Como habrás comprendido, ahora sólo se generan arreglos que tengan repetición con toda seguridad, mientras que antes entraban todos, los que contenían repeticiones y los que no. La fórmula en este caso sería la diferencia entre el número de combinaciones con repetición y las que no la admiten:



En este ejemplo los cálculos serían Crep6,3=8!/(3!5!) - 6!/(3!3!)=56-20=36
Como en los ejemplos anteriores, se pueden añadir otros condicionamientos. Podemos fijar una cuenta de elementos, pero sólo en el caso de combinaciones con repetición. Imaginemos que en el ejemplo anterior deseamos que se permitan repeticiones y que el elemento 4 se repita dos veces. Quedarían las condiciones así:



El resultado sería



Es fácil de entender que sólo resulten cinco: el par 4 4 acompañado de 1, 2, 3, 5 o 6.

Sumas

Un tipo especial de combinaciones, al que quizás volvamos más adelante son los desarrollos de un número en sumas según una lista

 (ver http://hojaynumeros.blogspot.com.es/2010/02/frobenius-y-los-mcnuggets.html)

Se trata de partir de una lista concreta de números, por ejemplo los primeros cinco primos, y encontrar la forma de descomponer otro número como suma de ellos. En Cartesius puedes efectuarlo con todos o con parte de ellos. Por ejemplo, ¿se puede descomponer el número 28 en suma de los siete primeros primos 2, 3, 5, 7, 11?

Para ello usaremos una condición nueva, ETIQ, que sustituye los números que se van a combinar por otros predefinidos en la hoja Almacén de datos. En otro momento lo explicaremos con más detalle. En este caso bastaría escribir XT=ETIQ(PRIMO) para que los elementos a combinar pasaran de 1, 2, 3, 4 y 5 a los primos 2, 3, 5, 7 y 11.



Las condiciones completas serían:


Ya podrás interpretarlas, al menos parcialmente. Nos obligan a: combinar cinco números tomados de 5 en 5, que han de ser primos y sumar 28. Lo desarrollaremos de forma creciente para evitar soluciones idénticas pero con distinto orden.

El resultado es


Vemos que existen cuatro formas de engendrar el 28 con números primos (con repetición). Si añadiéramos la condición NO REPITE, sólo obtendríamos la segunda: 2+3+5+7+11. ¿Y con menos sumandos? Sustituimos XTOTAL=5 por XRANGO=5, a ver qué ocurre.

Lo programamos y descubrimos cuatro soluciones más, porque XRANGO recorre las posibilidades de suma desde 1 sumando hasta 5:


Por terminar esta presentación rápida, comprobamos que Cartesius no sólo puede calcular la suma, sino, en casos preparados, descubrir su naturaleza. Si en lugar de SUMA=28 hubiéramos escrito SUMA:PRIMO, se desarrollarían todas las sumas entre 2, 3, 5, 7 y 11 cuyo resultado es primo. Obtenemos 76 posibilidades, que van desde las más simples, como 2+3 o 2+5 hasta la de mayor suma, 7+7+11+11+11 =47.

Si impedimos que se repitan sólo obtendríamos 12, contando las sumas unitarias:


Este tema de descomposiciones en sumas da para otras entradas. En concreto, dedicaremos una a particiones de un número y otra a sumas especiales.

jueves, 18 de mayo de 2017

Sumas anagramáticas


En mi cuenta de Twitter, @connumeros, publiqué el 6/4/17 la siguiente identidad, que mi hijo Juan Luis, @juanlroldan, calificó de anagramática:

6417=4671+1746

En ella los dos sumandos poseen los mismos dígitos que el resultado. Esto está ya estudiado y publicado en http://oeis.org/A203024:

Numbers a = b + c where a, b, and c contain the same decimal digits.

0, 954, 2961, 4932, 5013, 5022, 5031, 5238, 5823, 6147, 6417, 7614, 7641, 8235, 8523, 9045, 9108, 9180, 9324, 9504, 9540, 9594, 9612, 9684, 9774, 9864, 9954, 20961, 21150, 21501, 24831, 24921, 25011, 26901, 27810, 28107, 28314, 29016, 29214, 29610, 29691, 29961

Lo que nos interesa aquí es la forma de conseguirlo con hoja de cálculo. No esperéis, por tanto, teoría matemática. Quienes no disfrutéis con la programación podéis dejar de leer esta entrada.

¿Qué necesitamos para reproducir y ampliar esta lista?

Si nos inspiramos en el código PARI de Charles R Greathouse IV incluido en la página citada, la estrategia podría ser la siguiente:

1) Para cada número dado, intentamos construir el más pequeño posible con sus mismos dígitos. Por ejemplo, para 36621 deberíamos poder construir 12366 de forma automática. Llamaremos digiordenado a la función que consiga esto. Así digiordenado(36621)=12366

Con ello logramos dos cosas: conseguir el sumando menor posible y tener un elemento de comparación anagramático. Si dos números coinciden en sus valores mediante digiordenado, es que son anagrama uno de otro.

2) Una vez obtenido el conjunto ordenado de dígitos, bastará comenzar a probar el primer sumando y comprobar si los tres, total y dos sumandos, son anagramáticos.

Función DIGIORDENADO

Para construir la función citada sobre un número N deberemos

* Extraer los dígitos de la cadena N
* Ordenarlos
* Reconstruir de nuevo un número D, que será el valor de digiordenado(N).

Extracción de cifras

Existen varios métodos para extraer cifras de un número N expresado en el sistema de numeración decimal (o en otro cualquiera cambiando 10 por la base). Elegimos el de truncar los cocientes de N entre 10r y 10r+1, este último multiplicado por 10. Por ejemplo, para extraer el 5 del número 34521 deberíamos calcular:

Int(34521/100)-10*Int(34521/1000) = 345 – 10*34 = 345-340 = 5

También podíamos haber convertido N en una cadena y después extraer los caracteres de esa cadena. Así se efectúa en PARI, pero nos ha parecido mejor no acudir a cadenas.

En el listado de más abajo puedes estudiar su aplicación a nuestro problema.

Ordenación

Vamos a trabajar con pocos dígitos, por lo que el método de ordenación elegido no es relevante. Nos hemos decidido por el de “burbuja”, que es bastante comprensible. Puedes consultar

https://es.wikipedia.org/wiki/Ordenamiento_de_burbuja

Reconstrucción

Para reconstruir el número de nuevo multiplicamos y sumamos, en lugar de las operaciones de  dividir y restar de la extracción. Por ejemplo, para reconstruir las cifras 2, 3, 7 calcularíamos:

0*10+2=2
2*10+3=23
23*10+7=237

Aunque es un proceso sencillo, no es trivial, por lo que merece la pena que lo estudies.

Estas tres técnicas las tienes integradas en la función digiordenado:

Public Function digiordenado(n)
'Aplicable solo a números naturales de al menos dos cifras

Dim l, i, j
Dim c
Dim ci(10)

‘Calcula el número de cifras
l =  Int(Log(n) / Log(10) + 1)
'Extrae las cifras y las deposita en la matriz ci(i)
For i = 1 To l
c = 10 ^ (i - 1)
ci(i) = Int(n / c) - 10 * Int(n / c / 10)
Next i
'Ordena las cifras por el método de la burbuja
For i = 1 To l
For j = 1 To l - 1
If ci(j) > ci(j + 1) Then c = ci(j): ci(j) = ci(j + 1): ci(j + 1) = c
Next j
Next i
'Acumula de nuevo las cifras para obtener digiordenado
c = 0
For i = 1 To l
c = c * 10 + ci(i)
Next i
digiordenado = c
End Function

Suma anagramática

Ya sabemos construir un número con los dígitos ordenados de otro. Podemos retroceder a nuestra cuestión primera, que son las sumas del tipo

6417=4671+1746

Para cada número, obtenemos su “digiordenado”, que en este caso sería 1467, primer valor a probar como primer sumando, hasta llegar a 6417/2. Para cada sumando S comprobamos si coincide en dígitos con el número total N, mediante la igualdad digiordenado(S)=digiordenado(N). En caso afirmativo repetimos la comprobación con N-S. Si los tres coinciden en sus dígitos, hemos encontrado una suma anagramática.

A continuación lo presentamos en forma de función. Le daremos como tipo de variable el de texto, para que así el resultado sea “NO” en el caso de no admitir la descomposición y la concatenación de los sumandos si existe una descomposición de ese tipo. En el ejemplo resultaría “ 4671 1746”

Function anagram$(n) ‘Función tipo texto
Dim a, b, c
Dim anag$

anag = "NO" ‘En principio no se espera un resultado positivo
a = digiordenado(n) ‘se busca el menor número con los dígitos dados
b = a
While b <= n / 2 And anag = "NO" ‘b recorre desde a hasta n/2
c = n – b
‘Prueba de identidad de dígitos
If digiordenado(b) = a And digiordenado(c) = a Then anag = Str$(b) + Str$(c)
‘En caso positivo se concatenan los sumandos
b = b + 1
Wend
anagram = anag
End Function

Podemos aplicar este test a varios números:



Comprobamos que los que figuran en la lista de los primeros párrafos dan como resultado los dos sumandos y los que no están devuelven un “NO”.

Búsqueda de sumas anagramáticas

Con las funciones presentadas podemos, mediante un bucle FOR-NEXT, encontrar todas las incluidas en un intervalo de números dado. Como ya están publicados en http://oeis.org/A203024 los primeros casos hasta 29961=12969+16992, podíamos intentar encontrar los siguientes, que resultan ser 30168=13860+16308 y 30186=13806+16380, y así podíamos seguir. El proceso es muy lento, y habrá que dejar al ordenador trabajando solo.

Búsqueda de sumandos anagramáticos

Podíamos rebajar las exigencias, y en lugar de buscar la identidad de dígitos entre suma y sumandos, prescindir del total y buscar sólo la igualdad entre sumandos. En este caso resultarían muchos más números. Deberemos exigir, para eliminar soluciones triviales, que los sumandos sean distintos. También hay que tener en cuenta los que comienzan por un cero, que no suele aparecer en el resultado, a los que también eliminaremos. Con estas condiciones, los primeros números de este tipo son: 303=102+201, 310=119+191, 321=129+192, 330=120+ 210,...

Es lógico pensar en otra posibilidad, y es que los dígitos del total coincidan con un sumando al menos. Si prescindimos de ceros iniciales, los primeros casos resultantes son: 31=13+18, 41= 14+27, 51=15+36,…No parecen tener interés.

lunes, 8 de mayo de 2017

Números piramidales (3) Cuadrados

Esta es la tercera entrada de la serie. Si deseas, puedes leer las anteriores, publicadas en las direcciones

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

http://hojaynumeros.blogspot.com.es/2017/04/numeros-piramidales-2-tetraedros.html


Hoy nos dedicaremos al estudio de los números piramidales cuadrangulares, o “pirámides cuadradas”, que se forman al apilar números cuadrados consecutivos.

Puedes hacerte una idea con las imágenes y definiciones contenidas en Wikipedia


https://es.wikipedia.org/wiki/N%C3%BAmero_piramidal_cuadrado

Los primeros números piramidales cuadrados son:

0, 1, 5, 14, 30, 55, 91, 140, 204, 285, 385, 506, 650, 819, 1015, 1240, 1496, 1785, 2109, 2470, 2870, 3311, 3795, 4324, 4900, 5525, 6201, 6930, 7714, 8555, 9455,…

(http://oeis.org/A000330)

Según su definición, cada piramidal cuadrado será equivalente a la suma 1+4+9+16+…, pero se conoce, y es muy popular, la fórmula de la suma de los n primeros cuadrados, que es igual a n*(n+1)*(2*n+1)/6, luego, si llamamos PCUAD(n) al enésimo piramidal cuadrado tendremos:


Si descomponemos 2n+1 en (n+2)+(n-1) resulta


Al igual que un cuadrado se descompone en dos triángulos consecutivos, aquí serían dos tetraedros: Todo número piramidal cuadrado es suma de dos piramidales triangulares consecutivos.

Lo podemos comprobar con nuestra calculadora especializada calcupol, que puedes descargar desde

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

Elegimos n=9 y con la calculadora vamos obteniendo:

Secuencia de teclas: 4 PIR 9 =, y nos da el piramidal cuadrado 285



Con la secuencia 3 PIR 9 = obtenemos la pirámide triangular 165, y con 3 PIR 8 =, la anterior, 120, y se verifica que 165+120=285.

Si recordamos que los piramidales triangulares (tetraedros) son suma de triangulares y los piramidales cuadrados suma de cuadrados, en hoja de cálculo queda



Aquí vemos que los números triangulares engendran las pirámides triangulares, que si sumamos por filas, cada dos triangulares forman un cuadrado, y su suma el piramidal pedido. Al final,  dos pirámides triangulares consecutivas suman la cuadrangular correspondiente. Merece la pena estudiar con detalle el esquema de cálculo.

Otra forma de generar piramidales cuadrados a partir de los triangulares es el cálculo mediante esta fórmula:

Basta desarrollar:

((2n+2)(2n+1)2n)/(6*4)=n(n+1)(2n+1)/6, que es la fórmula usual, según vimos más arriba.

En este tipo de propiedades se basa esta otra generación de piramidales cuadrados (ver http://oeis.org/A000330). Formamos un triángulo como el del esquema, que está construido sobre n=5. Se entiende fácilmente:
  1
  1  2
  1  2  3
  1  2  3  4
  1  2  3  4  5
  1  2  3  4
  1  2  3
  1  2
  1

Hemos situado un 1 en una base de 2*5-1 elementos, un 2, en la siguiente de 2*5-3, después un 3 2*5-5 veces, y así hasta llegar a un 5. Lo que propone este esquema es que

Se puede demostrar por inducción recorriendo el esquema: PCUAD(1)=1, PCUAD(2)=1+1+1+2=5=1+4, PCUAD(3)=1+1+1+1+1+2+2+2+3=14=1+4+9

Se generan así 1, 5 y 14, los primeros piramidales. Para demostarlo para n+1 suponiéndolo correcto para n, bastará considerar, por definición, que los sumandos nuevos al ampliar el esquema de n a n+1 son:

1+(1+2)+(2+3)+(3+4)+(4+5)+…(n+n+1)=1+3+5+7+…2n+1=(n+1)^2, luego si se incrementa en un cuadrado, dará lugar al siguiente piramidal cuadrado, lo que completa la demostración.

Se puede dar otra interpretación a esta fórmula, y es que representa la suma de la función MÍNIMO a todos los pares formados por el conjunto 1..n consigo mismo. Para entenderlo lo construimos para n=5



En el esquema se han situado los mínimos de cada par fila-columna en la celda correspondiente, y hemos reproducido el esquema de más arriba: el 1 se repite 9 veces, el 2, 7 veces, el 3, 5…y así hasta el último 5 que se repite una vez. Coincide, por tanto, con la fórmula explicada. Por eso, en la última fila aparecen los piramidales cuadrados (Enrique Pérez Herrero, Jan 15 2013)

Esta generación la usaremos más adelante.

Curiosidades

Cuadrados que se ven en una cuadrícula.

Un acertijo muy popular consiste en saber ver todos los cuadrados contenidos en una cuadrícula también cuadrada.



Para n=1 se ve 1 cuadrado, para n=2, 5 cuadrados, para n=3, 14, luego son números piramidales cuadrangulares. Lo vemos: En la cuadrícula de la imagen hay 36 cuadrados de una unidad, y de 2 unidades ha de haber 25, ya que se puede duplicar o copiar de cinco formas distintas por filas o por columnas, y así, el de tres unidades se copia 3*3=9 veces, hasta que llegamos al total del que sólo existe una copia, luego S=36+25+16+9+4+1=91, que es la sexta pirámide cuadrangular.

Permutaciones con el tercer elemento mayor o igual

Los números piramidales cuadrados coinciden también con las variaciones de n elementos tomados de 3 en 3 con repetición, considerando tan solo aquellas en las que el tercer elemento es mayor o igual que los anteriores. En efecto, basta descomponer las variaciones binarias en conjuntos según el máximo valor de sus elementos. Lo aclaramos con un ejemplo. Imagina las variaciones binarias de 6 elementos, 36 en total:



A cada una le hemos adosado el máximo valor que presenta. Tenemos 9 con el máximo 5, a las que solo podemos adosar como tercer elemento otro 5. Después vemos 7 con máximo 4, que admiten una ampliación con 2 elementos, el 4 y el 5. Para el 3 como máximo se presentan 5 arreglos y se pueden ampliar con 3, 4 y 5. Resumiendo, los posibles arreglos de tres elementos en los que el tercero sea mayor o igual que los otros vendrán dados por este cálculo:

9*1+7*2+5*3+3*4+1*5=9+14+15+12+5=55=1+4+9+16+25. Nos ha resultado PCUAD(5)

No hay nada sorprendente en esto, ya que hemos reproducido la fórmula que demostramos más arriba:

Con nuestra hoja Cartesius puedes comprobarlo

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

Basta escribir las condiciones (en el ejemplo para n=5)



Obtendrás 55 para n=5. Puedes ir cambiando xt=1..5 por otro intervalo y obtendrás el número piramidal correspondiente.

Suma de productos de cuadrados

Terminamos la entrada con otra propiedad curiosa, y es que el piramidal PCUAD(n) es la raíz cuadrada de la suma de todos los cuadrados (i*j)^2 en los que tanto i como j recorren los valores 1,2..n. Lo puedes estudiar en este esquema:



En él hemos construido todos los cuadrados y hemos sumado los valores inferiores a cada n en la fila de abajo. Se destaca en color el caso n=5 para que lo sigas mejor. Al extraer la raíz cuadrada en la parte inferior resultan los primeros piramidales cuadrados.

No es difícil razonarlo. Recorre la primera columna de las sumas, por ejemplo la que tiene fondo de color. Sus sumandos 1+4+9+16+25 forman el piramidal cuadrado 55. La segunda equivale a la primera multiplicada por 4, luego su suma será 55*4, y las siguientes 55*9, 55*16 y 55*25. Si sacamos factor común en las sumas resultará 55(1+4+9+16+25)=55*55, luego su raíz cuadrada será el piramidal pedido.

De igual forma se puede razonar que si tomamos productos triples (i*j*k)^3, su raíz cúbica será también igual al piramidal cuadrado correspondiente.

Para terminar, una curiosidad: el único piramidal cuadrado que a su vez es un cuadrado es el 4900.

jueves, 27 de abril de 2017

Curiosidades con cifras a trozos


Hace unas semanas se publicó en Twitter la siguiente curiosidad:


Al resolverla he tenido la idea de buscar situaciones semejantes que se puedan resolver con hoja de cálculo, que es lo nuestro, o con PARI, que permite más velocidad en las búsquedas. Para ello necesitaré la función TROZOCIFRAS, que extrae un grupo de cifras de la expresión decimal de un número. Deberá tener tres parámetros. Así, TROZOCIFRAS(m;n;p)  extraerá en las cifras del número m aquellas que comienzan en el número de orden n y terminen en p. Por ejemplo, TROZOCIFRAS(28732;2;4)=873. Hay que advertir que se cuentan las cifras de derecha a izquierda. Así, TROZOCIFRAS(876253;1;5)=76253.

Esta función necesita para su funcionamiento otra, NUMCIFRAS(m), función que nos cuenta las cifras de un número natural. Dejamos los listados de TROZOCIFRAS y NUMCIFRAS para el Anexo de esta entrada. Hemos suprimido, por brevedad, la condición de que m sea natural. Puedes copiarlos en la sección de funciones y macros de tu hoja de cálculo.

Con estas dos funciones, la condición del acertijo se expresaría como

If Sqr(trozocifras(m;2;3))+trozocifras(m;1;1)=sqr(m) then print(m)

Lo aplicamos a números de tres cifras, para no tener que añadir más condiciones, y al recorrer desde 100 hasta 999 aparece la solución, 169, que cumple que RAIZ(169)=RAIZ(16)+9=4+9=13

Podemos escribir:

For m=100 to 999
If Sqr(trozocifras(m;2;3))+trozocifras(m;1;1)=sqr(m) then print(m)
Next m

Prueba algo similar con cuatro cifras. Si las descompones en grupos de dos, no existe ninguna propiedad similar, es decir:


Tampoco parece existir solución para 


Hay más posibilidades y con mayor número de cifras. Lo dejamos abierto.

En el lenguaje PARI la función TROZOCIFRAS queda como 

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

y la búsqueda

cutdigit(a, p, q)=(a%10^q)\10^(p-1)
for(n=100, 999, if(sqrt(cutdigit(n, 2, 3))+cutdigit(n, 1, 1)==sqrt(n), print(n)))

Comprobamos que encuentra el 169



Otra adivinanza

¿Existe algún número de tres cifras ABC que cumpla que ABC=AB*C+A*BC? 

Si no deseas ver la solución, no sigas leyendo e intenta tú una búsqueda.

Bastará complicar un poco las condiciones anteriores, por ejemplo, así:

For m=100 to 999
If trozocifras(m;2;3)*trozocifras(m;1;1)+trozocifras(m;3;3)*trozocifras(m;1;2)=m then print(m)
Next m

Hemos encontrado así la solución única, que resulta ser 655, ya que 65*5+6*55=325+330=655. Puedes intentarlo con PARI.

Juego de las matrículas

En este invierno, Joseángel Murcia, @tocamates propuso en Twitter un juego de encontrar en nuestros paseos matrículas españolas (cuatro dígitos) en los que los dos últimos formaran el producto de los dos primeros. La cuestión era más lúdica que matemática, pero con nuestra función TROZOCIFRAS se puede conseguir un listado. Basta plantear la condición

For m=1000 to 9999
If trozocifras(m;1;2)=trozocifras(m;4;4)*trozocifras(m;3;3) then print(m)
Next m

Estos son, por ejemplo, los que comienzan en 3 y cumplen la condición:


Evidentemente, esto no tiene más valor que el de un ejemplo trivial.

Menos trivial es preguntar si una matrícula ABCD cumple que (AB)^2+(CD)^2=ABCD.

La respuesta es que existen dos soluciones, 1233=12^2+33^2 y 8833=88^2+33^2. Lo puedes comprobar con la condición

If trozocifras(m;3; 4) ^ 2 + trozocifras(m; 1; 2) ^ 2 = m Then print m

Un trozo múltiplo de otro

A veces las búsquedas de este tipo se deben acotar un poco para evitar resultados triviales. Proponemos otro ejemplo:

¿En cuántos números de tres cifras ABC se cumple que AB es múltiplo de BC?

En esta propuesta, si nos limitamos a lo que se pide, nos resultan demasiados casos, con lo que pierden interés:


Se observa que resultan casos triviales en los que B=0, lo que facilita que se cumpla la condición, o aquellos, como el 333, en el que AB=BC, con lo que es múltiplo trivialmente. Buscaremos de nuevo, pero exigiendo que BC sea mayor que 9, para evitar el cero central, y que AB<>BC. De esta forma obtenemos un resultado más restringido.

421,  517, 526, 724, 842, 913, 923, 931, 947

Es curioso que todos presentan cifras distintas.

Anexo

Public Function numcifras(n)
'Calcula el número de cifras enteras de un número natural. Si no lo es, devuelve un cero

Dim nn, a

a = 1: nn = 0
While a <= n
a = a * 10: nn = nn + 1
Wend
numcifras = nn
Else
numcifras = 0
End Function


Public Function trozocifras(m, n, p)
‘Extrae cifras de m desde el orden n (por la derecha) hasta el orden p. Si no es lógico devuelve -1
Dim a, b, c, d


c = numcifras(m)
If n > c Or p > c Then
  trozocifras = -1
  Else
  a = 10 ^ p
  d = 10 ^ (n - 1)
  b = m - Int(m / a) * a
  b = Int(b / d)
  trozocifras = b
  End If
Else
trozocifras = -1
End Function

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.