Por qué (casi) no puedes calcular Pi hasta mil millones de dígitos en Python en casa |  de Bex T. |  octubre de 2023

Es más difícil de lo que piensas

bexgboost_El_número_Pi_en_toda_su_majestuosidad_y_gloria_mathematic_a06a71bf-6cb1-4585-86cf-315265ccf38e.png
Imagen mía con Midjourney.

Introducción

El 9 de junio de 2022, Google estableció un nuevo récord mundial al calcular la mayor cantidad de dígitos de Pi: ¡100 TRILLONES! Este logro monumental fue posible gracias al programa y-cruncher que se ejecuta en Google Cloud. Procesó números durante la friolera de 157 días, 23 horas, 31 minutos y 7,651 segundos.

Si mil millones es 100 mil veces menor que 100 billones, ¿disminuiría el tiempo de ejecución en consecuencia? En otras palabras, ¿se necesitarían sólo 136 segundos?

Pero 136 segundos es demasiado ambicioso. Las PC domésticas son mucho menos poderosas que los entornos más formidables de Google Cloud. Entonces, ¿qué tal un tiempo de ejecución más razonable, como 24 horas?

Resulta que calcular incluso mil millones de dígitos de Pi en 24 horas es una quimera gigante. Este artículo explica por qué con evidencia en Python.

En primer lugar, ¿qué tiene de malo? math.pi?

import math

print(math.pi)

3.141592653589793

math.pi Tiene una precisión de 15 dígitos. Si bien no es mucho, es suficiente para realizar cálculos con la mayor precisión científica.

Por ejemplo, el Jet Propulsion Lab (JPL) de la NASA utiliza 15 dígitos de Pi para navegar entre planetas. Para que te hagas una idea, este nivel de precisión es suficiente para calcular la circunferencia de un círculo con un radio de 15 mil millones de millas. La circunferencia resultante de 94 mil millones de millas no estaría desviada más que el ancho de su dedo meñique. ¡Piénsalo!

Entonces, ¿por qué molestarse siquiera con mil millones de dígitos, y mucho menos 100 billones?

Bueno, para darte la respuesta del geek: “¡Porque sería increíblemente genial!”.

¿Qué pasa si aumentamos la precisión decimal?

Antes de sacar las armas pesadas (¡los algoritmos!), ¿qué pasa si aumentamos la precisión decimal en Python al aproximar π? Eso sería mucho más sencillo.

Para la aproximación usaremos la fórmula de Ramanujan para π. Los matemáticos de todo el mundo lo utilizan para aproximar π a un nivel insuperable.

from decimal import Decimal…