pi-py.py

DownloadView Raw

# File:       pi-py.py
#
# Purpose:    Estimates pi using the Madhava–Leibniz series.
#
# Run:        python pi-py.py num-iterations

import sys
import time
import math

PI = 3.141592653589793238462643

def leibniz(n):
    sum = 0
    for i in range(n):
        sum += math.pow(-1, i) / (2 * i + 1);
    return sum

def main():
    n = sys.argv[1]
    n = int(n)
    start = time.time()
    pi = leibniz(n) * 4
    elapsed = time.time() - start
    print("Intervals: %d" % n)
    print("   Result: %.20f" % pi)
    print(" Accuracy: %.20f" % (PI - pi))
    print("     Time: %.10f" % elapsed)

if __name__ == '__main__':
    main()