Discuss / Python / hui gu

hui gu

Topic source

frantumaglia

#1 Created at ... [Delete] [Delete and Lock User]
def pi(N):    # step 1: 创建一个奇数序列: 1, 3, 5, 7, 9, ...    natuals = filter(lambda t: (t + 1) % 2 == 0, itertools.count(1))    # step 2: 取该序列的前N项: 1, 3, 5, 7, 9, ..., 2*N-1.    n2 = itertools.takewhile(lambda u: u <= 2 * N - 1, natuals)    # step 3: 添加正负符号并用4除: 4/1, -4/3, 4/5, -4/7, 4/9, ...    o = map(lambda p: (1 / p) * ((-1) ** ((p + 1) / 2 + 1)), n2)    # step 4: 求和:    end = functools.reduce(lambda w, s: w + s, o)    return end * 4

  • 1

Reply