Necesito ayuda para calcular Pi. Estoy tratando de escribir un programa de Python que calculará Pi a X dígitos. He intentado varios de la lista de correo de python, y es lento para mi uso. He leído sobre Gauss-Legendre Algorithm, y he tratado de portarlo a Python sin éxito.Algoritmo de Gauss-Legendre en python
Estoy leyendo desde Here, y agradecería cualquier opinión sobre dónde me estoy equivocando!
Genera: 0,163991276262
from __future__ import division
import math
def square(x):return x*x
a = 1
b = 1/math.sqrt(2)
t = 1/4
x = 1
for i in range(1000):
y = a
a = (a+b)/2
b = math.sqrt(b*y)
t = t - x * square((y-a))
x = 2* x
pi = (square((a+b)))/4*t
print pi
raw_input()
A menos que cambie para usar algún otro tipo de datos, lo mejor que puede obtener es de 24 o 53 dígitos de precisión utilizando una aritmética de punto flotante de 32 o 64 bits. Para obtener más información, consulte http://en.wikipedia.org/wiki/IEEE_754. – tvanfosson
@tvanfosson: publiqué una versión que usa 'decimal'. Permite una precisión arbitraria. – jfs
+1 - no sabía que Python tenía decimal y mxNumber fue el primer elemento que apareció en Google. – tvanfosson