Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在python中处理非常大的整数?_Python_Anaconda_Largenumber - Fatal编程技术网

如何在python中处理非常大的整数?

如何在python中处理非常大的整数?,python,anaconda,largenumber,Python,Anaconda,Largenumber,受Instagram帖子的启发,我使用斐波那契矩阵的概念编写了一个获取斐波那契序列的代码 def f(n): import numpy as np m=np.array([[1,1],[1,0]],dtype=np.int64) m1=m for i in range(0,n): m1=np.matmul(m1,m) return m1[0,1] 但在n=93之后,它开始给出负数。如果我使用np.int32作为数据类型,那么在n=47之后,它开始给出否定和错误的结果。 我使用的是Py

受Instagram帖子的启发,我使用斐波那契矩阵的概念编写了一个获取斐波那契序列的代码

def f(n):
import numpy as np
m=np.array([[1,1],[1,0]],dtype=np.int64)
m1=m
for i in range(0,n):
    m1=np.matmul(m1,m)
return m1[0,1]

但在n=93之后,它开始给出负数。如果我使用np.int32作为数据类型,那么在n=47之后,它开始给出否定和错误的结果。
我使用的是Python3.9,我希望我的结果是整数(而不是浮点)。如何才能获得n=1000或更大的正确结果?

Numpy ctypes是本机实现的,因此长数据类型在达到64位时将开始溢出。但是,您可以使用
dtype=object
来使用python的任意大整数,这可能会导致处理速度非常慢。

哦,对不起,这是一个错误,实际上,我使用的是np.int64,在python 3.9中,它说没有所谓的长整数。我使用了dtype=object,然后这个代码用于范围(1100)中的I:print(f(I-1))如果f(I-1)哪个索引给你一个负数?我刚试过
打印([f(I)代表范围(0,1000)内的I)]
,没有任何结果是负数。假设代码被更新为
m=np.array([[1,1],[1,0]],dtype=object)