Friday, April 08, 2011

Software para poner a prueba la conjetura de Collatz


Hace unos artículos (que pueden verse aquí, aquí y aquí), escribí sobre la conjetura de Collatz, también llamada de los "números maravillosos". Este tema -que fue parte de mi desarrollo de la tesis de licenciatura, que trató de autómatas celulares, pretendía usar esa teoría para demostrar que dicha conjetura no puede resolverse por métodos analíticos o algebraicos, sino que en este caso, había que hacer la simulación explícita de cada número para ver si cumplía con la propiedad de ser "maravilloso".

En el software que desarrollé para la tesis, usé listas ligadas en Turbo Pascal, para poner a prueba la conjetura más allá del tamaño máximo de un entero o en el mejor de los casos, un entero largo (longInt). Lo que se necesita es tener arbitrario tamaño de número entero para que el software tenga sentido y pueda uno probar números tan grandes como se deseé o le quepan a la computadora en la memoria.

Sin embargo, de los tiempos de Turbo Pascal a Delphi 7, han pasado algunos buenos años y hay más de una biblioteca de rutinas para trabajar con números grandes, de longitud arbitraria. Hallé en Internet más de un sitio en donde ya existen una serie de rutinas para trabajar con números tan grandes como se le ocurran al usuario. Desde luego que el límite ahora lo marca la cantidad de memoria disponible.

Después de revisar algunos de los sitios en donde había rutinas para manejar números muy grandes, decidí usar la que aparece en este sitio. Y aunque otras rutinas parecían más elaboradas, ésta cumplía con mis necesidades, amén de que seguir el código fuente de las mismas no parece ser muy complicado.


En esencia, las rutinas de esta biblioteca de números muy grandes hace las operaciones aritméticas necesarias procesando arreglos dinámicos en memoria, es decir, arreglos de dígitos, en donde las operaciones aritméticas asociadas se hacen como los seres humanos las hacemos. La diferencia es que aquí la computadora las hace a toda velocidad y si se tiene una máquina verdaderamente rápida, entonces los resultados pueden llegar a ser asombrosamente rápidos.

Como sea, aquí los cálculos se hacen a tal velocidad que en verdad poner a prueba la conjetura de Collatz con números muy grandes no resulta ningún problema.

A quien le interese el programa, incluyendo el código fuente, escríbame a morsa@la-morsa.com y a vuelta de correo recibirá el software.

No comments: