python - 如何在python中处理非常大的整数?
问题描述
我写了一个获取斐波那契数列的代码,使用斐波那契矩阵的概念,灵感来自这个 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 作为 dtype 然后在 n=47 之后,它开始给出负面和错误的结果。我正在使用 python 3.9,我希望我的结果是整数(不是浮点数)我该怎么做才能得到 n=1000 或更大的正确结果?
解决方案
Numpy ctypes 是本机实现的,因此长数据类型在达到 64 位时将开始溢出。但是,您可以dtype=object
使用 python 的任意大整数,但处理起来可能会很慢。
推荐阅读
- java - ArrayLists 中的 .get 命令我做错了什么
- mql4 - 如何解决整数的“并非所有控制路径都返回值”错误
- python - Python,如何压缩大小不等的列表,如果一个列表的长度小于另一个,则填充无
- json - 解析 JSON 数据 Swift 5
- c# - 在旧的“aspx”项目中包含 Azure AD 身份验证
- python - 为什么 PyMySQL 查询没有给出任何输出?
- node.js - Thinkster.io MEAN 堆栈问题设置身份验证路由
- c# - .Net 4.8 中的 Azure 应用程序配置 LabelFilters 无法正常工作
- amazon-s3 - 是否可以在不创建 ObjectBucketClaim(OBC) 的情况下创建 Noobaa 存储桶?
- c# - 文件中的排序行取决于c#中文件本身的内容