El gúgol y la programación con enteros gigantes

El otro día en una clase surgió por casualidad el término Gúgol. Mi primer contacto con el Gúgol fue a través de aquella inolvidable serie documental de Carl Sagan llamada Cosmos. Si tienes más de treinta años seguro que la recuerdes. Si no, te compadezco (por no haber podido disfrutarla, no por ser tan joven, claro). Sagan intentaba hacernos comprender la idea de infinito y, con su proverbial capacidad para la maravilla, usó el Gúgol como ilustración.

Un Gúgol (o googol, en inglés, por si hay alguien de Cuenca) es un número: diez mil hexadecillones, para ser exactos. O, si lo prefieren expresado en notación decimal, un gúgol es:

10.000.000.000.000.000.000.000.000.
000.000.000.000.000.000.000.000.000.
000.000.000.000.000.000.000.000.000.
000.000.000.000.000.000.000

Por suerte, contamos con la notación científica, que nos permite resumir los números muy grandes:
1 gúgol = 10100

El nombre de gúgol se lo adjudicó en 1938 un niño de nueve años, el sobrino del matemático Edward Kasner, quien fue el primero en utilizarlo con fines didácticos. Poner nombres a los números es una actividad divertida cuando tienes nueve años.

El gúgol es un número realmente grande. Es mayor que el número de átomos que hay en el universo (1080, átomo arriba, átomo abajo). El cerebro humano tiene verdaderas dificultades para asimilar el tamaño de estos números. Pero tratemos, a pesar de todo, de imaginar otro número aún mayor, monstruosamente mayor. Por ejemplo, el gúgolplex:
1 gúgolplex = 10gúgol

Es decir, un gúgolplex es un uno seguido de un gúgol de ceros. Puede que no parezca muy impresionante, pero si quisiéramos escribir ese número en un papel no podríamos, por la sencilla aunque convincente razón de que el papel tendría que ser más largo que el universo conocido.

Pues bien, el gúgolplex no está más cerca del infinito que el número 1. Así de grande es el infinito.

Los números infinitos no pueden representarse en un ordenador, que es una máquina finita. Pero sí que podemos trabajar con números muy grandes. El tamaño que puede alcanzarse depende el número de bits que empleemos para almacenar el número:8, 16 o 32 bits suele ser lo habitual (todo informático o estudiante de informática debe saber el por qué de esas cantidades, pero algún día trataremos ese asunto aquí para los neófitos… y para los despistados)

Si usamos 8 bits, podremos representar números enteros entre 0 y 255. Con 16, alcanzaremos el 65.535 y, con 32, la bonita cifra de 4.294.967.295. Es éste un número muy respetable, pero aún está muy lejos del gúgol o el gúgolplex.

Para trabajar con números mayores, los ordenadores también usan la notación científica. Un número como 4.294.967.295 difiere realmente muy poco de otro como 4.294.967.294: sólo una unidad en la última cifra. Esa diferencia es menor que el 0,00000000001%: es tan insignificante que incluso el número 4.294.967.290 puede considerarse una excelente aproximación de los otros dos. De hecho, una aproximación aún más burda, como 4.294.000.000, será suficiente en la mayoría de los casos.

Así es como un ordenador guarda los números muy grandes: sólo almacena las cifras más significativas (4.294) y el número de ceros que le siguen (6). Esta representación recibe el nombre de coma flotante, y ahorra una enorme cantidad de espacio en la memoria a costa de una aproximación razonable para la mayoría de las aplicaciones imaginables.

¿Pero qué ocurre si, por alguna razón extravagante, queremos hacer cálculos numéricos exactos con números enormes? He aquí un interesante problema de programación: escríbase un programa que pida al usuario dos números enormes (del orden de magnitud de un gúgol) y, con absoluta exactitud, los opere a gusto del usuario; es decir, que los sume, multiplique o divida sin hacer aproximaciones de ningún tipo.

Ésta es una área de la programación recreativa (pues no tiene demasiadas aplicaciones prácticas) que se denomina aritmética de enteros gigantes y que puede llegar a resultar enfermizamente divertida.

Por cierto: si has estado pensando que tal vez el conocido buscador Google tenga ese nombre debido al Gúgol, la respuesta es sí: quisieron llamarlo así (o googol, en inglés), pero, según cuenta la leyenda, en el momento de registrarlo... ¡alguien cometió un error ortográfico!

 

Comentarios

  1. […] Oí decir una vez a Fernando Fernán Gómez, en una entrevista que le hicieron cuando ya era muy anciano, que cuando paseaba por su biblioteca se despedía de los libros que alguna vez había comprado con la intención de leerlos pero que, ahora se daba cuenta, no iba a tener tiempo de leer nunca. Realmente, el volumen de lo que ignoramos, como el número de libros que no hemos leído ni vamos a leer nunca, es desolador. No importa cuánto leamos o cuánta música oigamos o cómo de extenso o profundo sea nuestro conocimiento sobre matemáticas o historia o sociología: siempre estaremos tan lejos de abarcar todos los libros de la biblioteca como cuando empezamos. […]

    ResponderEliminar

Publicar un comentario

Gracias por comentar. Todos los comentarios de este blog están moderados para evitar spam y otras prácticas fraudulentas. Por ese motivo, tu comentario podría tardar varios días en aparecer. Por favor, ten paciencia.