Story Transcript
SIGMA 32
EN BUSCA DEL ARCA PERDIDA Rafael Losada Liste (*) INTRODUCCIÓN: ESE LUGAR LLAMADO DESCONOCIMIENTO HUMANO En Matemáticas aparecen con relativa frecuencia ciertos objetos o relaciones entre objetos cuya existencia es un misterio. Por una parte, nadie ha demostrado hasta el momento su imposibilidad de existencia. Por otra, nadie "los ha visto". Fue uno de estos objetos el que llamó mi atención en un momento determinado. Me encontraba curioseando por el universo matemático, navegando entre páginas de Internet, cuando desembarqué en una que recogía algunas conjeturas todavía sin demostrar. De algunas de ellas ya conocía su historia y, de paso, reconocía la extrema dificultad de su estudio (al tiempo que la engañosa sencillez de su enunciado). Pero hubo una conjetura que atrajo fuertemente mi atención porque desconocía su historia, es decir, ignoraba qué insondable abismo debía contener para que los esfuerzos realizados por demostrarla se precipitasen en él. Se trata de una simple caja. Tal vez la caja soñada por algún pitagórico, pues todas sus medidas principales resultan ser números naturales.
El gato de Schrödinger
En cierto sentido, recuerda a la paradoja del gato de Schrödinger, también encerrado en una caja, de la mecánica cuántica. Mientras no abramos la caja, el gato se encuentra en un estado indeterminado, entre vivo y muerto. Aquí sucede algo similar. Mientras no demostremos la existencia o inexistencia de esta caja, permanece en un limbo indeterminado, en algún lugar de la esfera del "desconocimiento humano".
(*) Profesor de matemáticas del IES de Pravia (Asturias).
Noviembre 2008 • 2008ko Azaroa
85
Rafael Losada Liste
También recuerda a la paradoja "verzul" de Nelson Goodman, ejemplificada en la supuesta propiedad de ciertos objetos de ser verdes hasta determinada fecha futura (pongamos el 2 de febrero del año 2222), y azules a partir de ella. ¿Son las esmeraldas, por ejemplo, verzules? En el caso de la caja, hasta la fecha su existencia es ignorada. ¿Saldrá de su limbo, en una fecha futura, esa caja pitagórica? Este artículo recrea un viaje en busca del abismo de esta pitagórica caja cuántica o verzul, esta arca perdida en algún lugar de nuestro desconocimiento, y describe las cosas interesantes que me encontré en el camino.
EL BRICK DE EULER Conjetura: No existe la "caja perfecta". Eso sí que es un enunciado breve. Cinco palabras. Ahora tendré que averiguar a qué se refiere. Una caja perfecta, también llamada cuboide perfecto, es un brick de Euler... Eh, un momento, ¿qué es eso de un "brick de Euler"?
L. Euler
Se conoce como brick de Euler a cualquier cuboide (también llamado prisma rectangular u ortoedro; una caja, vamos) en donde las aristas y las diagonales de las caras son números naturales.
El brik
86
SIGMA Nº 32 • SIGMA 32 zk.
En busca del arca perdida
Basta un vistazo al brick para darse cuenta que las relaciones existentes entre diagonales y aristas se pueden fácilmente traducir a ecuaciones haciendo entrar en escena a uno de los teoremas más famosos de todos los tiempos. Teorema de Pitágoras. Dado un triángulo rectángulo, el cuadrado de la hipotenusa es igual a la suma de los cuadrados de los catetos. Por lo tanto, algebraicamente, las aristas y diagonales de un brick de Euler deben ser solución del siguiente sistema de ecuaciones diofánticas (se buscan sólo las soluciones naturales) de segundo grado:
Existen infinitas cajas con estas características, la menor de las cuales tiene como aristas 44, 240 y 117:
El brick de Euler
Dado un brick de Euler en el que sus aristas tienen algún divisor común, dividiendo por este, encontraríamos un brick menor. Nos interesan pues solamente los bricks primitivos, es decir, aquellos cuyas aristas tienen máximo común divisor igual a 1. Esto implica que al menos una arista ha de ser impar. Ahora bien, si hubiera dos aristas impares, la diagonal de la cara correspondiente sería par, y su cuadrado también. Pero es fácil demostrar, por reducción al absurdo, que un cuadrado par no puede ser suma de dos cuadrados impares. Así que, en todo brick primitivo, dos de sus aristas (pongamos x e y) deben ser pares, y la otra impar.
LA CAJA PERFECTA Una caja perfecta, también llamada cuboide perfecto, es un brick de Euler en el cual la diagonal principal también es un número natural. Podemos añadir que sólo nos interesa saber si existe una caja perfecta que corresponda a un brick primitivo.
Noviembre 2008 • 2008ko Azaroa
87
Rafael Losada Liste
Traduciendo al álgebra, de nuevo gracias al teorema de Pitágoras, esto significa que sus aristas y diagonales deben ser solución del siguiente sistema de ecuaciones diofánticas:
Como hemos visto, podemos considerar que x e y son pares y z es impar. Hasta la fecha, no se ha encontrado ninguna caja perfecta, pero tampoco existe ninguna demostración de inexistencia. Búsquedas exhaustivas por ordenador han comprobado que, de existir alguna caja perfecta, la menor de sus aristas deberá ser superior a 232 (casi 4.300 millones). Ahora que ya sabemos en qué consiste exactamente la conjetura, observamos que todo se reduce a "cuadrados que son suma de cuadrados". Esto nos lleva a plantear...
LAS DOS PRIMERAS CUESTIONES FUNDAMENTALES 1. Dado el cuadrado de un número, ¿cuándo es suma de otros dos cuadrados? (RESUELTA). 2. Y cuando lo sea, ¿cuáles son esos cuadrados? (ABIERTA).
TEOREMA DE PITÁGORAS Y TRIÁNGULOS ENTEROS
Busto de Pitágoras Dado un triángulo rectángulo, el cuadrado de la hipotenusa es igual a la suma de los cuadrados de los catetos.
88
SIGMA Nº 32 • SIGMA 32 zk.
En busca del arca perdida
En particular, esta relación pitagórica debe cumplirse para números naturales. También se verifica el recíproco del teorema de Pitágoras: si a, b y c son tres naturales que guardan la anterior relación, entonces son los lados de un triángulo rectángulo. A estas ternas de números naturales se les conoce como ternas pitagóricas. b2 + c2 = a2 Ejemplo 1: la más simple de las ternas pitagóricas es la formada por los números (3, 4, 5). Ejemplo 2: el cuadrado más pequeño que se puede poner de dos formas diferentes como suma de dos cuadrados(1) es 625 (el cuadrado de 25): 152 + 202 = 72 + 242 = 252 Nota: a partir de ahora, cuando hable de cuadrados me referiré a cuadrados de enteros positivos. Además, usaré la expresión triángulos enteros para aquellos cuyos lados son enteros.
CRITERIO DE PARIDAD Una consecuencia de la anterior relación es que uno de los catetos de un triángulo entero siempre tiene que ser par (esto es fácil de demostrar por reducción al absurdo). En adelante, suponemos c ese cateto par.
PARAMETRIZACIONES Está claro que podemos empezar a ensayar con los números naturales y sus cuadrados a ver cuáles cumplen esa relación pitagórica. Pero sería mucho mejor si dispusiésemos de algún tipo de "fórmula" que nos ofrezca directamente los valores de todas las posibles ternas pitagóricas, sin necesidad de ensayos. En definitiva, desearíamos encontrar expresiones que, al variar el valor de uno o más parámetros, nos ofreciesen directamente (y únicamente) todas y cada una de las ternas pitagóricas.
LAS TERNAS PITAGÓRICAS Estas ternas se pueden parametrizar fácilmente. Si B, C y K son naturales, con B > C primos entre sí (en particular, de distinta paridad), la siguiente terna de números es pitagórica:
b = K (B2 - C2)
c = K (2BC)
a = K (B2 + C2)
Y recíprocamente: cualquier terna pitagórica se puede representar con las relaciones anteriores para ciertos parámetros K, B y C(2). Cuando a, b y c no comparten divisores comunes (MCD(b, c, a) = K = 1) la terna pitagórica se llama primaria o primitiva. Otros valores de K dan lugar a triángulos semejantes (y mayores) al formado por la terna primaria. Dada su importancia, a los parámetros B y C les llamaremos, en adelante, generadores.
Noviembre 2008 • 2008ko Azaroa
89
Rafael Losada Liste
ALGUNOS EJEMPLOS La terna (3, 4, 5) es primaria, mientras que la terna (6, 8, 10) no lo es, como vemos a continuación.
3 = 22 – 12
6 = 2 (22 + 12)
4 = 2 · 2 · 1
8 = 2 (2 · 2 · 1)
2
2
5=2 +1
10 = 2 (22 + 12)
Es importante observar el caso especial de las ternas primarias. De la parametrización de la hipotenusa, se deduce que si la terna es primaria, la hipotenusa debe ser suma de dos cuadrados para que su cuadrado también lo sea. En el ejemplo, 5 debe ser suma de dos cuadrados (12 y 22) para que 25 también lo sea (32 y 42). Por otra parte, si (b, c, a) forman una terna primaria, serán primos dos a dos (ya que si dos lados tuvieran un divisor primo común, el tercero también lo tendría). En particular, sólo un lado (el cateto c) será par.
HACE 3.500 AÑOS En una tablilla cuneiforme aproximadamente del año 1500 a.C. se ha encontrado una enumeración de ternas pitagóricas, entre las cuales se encontraba (4.961, 6.480, 8.161). Los valores B = 81 y C = 40 son los generadores correspondientes.
DADA UNA HIPOTENUSA, p.e. 41, ¿CUÁLES SON LOS CATETOS ENTEROS, SI LOS HAY? En el ejemplo anterior vimos que para los parámetros K = 1, B = 2 y C = 1, la hipotenusa resultante es 5. Pero no existe un modo sencillo de realizar el proceso inverso. El problema es similar al de los números compuestos y la tabla de Eratóstenes (ver un modelo dinámico en http://geometriadinamica.es/Aritmetica-y-Algebra/Numeros/Criba-de-Eratostenes.html). Teóricamente, podemos encontrar todos los compuestos por un proceso de criba (múltiplos de 2, de 3, etc.) De igual forma, podemos hallar todas las ternas pitagóricas dando valores a los parámetros.
Imagen de Eratóstenes
90
SIGMA Nº 32 • SIGMA 32 zk.
En busca del arca perdida
Pero si nos dan un número compuesto no tenemos más remedio que ensayar con los posibles divisores primos para factorizarlo. Similarmente, si nos dan la hipotenusa (p.e. 41) tenemos que ensayar con los generadores B y C (con K no hace falta, pues 41 es primo) hasta encontrar que B = 5 y C = 4 cumplen que 41 es la suma de estos dos cuadrados. Ahora podemos, aplicando la parametrización, encontrar los catetos buscados que son 9 y 40. Esta analogía, entre descomponer en suma de dos cuadrados y factorizar un número, es más que una simple similitud. Si fuésemos capaces de factorizar un compuesto sin ensayar, también seríamos capaces de encontrar rápidamente los valores K, B y C de la parametrización, pues los tres son divisores de c.
DADO UN NÚMERO, p.e. 41, ¿CÓMO SABEMOS SI ES UNA HIPOTENUSA? Dicho lo anterior, parecería que la única forma de saber si un número natural es hipotenusa de algún triángulo entero es ensayando a restar cuadrados inferiores a 41 (36, 25...) hasta encontrar que la diferencia es un cuadrado (41 – 25 = 16), y a partir de ahí aplicar la parametrización. Efectivamente, esta es la forma de encontrar los catetos. Pero para saber a priori que tales catetos existen, disponemos de un modo fulgurante que Fermat descubrió y Euler, después de 7 años de dedicación, consiguió demostrar. Los dos teoremas siguientes resumen sus investigaciones.
TEOREMA 1. SOBRE PRIMOS SUMA DE DOS CUADRADOS A. 2 es suma de dos cuadrados (pero no es una hipotenusa, pues uno de los catetos se anula, es decir, no existen generadores para 2). B. Ningún número primo de la forma 4n – 1, con n natural, es suma de dos cuadrados. C. Todo número primo de la forma 4n + 1 (con n natural) es suma de dos cuadrados (y por lo tanto, según la parametrización, es una hipotenusa). Además, estos cuadrados son únicos (sólo existe un triángulo rectángulo cuya hipotenusa sea ese número primo). Desgraciadamente, la demostración del último apartado no es constructiva (al fin llegamos al abismo, aunque todavía sin asomarnos a él). Es decir, no se encuentran los catetos, sino que se emplean métodos de reducción al absurdo. Así, Fermat esbozó el método de descenso infinito como medio de obtener la demostración, si bien Euler usó otro método. Aunque existen otras demostraciones, además de la de Euler, ninguna es constructiva.
P. Fermat
Noviembre 2008 • 2008ko Azaroa
91
Rafael Losada Liste
Así que sabemos que cualquier número primo de la forma 4n+1 se puede expresar, de forma única, como suma de dos cuadrados, pero la demostración no nos facilita en nada el encontrar los generadores. Ejemplo. El número 41 es un primo de la forma 4·10 + 1, así que es suma de dos cuadrados, y por lo tanto es hipotenusa (como hemos visto). El número 43 es un primo de la forma 4·11 – 1, así que no existen dos cuadrados cuya suma sea 43.
APLICACIONES Aplicación para la representación de raíces cuadradas. Si queremos representar rápidamente √41, basta construir sobre la recta real un triángulo rectángulo de catetos 5 y 4. Para representar √43 primero construimos √41, tomando esta como cateto y la unidad como el otro cateto construimos √42 y repitiendo el proceso, √43. Interpretación en geometría clásica. En todo semicírculo cuyo diámetro sea un primo de la forma 4n + 1 sólo se pueden inscribir dos triángulos rectángulos (simétricos) de catetos enteros.
Si el diámetro es otro tipo de primo, no se puede inscribir ningún triángulo rectángulo de catetos enteros. Interpretación en geometría analítica. Toda circunferencia centrada en el origen cuyo radio sea un primo de la forma 4n + 1 pasa exactamente por 12 puntos con coordenadas enteras. Si el radio es otro tipo de primo, sólo pasa por 4 puntos (en los ejes) con coordenadas enteras. Desde el punto de vista del plano complejo, dado un primo de la forma 4n + 1 existen exactamente 12 enteros complejos cuyo módulo es ese primo; si el primo es de otro tipo, sólo 4 enteros complejos (reales o imaginarios puros) tienen como módulo ese primo.
92
SIGMA Nº 32 • SIGMA 32 zk.
En busca del arca perdida
COROLARIO. SOBRE CUADRADOS, DE PRIMOS, SUMA DE DOS CUADRADOS Si un primo es de la forma 4n + 1 entonces su cuadrado es suma de cuadrados (y de forma única). Si es de otra forma, su cuadrado no es suma de dos cuadrados. Ejemplo. El número 1681 es el cuadrado de 41. Por lo tanto: 1681 = 412 = 92 + 402
TEOREMA 2. SOBRE CUADRADOS SUMA DE DOS CUADRADOS A. Si un número no tiene ningún divisor primo de la forma 4n + 1 entonces su cuadrado no es suma de dos cuadrados (es decir, el número no es hipotenusa de ningún triángulo entero). B. Si un número a es del tipo donde m no tiene ningún divisor primo de la forma 4n + 1 pero los distintos primos pi son de esa forma, entonces a2 es suma de dos cuadrados. Además, esta descomposición en suma de cuadrados se puede hacer exactamente del siguiente número de formas distintas:
Ejemplos: a. Los números 2, 3, 4, 6, 7, 8, 9, 11 y 12 no tienen divisores de la forma 4n + 1, por lo tanto no pueden ser hipotenusas de ningún triángulo entero, es decir, sus cuadrados no se pueden descomponer en suma de dos cuadrados. b. El número 5 tiene un único divisor primo (5) de esa forma, así que es hipotenusa de un único triángulo entero: 52 = 32 + 42 c. El número 1.729, la matrícula del taxi ya mencionada, tiene tres divisores primos, 7, 13 y 19. Sólo el 13 es de la forma 4n + 1, así 1.729 que es hipotenusa de un único triángulo entero: 1.7292 = 6652 + 1.5962 d. El número 50 tiene un único divisor primo (5) de esa forma, y además este divisor aparece, en la factorización de 50, con potencia 2. Por lo tanto, 50 es hipotenusa de dos triángulos enteros: 502 = 302 + 402
502 = 142 + 482
e. El número 65 tiene dos divisores primos (5 y 13) de esa forma. Por lo tanto, 65 es hipotenusa de cuatro triángulos enteros: 652 = 252 + 602
652 = 392 + 522
652 = 632 + 162
652 = 332 + 562
f. El número 32.045 tiene cuatro divisores primos (5, 13, 17 y 29) de esa forma. Por lo tanto, 32.045 es hipotenusa de cuarenta triángulos enteros distintos.
¿CÓMO HALLAR LOS CATETOS DE ESOS TRIÁNGULOS? En los ejemplos anteriores se mostró la descomposición en suma de dos cuadrados de algunos cuadrados. Pero, ¿cómo se ha obtenido esta descomposición? Una forma sencilla consiste en usar enteros complejos. Cualquier suma de dos cuadrados se puede interpretar como un producto de un entero complejo por su conjugado: B2 + C2 = (B + Ci) (B – Ci). Veamos cada uno de los ejemplos anteriores por separado.
Noviembre 2008 • 2008ko Azaroa
93
Rafael Losada Liste
Ejemplo 1. No eran descomponibles, en aplicación del teorema B. Ejemplo 2. Como 5 es primo de la forma 4n + 1, buscamos sus únicos generadores: 1 y 2. Recordemos que esta búsqueda se realiza por ensayo. Tenemos así que 5 = 12 + 22 = (1 + 2i) (1 – 2i). El cuadrado de 5 será entonces: 52 = (1 + 2i)2 (2 – 2i)2. Por otra parte, (1 + 2i)2 = (-3 + 4i) y (1 – 2i)2 = (-3 – 4i). Así que 52 = (-3 + 4i)(-3 + 4i) = 32 + 42 Ejemplo 3. Ya que 13 es primo de la forma 4n + 1, buscamos sus únicos generadores: 2 y 3. Recordemos que esta búsqueda se realiza por ensayo. Tenemos así que 13 = 22 + 32 = (2 + 3i) (2 – 3i). El cuadrado de 13 será entonces: 132 = (2 + 3i)2 (2 – 3i)2. Por otra parte, (2 + 3i)2 = (-5 + 12i) y (2 – 3i)2 = (-5 – 12i). Así que 132 = 52 + 122. Como 1.729 = 7 · 19 · 13, tenemos que 1.7292 = 72 · 192(52 + 122) = 6652 + 1.5962. Ejemplo 4. Los generadores de 5 son 1 y 2. Tenemos así que 5 = 12 + 22 = (1 + 2i)(1 – 2i). Dado que 50 = 2 · 52, obtenemos que 502 = 22 · 52 · 52 = 22 (1 + 2i)2 (1 – 2i)2 (1 + 2i)2 (1 – 2i)2. Podemos realizar dos agrupaciones diferentes en productos de cuadrados, que dan lugar a las distintas soluciones: 502 = 2 · 52 (1 + 2i)2 (1 – 2i)2 = 2 · 52 (-3 + 4i) (-3 – 4i) = 22 · 52 (32 + 42) = 302 + 402 502 = 22 (1 + 2i)4 (1 – 2i)4 = 22 (-7 – 24i) (-7 + 24i) = 22 (72 + 242) = 142 + 482 Ejemplo 5. Los generadores de 5 son 1 y 2, mientras que los de 13 son 3 y 2. Por lo tanto: 652 = 52 · 132 = (1 + 2i)2 (1 – 2i)2 (3 + 2i)2 (3 – 2i)2 Ahora podemos realizar cuatro agrupaciones diferentes, que dan lugar a las distintas soluciones: 652 = 52 (3 + 2i)2 (3 – 2i)2 = 52 (5 + 12i)(5 – 12i)2 = 52 (52 + 122) = 252 + 602 652 = (1 + 2i)2 · (1 – 2i)2132 = (-3 + 4i)(-3 – 4i)132 = (32 + 42)132 = 392 + 522 652 = (1 + 2i)2 (3 + 2i)2132 · (1 – 2i)2(3 – 2i)2 = (-63 + 16i)(-63 –16i) = 632 + 162 652 = (1 + 2i)2 (3 – 2i)2 · (1 – 2i)2(3 + 2i)2 = (33 + 56i)(33 –56i) = 332 + 562 Ejemplo 6. Ahora hay 4 pares de generadores. Por cada par B, C, el cuadrado del primo correspondiente será de la forma (B2 + C2)2 = (B + Ci)2 (B – Ci)2. Esta expresión se puede separar en dos cuadrados diferentes: (B + Ci)2 y (B – Ci)2, a los que hay que añadir el propio (B 2 + C 2)2. Al combinar estos tres cuadrados con los otros 3 de cada uno de los otros pares de generadores, obtenemos 34 = 81 agrupaciones diferentes. Uno de ellas tendrá parte imaginaria nula (corresponderá a 32.0452 + 02) por lo que debemos rechazarla. Las 80 restantes darán todas las soluciones con sus conjugadas (que son esencialmente las mismas) así que obtendremos 40 soluciones realmente diferentes. (Un razonamiento similar lleva a la fórmula del teorema B).
94
SIGMA Nº 32 • SIGMA 32 zk.
En busca del arca perdida
REGRESO AL ARCA PERDIDA Una vez visto lo anterior, ya podemos empezar a comprender qué diablos sucede con la caja perfecta.
x, y pares, z impar Observemos que el anterior sistema es equivalente al siguiente:
Es decir, el cuadrado de la diagonal principal de la caja se deberá poder expresar al menos de tres formas distintas como suma de dos cuadrados. Anteriormente hemos encontrado números (como 65 ó 32.045) que tienen esta propiedad. Y podríamos encontrar muchísimos más, tantos como quisiéramos. Pero, ahora, las descomposiciones en suma de dos cuadrados no pueden ser cualesquiera. Para que sea una caja perfecta, deberá cumplirse además la ecuación (1), que relaciona entre sí tres de los cuadrados de estas descomposiciones. Esta fortísima simetría algebraica es la causa de la dificultad existente en encontrar una caja perfecta (si es que hay alguna). En este punto es crucial recordar que las descomposiciones en sumas de cuadrados las habíamos obtenido, en última instancia, a partir de parejas de generadores, y éstos se encontraban por ensayo (su existencia estaba probada por una demostración no constructiva). Si dispusiésemos de alguna parametrización que evitase estos ensayos, el problema de la caja perfecta se simplificaría enormemente, ya que se reduciría al análisis de una sola ecuación diofántica: x2 = a2 + b2, donde x, a y b ya habrían sido parametrizados. Desgraciadamente, no contamos con ella.
Noviembre 2008 • 2008ko Azaroa
95
Rafael Losada Liste
JUGANDO A LA LOTERÍA (INTENTANDO PARAMETRIZAR LA CAJA PERFECTA) El propio Euler encontró dos parametrizaciones, incompletas, de las soluciones del sistema que deben cumplir los bricks que llevan su nombre. La siguiente parametrización (Saunderson, 1740) también es incompleta (para valores de p y q se obtienen siempre bricks de Euler, pero no se obtienen todos los bricks de Euler):
donde (Y, Z, X) forman una terna pitagórica primitiva, es decir:
con p > q naturales de distinta paridad. Un brick de esta familia se convertirá en caja perfecta cuando b2 + y2 sea un cuadrado, lo que equivale a decir que X4 + 16Y2 Z2 debe ser cuadrado, es decir, la expresión (p2 + q2)4 + 64 p2 q2 (p2 – q2)2 debe tener raíz cuadrada entera. Podríamos ahora caer en la tentación de jugar a la lotería y programar un ordenador para que realizase pruebas para un montón de valores de p y q hasta dar con un cuadrado perfecto. Pero nuestro empeño estaría condenado al fracaso, pues W.G. Spohn demostró, en 1972, que ningún elemento de esta familia de bricks de Euler puede ser una caja perfecta.
PROGRAMANDO CON NATURALES GIGANTES Por supuesto, se puede intentar seguir jugando a la lotería con valores de números naturales a ver si por casualidad atinamos con una caja perfecta. Si realizamos el intento, nos daremos cuenta que surge una nueva dificultad: las limitaciones que la mayor parte de los lenguajes de programación imponen al tamaño de los números enteros. Nos centraremos en uno de los lenguajes actuales más populares: Java. Los enteros positivos (tipo long) que puede manejar este lenguaje deben ser menores que 9.223.372.036.854.775.808, es decir, 263. Nueve trillones puede parecer mucho, y lo es para la mayoría de los cálculos habituales. Pero si nos fijamos en la parametrización de Saunderson tanto p como q están elevados a una octava potencia. Esto significa que basta que p supere la cota de 234 (un número pequeño) para que Java no pueda computar su potencia octava como entero. Ante estos valores, Java aproximará el resultado al tipo coma flotante, o sea, truncará o redondeará el resultado. Esto provocará inmediatamente la aparición de falsas soluciones. Las ampliaciones del propio lenguaje Java nos ofrecen una solución. Pero esta solución nos llevará a replantearnos cómo se realizan las operaciones aritméticas fundamentales. Así, podemos imaginarnos un entero, tan grande como queramos, como una secuencia de dígitos (una cadena). Java nos ofrece las siguientes herramientas:
96
SIGMA Nº 32 • SIGMA 32 zk.
En busca del arca perdida
BigInteger(n): declara que n se debe tratar como una cadena de dígitos, un entero gigante, prácticamente tan grande como queramos. BigDecimal(n): declara que n se debe tratar como una cadena de dígitos con una coma, un decimal gigante. add: suma dos enteros gigantes, descomponiéndolos en subcadenas y reorganizando el resultado. Veamos una simulación. Para comprender mejor el ejemplo, suponemos que trabajamos con un ordenador que no permite enteros mayores que 999.999. Ahora, queremos obtener el resultado exacto de 888.777 más 666.555. 1. Declaramos 888.777 y 666.555 como enteros gigantes. 2. Usamos add para sumar los dos valores. Para ello, el ordenador descompone 888.777 en dos subcadenas: 888 y 777. Igualmente, descompone 666.555 en 666 y 555. Ahora suma de forma normal 777 y 555, obteniendo 1.332. Conserva las últimas tres cifras y añade 1 a la suma de las subcadenas 888 y 666. Resultado: 1.555.332. multiply: multiplica dos enteros gigantes, descomponiéndolos en subcadenas, aplicando la propiedad distributiva y reorganizando el resultado. Por ejemplo, ahora queremos obtener el resultado exacto de 888.777 por 666.555. 1. Declaramos 888.777 y 666.555 como enteros gigantes. 2. Usamos multiply para multiplicar los dos valores. Para ello, el ordenador descompone 888.777 en dos subcadenas: 888 y 777. Igualmente, descompone 666.555 en 666 y 555. Realiza el producto basándose en la igualdad: 888.777 · 666.555 = (888.000 + 777)(666.000 + 555) Hasta aquí, todo es sencillo. Pero necesitamos comprobar, además, si el resultado obtenido es o no es un cuadrado perfecto. Esto significa que debemos buscar una forma de extraer la raíz cuadrada.
Imagen de Herón de Alejandría El algoritmo convergente que vamos a usar ya lo conocía Herón de Alejandría, y existen evidencias de que los babilonios lo usaron con anterioridad. Lo veremos con un ejemplo. Queremos saber si el número n = 789.924.555.729 es un cuadrado perfecto.
Noviembre 2008 • 2008ko Azaroa
97
Rafael Losada Liste
Primero, elegimos un número de partida como primera y burda aproximación: 1. Halla la mitad, por defecto, de longitud de la cadena n (número de dígitos). En nuestro ejemplo, esta mitad es 6 (también sería 6 si el número tuviese 13 cifras). Resta 1 (obtenemos 5). [Si el resultado fuese menor que 0, tomaríamos 0]. 2. La primera aproximación, r, será la unidad seguida de tantos ceros como indique el apartado anterior. En nuestro caso, r = 100.000. Ahora aplicamos el siguiente proceso iterativo: 3. Obtén el nuevo valor de r calculando la mitad de ( r + n / r ), redondeando al entero más cercano. En el ejemplo, r = 3.999.623. 4. Repite 3 hasta que se repita r. En nuestro caso, obtenemos las sucesivas aproximaciones: 2.098.561, 1.237.487, 937.908, 890.064, 888.778, 888.777, 888.777. Para realizar el paso 3, disponemos en Java del operador divide, que funciona con números decimales gigantes. El algoritmo anterior, aunque muy antiguo, no deja de ser un caso particular de un potente método de convergencia para encontrar una raíz de una función conocido como NewtonRaphson. Dado un punto de partida, se traza la recta tangente a la gráfica de la función en ese punto. Como nuevo punto, se toma la raíz de esa recta tangente.
I. Newton
Veámoslo en este caso particular. La función es . Tomando como punto de partida (x0, y0), la ecuación de la recta tangente que pasa por ese punto será:
98
SIGMA Nº 32 • SIGMA 32 zk.
En busca del arca perdida
La raíz de esta recta se obtiene igualando y a cero:
Como se aprecia, este valor coincide con el que figura en el proceso iterativo mostrado antes.
NOTAS (1) Cómo no recordar aquí la famosa anécdota de Hardy y Ramanujan, el comentario sobre la matrícula de un taxi (1.729) como número curioso por ser el más pequeño expresable como suma de dos cubos de dos formas diferentes (cubos de 1 y 12, y de 9 y 10). (2) Demostremos que cualquier terna pitagórica primitiva (b, c, a) se puede representar con las siguientes relaciones, con B > C primos entre sí: b = B2 – C2, c = 2BC, a = B2 + C2 Veamos primero que a ha de ser impar. Si no lo fuese (a = 2s), lo serían b e c, es decir, b = 2m + 1, c = 2n + 1. Por lo tanto, 4s2 = 4(m2 + m + n2 + n) + 2, pero esto es absurdo pues 2 no es múltiplo de 4. Podemos suponer, por lo tanto, que el único par es c. Como a y b son impares, su suma y su diferencia serán pares. Así que podemos escribir:
Como c2 = a2 – b2 = (a + b) (a – b), nos queda que n2 = ms. Por otra parte, m y s son primos entre sí, pues si no lo fuesen a = s + m y b = s – m tampoco lo serían y la terna (a, b, c) no sería primitiva. Ahora usamos un argumento muy simple pero importante: si el producto de dos números naturales primos entre sí es un cuadrado, entonces ambos son cuadrados, pues cada uno de ellos debe tener cada factor primo con exponente par. Como n2 = ms, con m y s primos entre sí, entonces tanto m como s han de ser cuadrados. Así que:
donde B y C son primos entre sí. Sustituyendo, obtenemos las expresiones buscadas de a, b y c.
Noviembre 2008 • 2008ko Azaroa
99
Locmariq
uer I, H
m. René Tho a je a n e om
Eduardo
Chillida