Python循环帮助使用Gregory–Leibniz级数计算PI

2024-10-16 20:48:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我在让python2.5shell执行我需要做的事情时遇到了一个问题。我试图让用户输入一个值“n”,表示循环将重复的次数。实际上,我需要用户输入N,它将对应于Gregory–Leibniz级数中的项数,并输出pi的近似值。在

格雷戈里-莱布尼茨系列 pi=4*((1/1)-(1/3)+(1/5)-(1/7)+(1/9)-(1/11)+(1/31)

所以当n是3时,我需要循环计算到1/5。不幸的是,对于total变量,它总是给我一个值0。在

我现在的代码是错误的,我知道。只是想找人帮忙。代码如下:

def main():
    n = int(raw_input("What value of N would you like to calculate?"))
    for i in range(1,n,7):
        total = (((1)/(i+i+1))-((1)/(i+i+2))+((1)/(i+i+4)))

    value = 4*(1-total)
    print(value)

main()

Tags: 代码用户valuemaindef错误pishell
3条回答

你需要积累条件。e、 g

total = 0.0
term = 1.0
for i in range (1,n+1):
    denom = 2*i-1
    total += term/denom
    term = -term

当然,你可以更简洁地表达这一点

也许用这个来代替也更自然

总计=0.0 术语=1.0 对于范围(n)内的i: denom=2*i+1 总计+=术语/分母 期限=-期限

因为你用n项的最自然形式,在这个范围内。注意分母计算方法的不同。在

这使用整数除法,因此将得到零:

total = (((1)/(i+i+1))-((1)/(i+i+2))+((1)/(i+i+4)))

相反,使用float来获得浮点除法。在

^{pr2}$

在Python2中,默认情况下对整数执行/操作将得到一个整数。在

{{cd3>中的{cd3>总是进行整型除法。在

找到π{Q1)公式。设S是用来近似π的项序列。我们可以看到,S中的第一项是+1,S中的第二项是-1/3,S中的第三项是+1/5,依此类推。求最小项数,使4*S与π之差小于0.01。也就是说,abs(4*S-数学.pi)<;=0.01。在

相关问题 更多 >