Una cuaterna pitagórica es la expresión algebraica del teorema de Pitágoras en tres dimensiones, es decir, un conjunto de cuatro números enteros positivos a, b, c y d que cumplen:
Para estudiar bien este concepto, basta visitar, por ejemplo.
https://es.wikipedia.org/wiki/Cuaterna_pitag%C3%B3rica
https://mathworld.wolfram.com/PythagoreanQuadruple.html
En estas páginas y otras similares se encuentran todas las
propiedades interesantes de estas cuaternas. Aquí nos centraremos en la
hipotenusa d. Más concretamente,
dado un número N cualquiera, nos interesarán las posibilidades de expresarlo
como N2=a2+b2+c2.
No distinguiremos entre las cuaternas primitivas y las que
no lo son, ni usaremos la generalización a números enteros. Nuestro interés
será más algorítmico que algebraico. Por eso, recorreremos algunas herramientas
para ver sus posibilidades, sacando de cada una las propiedades oportunas.
Uso de la herramienta
Cartesius
Este problema, por su carácter combinatorio implícito, es
abordable con nuestra herramienta Cartesius, que produce todos los productos
cartesianos de varios conjuntos sometidos a ciertas condiciones. En este caso,
los conjuntos son tres, formados por los primeros cuadrados, para representar a
a2, b2 y c2, y la condición es que su suma
coincida con N2. Lo explicaremos con un ejemplo, el de N=35.
Para resolver la cuestión emplearemos las siguientes
condiciones:
xtotal=3
Indica que combinaremos tres conjuntos. Aquí serían a2,
b2 y c2
xt=1..1224
Damos una cota a cada conjunto de 352-1=1224,
para evitar ceros
xt=filtro(cuadrado)
Cada conjunto se restringirá a los cuadrados
suma=1225
La suma deberá ser 352
Creciente
Se exigen soluciones con los términos crecientes para evitar
repeticiones.
Con el botón Iniciar,
o el Reiterar de la siguiente hoja
“Producto” obtenemos todas las soluciones.
Resultan cinco posibilidades, pero expresadas como
cuadrados. Como las hojas de cálculo te permiten retoques posteriores, bastará
usar la función RAIZ para encontrar sus bases, los valores de a, b
y c. Incluso se pueden cambiar los
rótulos y los fondos:
Hay que advertir, antes de seguir, que en un equipo informático doméstico estos cálculos pueden tardar, en esta época en la que deseamos respuestas rápidas. Todo lo que implique desarrollos combinatorios se ralentizará inevitablemente.
Cartesius es una herramienta potente y de resultados claros,
aunque la redacción de las condiciones puede resultar compleja. Por eso existe
una Guía para su uso en
http://www.hojamat.es/sindecimales/combinatoria/herramientas/cartesius.pdf
Si deseamos más versatilidad, como efectuar el recuento de
las soluciones, expresarlas en modo texto o aplicarles un Buscador, es
preferible acudir, como hemos decidido tantas veces, a la construcción de una
función en VBasic, para su uso en Excel y Calc.
Función de búsqueda
Function espitag3(n) As String ‘Da
como solución un texto
Dim k, p, d, k1, p1, d1, cuenta
Dim s$
s = "" ‘Contenedor de la
solución
cuenta = 0 ‘Número de soluciones
k = 1: p = 3 ‘Variables para formar
cuadrados
While k <= n * n / 2
d = n * n – k ‘N^2 menos el primer
cuadrado
k1 = 1: p1 = 3 ’Inicio del segundo
cuadrado
While k1 <= d / 2
d1 = d - k1
If escuad(d1) And d1 >= k1 And k1 >= k
Then ‘Hay solución
s = s + " ## " + Str$(Sqr(k)) +
"^2+" + Str$(Sqr(k1)) + "^2+" + Str$(Sqr(d1)) + "^2
" ‘Añade una solución
cuenta = cuenta + 1’Incrementa la
cuenta
End If
k1 = k1 + p1: p1 = p1 + 2 ‘Avanza el
primer cuadrado
Wend
k = k + p: p = p + 2 ‘Avanza el segundo
cuadrado
Wend
If s = "" Then s = "NO"
espitag3 = Str$(cuenta) + " : " +
s
End Function
Hay que explicar que los dos primeros sumandos cuadrados se generan sumando números impares. Para ello se usa la variable k para contenerlos, y la variable p para los incrementos. Así, para iniciar el primer cuadrado declaramos k=1,p=3, con lo que el primero es 1^2 y el segundo 1+3=2^2. Terminado de analizar un cuadrado, k se incrementa en p, k=k+p, y p se incrementa en 2 para seguir con los impares.
Al final del proceso se inserta la cuenta de soluciones al
principio del texto.
Aplicamos esta función al 35:
Obtenemos que son cinco soluciones, y se presentan ya en forma de suma por si las deseamos copiar en otras celdas. Como era de esperar, coinciden con las cinco obtenidas con Cartesius.
El que la suma figure en primer lugar nos permite búsquedas
de números con un número determinado de descomposiciones pitagóricas de este
tipo. Por ejemplo, en esta tabla figuran aquellos números que admiten dos
descomposiciones:
Algoritmo en PARI
Podemos traducir todo al lenguaje PARI. No es fácil de
entender el código, que presenta una ventaja, además de funcionar más
rápidamente, y es que imprime también las bases de los cuadrados, pero el
resultado de la función es la cuenta de las descomposiciones, lo que facilita
las búsquedas. En las siguientes líneas puedes consultar el programa creado
para encontrar números con descomposición única:
pitag3(n)={my(k=1,p=3,cuenta=0,d,k1,p1,d1);while(k<=n*n/2,d=n*n-k;k1=1;p1=3;while(k1<=d/2,d1=d-K1;if(issquare(d1)&&d1>=k1&&k1>=k,print(sqrtint(k),", ",sqrtint(k1),", ",sqrtint(d1));cuenta+=1);k1=k1+p1;p1=p1+2);k=k+p;p=p+2);cuenta}
for(i=1,1000,if(pitag3(i)==1,print1(i,",
")))
Obtendremos el resultado
En https://oeis.org/A152829 figuran esos números que sólo admiten una solución. Contiene una conjetura de Colin Baker de que, a partir del 13, se cumple que a(n)=2a(n-3). Se puede comprobar en el listado: 26=2*13, 28=2*14, 48=2*24,…
Lo curioso es que en
nuestra sucesión de dos descomposiciones también se puede enunciar la misma
conjetura:
11, 17, 22, 25, 34, 44,
50, 68, 88, 100,…
En ella 34=2*17,
44=2*22,…
Lo que llama la atención
no es que sea el doble, que algo similar ocurre en las ternas pitagóricas, en
las que se pueden multiplicar todos los sumandos por un mismo factor, sino que
no se interpongan otras soluciones entre un elemento y su doble, además de los
dos de la conjetura.
¿Ocurrirá también con los
que presentan tres soluciones? Lo vemos:
Efectivamente, ocurre, pero con un salto de cinco en lugar de tres: 30=2*15, 36=2*18,…, es decir, a(n)=2a(n-5)
No hay comentarios:
Publicar un comentario