import itertools
def pi(N): natuals = itertools.count(1) ns = itertools.takewhile(lambda x: x<=2*N, natuals) num=[] for x in ns: if x % 2 !=0: num.append(x)
num1 = num[::2] num2 = num[1::2] num1 = list(map(lambda x: 4/x, num1)) num2 = list(map(lambda x: -4/x, num2)) num1 = sum(num1) num2 = sum(num2) return num1 + num2
print(pi(10)) print(pi(100)) print(pi(1000)) print(pi(10000)) assert 3.04 < pi(10) < 3.05 assert 3.13 < pi(100) < 3.14 assert 3.140 < pi(1000) < 3.141 assert 3.1414 < pi(10000) < 3.1415 print('ok')
Sign in to make a reply
_Indescribable
import itertools
def pi(N): natuals = itertools.count(1) ns = itertools.takewhile(lambda x: x<=2*N, natuals) num=[] for x in ns: if x % 2 !=0: num.append(x)
print(pi(10)) print(pi(100)) print(pi(1000)) print(pi(10000)) assert 3.04 < pi(10) < 3.05 assert 3.13 < pi(100) < 3.14 assert 3.140 < pi(1000) < 3.141 assert 3.1414 < pi(10000) < 3.1415 print('ok')