找到“'的近似值使用python中连续分数的前n + 1个项

时间:2016-03-19 23:49:33

标签: python

我试图在wiki中关注[a1, a2, a3...]的连续分数示例。当我运行该程序时,我能够获得n = 2的结果2.727272...75 但是,当我尝试n = 3时,有两个输出,它们较低(获得2.394和第二行2.3333 ...) 我不确定是否需要在y =...行添加另一个集合。如果是这样,每次更改i -1+时,我都需要在y添加另一组n? 为什么我得到两行答案?我是如何完成循环的?

这是我的代码:

n = abs(int(input("Enter number: ")))
y = 0
d = 0

for i in range(n, 1, -1):
    if i == n:
        y = (i - 1) + ((i - 1)/((i-1)/(i + (i/(i + 1))))
        d = d + y
    else:
        d = i + 1

    e = 2 + (1/d)

    print (e)

1 个答案:

答案 0 :(得分:1)

来自wikipedia's article on the subject

e

这是合适的选择(选择你喜欢的n):

from __future__ import division, print_function
from sys import argv
from math import factorial

e = 0
n =  int(argv[1]) if len(argv) > 1 else 100 # allowing to pass a value for n as an argument
for i in range(n):
    e += 1 / factorial(i)

print(e)