我正在尝试继续我之前的问题,在该问题中我正在尝试使用 Benet 算法计算斐波那契数。为了以任意精度工作,我发现mpmath. 然而,实现似乎在某个值以上失败。例如第 99 个值给出:
218922995834555891712
这应该是(参考):
218922995834555169026
这是我的代码:
从 mpmath 导入 *
定义披():
返回 (1 + sqrt(5)) / 2
定义 phi():
返回 (1 - sqrt(5)) / 2
定义 F(n):
返回 (power(Phi(), n) - power(phi(), n)) / sqrt(5)
开始 = 99
结束 = 100
对于范围内的 x(开始,结束):
打印(x,int(F(x)))