Discuss / Python / try

cacaty

#1 Created at ... [Delete] [Delete and Lock User]

def f(n):

    if n % 4 == 1:

        return 4/n

    else:

        return -4/n

def pi(N):

    ' 计算pi的值 '

    # step 1: 创建一个奇数序列: 1, 3, 5, 7, 9, ...

    odds = itertools.count(1,2)

    # step 2: 取该序列的前N项: 1, 3, 5, 7, 9, ..., 2*N-1.

    ns = itertools.takewhile(lambda x: x<2*N, odds)

    # step 3: 添加正负符号并用4除: 4/1, -4/3, 4/5, -4/7, 4/9, ...

    L = list(map(f,ns))

    # step 4: 求和: 

    pi = sum(L)         

    return pi


  • 1

Reply