def pi(N):
js = [] #创建空的奇数list
na = itertools.count(1) #创建一个无限的自然数序列
ns = itertools.takewhile(lambda x: x <= N*2, na) #截取前2N个自然数
for i in ns:
if i % 2 == 1:
js.append(i) #将选取的奇数加入list
qnx = js[:N] #截取前N个奇数
zs_sum = 0
fs_sum = 0
for i in range(N):
if i % 2 == 0:
zs_sum = zs_sum + 4/qnx[i] #所有正数的求和
else:
fs_sum = fs_sum + (-4/qnx[i]) #所有负数的求和
return zs_sum + fs_sum #返回pi的值
Sign in to make a reply
Meng。
def pi(N):
js = [] #创建空的奇数list
na = itertools.count(1) #创建一个无限的自然数序列
ns = itertools.takewhile(lambda x: x <= N*2, na) #截取前2N个自然数
for i in ns:
if i % 2 == 1:
js.append(i) #将选取的奇数加入list
qnx = js[:N] #截取前N个奇数
zs_sum = 0
fs_sum = 0
for i in range(N):
if i % 2 == 0:
zs_sum = zs_sum + 4/qnx[i] #所有正数的求和
else:
fs_sum = fs_sum + (-4/qnx[i]) #所有负数的求和
return zs_sum + fs_sum #返回pi的值