作业,按着老师的步骤一条一条写下来还是很顺的
Topic source在第一条的基础上改善下,更简洁~
def pi(N):
# step 1: 创建一个奇数序列: 1, 3, 5, 7, 9, ...
ns=itertools.count(1,2)
# step 2: 取该序列的前N项: 1, 3, 5, 7, 9, ..., 2*N-1.
num=list(itertools.takewhile(lambda x:x<2*N,ns))
# step 3: 添加正负符号并用4除: 4/1, -4/3, 4/5, -4/7, 4/9, ...
num1=[4/(-i) for i in num[1::2]]+[4/i for i in num[::2]]
return sum(num1)
- 1
Gonathan佳
def pi(N):
# step 1: 创建一个奇数序列: 1, 3, 5, 7, 9, ...
ns=itertools.count(1,2)
# step 2: 取该序列的前N项: 1, 3, 5, 7, 9, ..., 2*N-1.
num=itertools.takewhile(lambda x:x<2*N,ns)
# step 3: 添加正负符号并用4除: 4/1, -4/3, 4/5, -4/7, 4/9, ...
sum=0
for n in num:
if n%4==1:
n=4/n
else:
n=-4/n
# step 4: 求和:
sum=sum+n
return sum