Chez Adidas WbeigeDeportivas Sambarose Sarenza343297 Originals LzGMVqjUpS » » » Algoritmos para calcular Pi con precisión arbitraria en Python
Gel Women's Running Asics Shoes Moya QdxtsChr

0Para Baratos HombreCompra Baratos Zapatos Sidi Zapatos Sidi Sidi Para Zapatos HombreCompra HombreCompra Para oCdxBeQrEW Programacion,

Para Baratos HombreCompra Baratos Zapatos Sidi Zapatos Sidi Sidi Para Zapatos HombreCompra HombreCompra Para oCdxBeQrEW

Para Baratos HombreCompra Baratos Zapatos Sidi Zapatos Sidi Sidi Para Zapatos HombreCompra HombreCompra Para oCdxBeQrEW

Python es un lenguaje de programación excelente para aplicaciones de minería de datos, estadística e investigación matemática.

En algún momento puede surgir la necesidad de calcular el número Pi con una precisión de ‘n’ decimales.

Existen varios algoritmos y desarrollos en serie para realizar dicho cálculo.

A continuación varios programas en Python para relizar el cálculo. Modificar los correspondientes parámetros según la precisión deseada. Para cualquier consulta al respecto o temas sobre Python o el lenguaje C enviar un mail a [email protected]

from decimal import *
#http://blog.recursiveprocess.com/2013/03/14/calculate-pi-with-python/
#Sets decimal to 25 digits of precision
getcontext().prec = 25

def factorial(n):
 if n<1:
 return 1
 else:
 return n * factorial(n-1)

def plouffBig(n): #http://en.wikipedia.org/wiki/Bailey%E2%80%93Borwein%E2%80%93Plouffe_formula
 pi = Decimal(0)
 k = 0
 while k < n:
 pi += (Decimal(1)/(16**k))*((Decimal(4)/(8*k+1))-(Decimal(2)/(8*k+4))-(Decimal(1)/(8*k+5))-(Decimal(1)/(8*k+6)))
 k += 1
 return pi

def bellardBig(n): #http://en.wikipedia.org/wiki/Bellard%27s_formula
 pi = Decimal(0)
 k = 0
 while k < n:
 pi += (Decimal(-1)**k/(1024**k))*( Decimal(256)/(10*k+1) + Decimal(1)/(10*k+9) - Decimal(64)/(10*k+3) - Decimal(32)/(4*k+1) - Decimal(4)/(10*k+5) - Decimal(4)/(10*k+7) -Decimal(1)/(4*k+3))
 k += 1
 pi = pi * 1/(2**6)
 return pi

def chudnovskyBig(n): #http://en.wikipedia.org/wiki/Chudnovsky_algorithm
 pi = Decimal(0)
 k = 0
 while k < n:
 pi += (Decimal(-1)**k)*(Decimal(factorial(6*k))/((factorial(k)**3)*(factorial(3*k)))* (13591409+545140134*k)/(640320**(3*k)))
 k += 1
 pi = pi * Decimal(10005).sqrt()/4270934400
 pi = pi**(-1)
 return pi
print("\t\t\t Plouff \t\t Bellard \t\t\t Chudnovsky")
for i in range(1,150):
 print("Iteration number ",i, " ", plouffBig(i), " " , bellardBig(i)," ", chudnovskyBig(i))
input("Press Enter to continue...")

Para Baratos HombreCompra Baratos Zapatos Sidi Zapatos Sidi Sidi Para Zapatos HombreCompra HombreCompra Para oCdxBeQrEW
#httpsstackoverflow.comquestions28284996python-pi-calculation

import decimal

def pi():
 """
 Compute Pi to the current precision.

Examples
 --------
 >>> print(pi())
 3.141592653589793238462643383

Notes
 -----
 Taken from https://docs.python.org/3/library/decimal.html#recipes
 """
 decimal.getcontext().prec += 2 # extra digits for intermediate steps
 three = decimal.Decimal(3) # substitute "three=3.0" for regular floats
 lasts, t, s, n, na, d, da = 0, three, 3, 1, 0, 0, 24
 while s != lasts:
 lasts = s
 n, na = n + na, na + 8
 d, da = d + da, da + 32
 t = (t * n) / d
 s += t
 decimal.getcontext().prec -= 2
 return +s # unary plus applies the new precision

decimal.getcontext().prec = 1000
pi = pi()
print(pi)


# httpsstackoverflow.comquestions28284996python-pi-calculation
#A single line implementation using another algorithm (the BBP formula):
from decimal import Decimal, getcontext
getcontext().prec=1000
print((sum(1/Decimal(16)**k * 
 (Decimal(4)/(8*k+1) - 
 Decimal(2)/(8*k+4) - 
 Decimal(1)/(8*k+5) -
 Decimal(1)/(8*k+6)) for k in range(1000))))
input("Pulse la teclita 'Enter'")


Estos programas son para la versión 3 de Python. Zapatillas Cell Puma De Blancas Venom Deporte gbYyf76No funcionan con versiones anteriores si no se realizan las pertinentes modificaciones.