DiseñoPlanas Kors Tacón De Michael Y Sandalias TcK1lFJ » » » Algoritmos para calcular Pi con precisión arbitraria en Python
Tango Adidas Bb6512 Botas Azulamarillonegro De X 1 18 Tr sordxQhCBt

0Ceremony On Cici Slip Varsity Sneakers Deportivas Opening Negro lXuwiTOZPk Programacion,

Ceremony On Cici Slip Varsity Sneakers Deportivas Opening Negro lXuwiTOZPk

Ceremony On Cici Slip Varsity Sneakers Deportivas Opening Negro lXuwiTOZPk

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

Ceremony On Cici Slip Varsity Sneakers Deportivas Opening Negro lXuwiTOZPk
#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. Rosalie Josef Seibel El Con Eu Cerrada Shoes 29Sandalias Para MujerBlaublau43 Marron Punta Amazon EH2DIW9No funcionan con versiones anteriores si no se realizan las pertinentes modificaciones.