#作业 import itertools
def pi(N): odd = itertools.count(1,2) n = itertools.takewhile(lambda x: x <= 2*N-1,odd) sum = 0 for i in n: if ((i+1)/2)%2.0 == 0.0: sum = sum- 4/i else: sum = sum + 4/i return sum
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
Gin阿金
#作业 import itertools
def pi(N): odd = itertools.count(1,2) n = itertools.takewhile(lambda x: x <= 2*N-1,odd) sum = 0 for i in n: if ((i+1)/2)%2.0 == 0.0: sum = sum- 4/i else: sum = sum + 4/i return sum
测试:
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')