首页 > 解决方案 > 在长缩放器中出现运行时警告溢出错误

问题描述

我将要计算任何特定数字的斐波那契数列,比如 n。因此,我使用 numpy 库将列表转换为数组。但是,每当我尝试通过总结系列中的先前元素来为迭代中的当前项目分配值时,我都会收到此错误:在长缩放器中出现运行时警告溢出错误。这是我的问题代码:

import numpy
f = list()
for i in range(0,200):
    f.append(-1)
fi = numpy.array(f)
def fibbo():
    fi[0]=0
    fi[1]=1
    for i in range(2,200):
        k = fi[i-1]
        j = fi[i-2]
        fi[i]=k + j # I am getting error at this line.

def findfibbo(n):
    return fi[n+1]
fibbo()
n = int(input("Enter a number between 0 and 200."))
print(findfibbo(n))

我在这一行收到错误:fi[i] = k+j

标签: python

解决方案


F(200) 是 280571172992510140037611932413038677189525。它不再适合 64 位的整数,它“溢出”。

使用(不准确但快速)浮点数,或使用一些(准确但慢)BigInt 库。


推荐阅读