This script was written for an article I wrote about computing Pi with Python. This module uses the Decimal library. For more information How to Compute Pi in Python
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | import sys
import math
from decimal import *
def main(argv):
if len(argv) != 1:
sys.exit('Usage: calc_pi.py <n>')
print '\nComputing Pi v.01\n'
a = Decimal(1.0)
b = Decimal(1.0/math.sqrt(2))
t = Decimal(1.0)/Decimal(4.0)
p = Decimal(1.0)
for i in range(int(sys.argv[1])):
at = Decimal((a+b)/2)
bt = Decimal(math.sqrt(a*b))
tt = Decimal(t - p*(a-at)**2)
pt = Decimal(2*p)
a = at;b = bt;t = tt;p = pt
my_pi = (a+b)**2/(4*t)
accuracy = 100*(Decimal(math.pi)-my_pi)/my_pi
print "Pi is approximately: " + str(my_pi)
print "Accuracy with math.pi: " + str(accuracy)
if __name__ == "__main__":
main(sys.argv[1:])
|