【发布时间】:2018-05-02 17:24:04
【问题描述】:
我正在尝试在 Python 2.7 中计算分数。 limit_denominator 方法非常适合此代码的前 15 次迭代。但是,然后代码陷入循环,输出的分母小于 1,000,000
Fraction = 1217471/860882
当我不使用limit_denominator 时,我会得到这样的重复输出:
Fraction = 141421356237/100000000000
最终我想将i 迭代到 1000,所以我的分数会非常大。有什么帮助吗?
from fractions import *
i = 0
x = 1/2.0
x1 = 0
count = 0
while i < 20:
(y) = (1.0 + (x))
(x) = (1 / (2.0 + (x)))
y1 = Fraction(str(y)).limit_denominator()
print("\nFraction = " + str(y1))
i += 1
【问题讨论】:
-
我已经编辑将
i += 1放在while循环中,否则你会有一个无限循环(我假设你不想要)。发布问题时请检查缩进。 -
您不需要所有这些括号。写
y = 1 + x,而不是(y) = (1.0 + (x)),其他行类似。 -
也就是说,我无法使用您发布的代码重现该问题。最终,输出只是
Fraction = 665857/470832