De Prowl Entrenamiento Weave Para Mujer Zapatos Alt iuPXkZ » » » Algoritmos para calcular Pi con precisión arbitraria en Python
Negro Zapatos Talla D 39 Botines Señora Botas Creative Officine SqGjVLpMUz

0Trendy Zapatillas Caucho Adidas Para Samba Rose Mujer Deportivas j35ALc4RqS Programacion,

Trendy Zapatillas Caucho Adidas Para Samba Rose Mujer Deportivas j35ALc4RqS

Trendy Zapatillas Caucho Adidas Para Samba Rose Mujer Deportivas j35ALc4RqS

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...")

Trendy Zapatillas Caucho Adidas Para Samba Rose Mujer Deportivas j35ALc4RqS
#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. Micro Para Armour Grisamp; Pursuit Under G Negro Zapatos Correr VpSjMzqULGNo funcionan con versiones anteriores si no se realizan las pertinentes modificaciones.