循环遍历列表时出错

时间:2014-02-24 19:36:28

标签: python

所以我在math.se阅读了这个问题,并决定运行一个循环来检查自己的答案。我知道有严格的证据,所以我从来没有真正怀疑它,但是当你看到事情发生时,这很好。显然stackoverflow不支持LaTex,(考虑到这是一个编程站点,而不是数学站点,这似乎很合理)所以我发布了一个截图,以防链接出现故障或其他问题。

Ramanujan's famous nested radical

现在我编写了这段代码来模拟上面的表达式,显然计算它直到无穷大是荒谬的,所以我决定这样做直到n = 999,对我来说似乎很合理,因为我不知道表达式有多快收敛。对于那些没有数学背景的人,忽略lim我试图计算n = 999的给定表达式。

>>>l=list(range(1,1000))
>>>from math import sqrt as s
>>>p=1
>>>while l:
       a=l.pop()
       a*=p
       a+=1
       a=s(a)
       p=a
>>>p
2.0

我希望答案是3而不是2.还要注意我要求一个方法来计算这个函数,我要求我的代码中的错误。你可以为我提供你自己的功能,但这个问题的主要目的是找到我写的代码中的错误,遗憾的是我找不到。

1 个答案:

答案 0 :(得分:5)

您似乎想要使用range(2, 1000)。如果你一直走到1,你最终得到一个额外的sqrt(1 + ...),其中...是你试图解决的公式。

相关问题