在误差函数内逼近Pi

时间:2015-10-11 21:17:20

标签: python-3.x

所以我遇到的问题是:

  

数学   常数π(pi)是一个无关数,其值近似   3.1415928...π的精确值等于以下无限和:π = 4/1 - 4/3 + 4/5 - 4/7 + 4/9 - 4/11 + ...我们可以得到一个好的   通过计算前几个项的总和来近似π。写   函数approxPi(error),它将浮点值作为参数   通过计算错误并在错误中近似常量π   以上总和,逐项,直到差异的绝对值   在当前总和与前一个总和之间(少一个术语)是   不比错误大。一旦函数发现差异是   小于错误,它应该返回新的总和。

正确输入的示例:approxPi(0.01)应返回3.1465677471829556

我的代码:

def approxPi(error):
    i=5 #counter for list appending
    lst = [4,(-4/3)] #list values will be appended to
    currentSum = sum(lst) #calcs sum of the list
    previousSum = sum(lst[:len(lst)-1]) #calcs sum of list with one less term
    while abs(currentSum - previousSum) > error: #while loop for error value
        if len(lst) % 2==0: #alternates appending positive or negative value
            lst.append((4/i)) #appends to list
        else:
            lst.append((-4/i))
        i+=2 #increments counter
    return currentSum  #returns sum of the whole list once error value has been reached

当我运行代码时,我陷入循环,直到内存使用率达到100%并且我的系统锁定。关于我做错了什么的提示?这是一个家庭作业问题所以请不要只是发一个答案。

0 个答案:

没有答案