Hay muchos problemas que la teoría de números ha planteado: la de los números maravillosos, el teorema de los cuatro colores o el «último teorema» de Fermat (que es en realidad unas conjetura). Sabemos que no hay números a^n + b^n = c^n para n > 2, tomando los enteros positivos. Esto significa que a^3 + b^3 = c^3 no tiene solución, aunque a^2 + b^2 = c^2 sí tiene solución, con a=3, b=4 y c=5.

Pero esto puede ser más complicado. ¿Qué tal pensar en tres cubos y no sólo en dos? Esto es: el problema de la suma de tres cubos ha estado ya entre nosotros por más de 64 años y es una versión menos restringida que el teorema último de Fermat.

La historia de la ganadora del “Nobel” de las matemáticas

La cuestión es pues hallar tres cubos, posiblemente negativos, que sumen un entero determinado, es decir:

x^3+y^3+z^3=n

con x, y y z enteros, posiblemente negativos y n un entero positivo, no necesariamente un cubo, la búsqueda por computadora lleva mucho tiempo ya (desde 1955) y para valores menores a 100, la pregunta aún estaba abierta con dos números, 33 y 42. La respuesta al caso del 33 la ha encontrado Andrew Booker, la cual es:

(8,866,128,975,287,528)³ + (–8,778,405,442,862,239)³ + (–2,736,111,468,807,040)³ = 33

Viendo estos números se puede entender la dificultad del problema. Para resolver este problema en programación, se pueden poner tres ciclos anidados de enteros, de números negativos y positivos muy grandes, y calcular la suma de los cubos y ver si da 33. Esto no es muy práctico, pues son demasiados valores. Se puede usar las propias matemáticas para reducir el problema de búsquedas. Por ejemplo, la ecuación sigue siendo verdadera si se hace el módulo m, lo que significa que:

x^3+y^3+z^3=n

implica

(x^3+y^3+z^3) mod 9 =n mod 9

y como los únicos valores de mod 9 son 0 y 8, podemos solamente trabajar todos los valores mod 9 cúbicos: 0, 1 u 8. No se pueden usar estos valores para poner el 4 o 5 en la ecuación. Por lo que n mod 9 no puede ser 4 o 5, por lo que esto quita muchos valores de n.

Resultado de imagen para Reto lúdico: el problema de los tres cubos

En el 2016 todos los números menores de 100 que no fueron 4 o 5 mod 9 fueron solución, aparte del 33 y 42. Se ha conjeturado desde 1992 que para toda n que no es igual a 4 o 5 mod 9, tiene infinita cantidad de soluciones, pero esto sigue siendo una pregunta abierta. Lo que sí sabemos es que es cierta para 1 y 2, pero es todo lo que sabemos al respecto. Claramente encontrar las soluciones para el 33 o 42 es necesario para probar que la conjetura es correcta.

Este video puede ilustrar mucho más toda esta problemática:

Cabe decir que el nuevo algoritmo redujo el espacio de búsqueda, pero tomó 23 núcleos-años por un mes de tiempo real. ¿Cuántos recursos de máquina necesitaremos para resolver el caso del 42?

Propongamos pues el ejercicio de resolver no el caso del 42, sino los casos del 1 al 32. ¿Quién se anima? El reto tendrá como premio una taza de la Morsa. Si el ganador es de provincia, se le mandará un USB de 8 GB al menos, porque mandar una taza por mensajería es ridículamente costoso.

Se evaluará la velocidad del proceso. Quien gane será anunciado en unocero y hasta tendrá sus quince minutos de fama. Sus programas me los pueden mandar a [email protected] y pueden escribirse en cualquier lenguaje. Es importante señalar que hay que mandar el código fuente, el ejecutable (si procede) y el archivo de resultados pedido. Igualmente, se pide una explicación breve de la estrategia usada. Código documentado tiene más posibilidades de ser considerado el ganador.

Cabe señalar que este concurso busca simplemente alentar el trabajo de la programación y mostrar que puede ser lúdica. Es un concurso de buena fe. Si hay, por ejemplo, dos o más respuestas satisfactorias, ganará quien la haya mandado primero. El ganador cede su código fuente a la comunidad. Es decir, se promueve el código abierto.