相关疑难解决方法(0)

Numpy矩阵求幂给出负值

我想NumPy在Fibonacci问题中使用它,因为它在矩阵乘法中的效率.您知道有一种方法可以使用矩阵查找斐波纳契数[[1, 1], [1, 0]].

FIBO

我写了一些非常简单的代码但是在增加之后n,矩阵开始给出负数.

import numpy
def fib(n):
    return (numpy.matrix("1 1; 1 0")**n).item(1)

print fib(90)
# Gives -1581614984
Run Code Online (Sandbox Code Playgroud)

这可能是什么原因?

注意: linalg.matrix_power也给出负值.

注2:我尝试了从0到100的数字.它在47之后开始给出负值.这是一个大的整数问题,因为NumPy是用C编码的吗?如果是这样,我怎么能解决这个问题?

编辑:使用常规python list矩阵linalg.matrix_power也给出了负面结果.另外,我要补充一点,47之后并非所有结果都是负数,而是随机发生.

Edit2:我尝试使用@ AlbertoGarcia-Raboso建议的方法.它解决了负数问题,但是出现了另一个问题.它给出了-5.168070885485832e+19我需要的答案-51680708854858323072L.所以我尝试使用int(),它将其转换为L,但现在似乎答案是不正确的,因为精度损失.

python numpy matrix fibonacci exponentiation

5
推荐指数
1
解决办法
468
查看次数

标签 统计

exponentiation ×1

fibonacci ×1

matrix ×1

numpy ×1

python ×1