import math import random def EulerPi(n): sum = 0 for i in range(1,n+1): term = 1/(i*i) sum = sum + term return(math.sqrt(sum*6)) def LeibnizPi(n): sum = 0 for i in range(0,n+1): term = ((-1)**i)*(1/(2*i+1)) sum = sum + term return(4*sum) def WallisPi(n): prod = 1 for i in range(0,n+1): num = (2*i+2)**2 den = (2*i+1)*(2*i+3) term = num/den prod = prod*term return(2*prod) def MonteCarloPi(n): m = 0 for i in range(n): x = random.random() y = random.random() d = x**2+y**2 if d<=1: m = m + 1 return(4*m/n) #------------------ for n in range(10,100,10): p0 = EulerPi(n) p1 = LeibnizPi(n) p2 = WallisPi(n) p3 = MonteCarloPi(n) print("n = ",n) print("Euler: ",p0) print("Leibniz: ",p1) print("Wallis: ",p2) print("Monte Carlo: ",p3) #------------------