Numpy的matrix_power函数为大型指数提供了错误的结果

时间:2017-01-27 09:16:51

标签: python numpy fibonacci

我正在使用Q-Matrix method在Numpy中实现Fibonacci序列。结果很好,直到n = 47.此时,matrix_power函数返回incorrect results。关于为什么会发生这种情况的任何解释?

import numpy
def fibonacci(n):
    qmatrix = numpy.matrix([[1, 1], [1, 0]])
    (a,b,c,d) = numpy.linalg.matrix_power(qmatrix,n).flatten().tolist()[0]
    return b
print fibonacci(47) # Outputs -1323752223

1 个答案:

答案 0 :(得分:4)

如果您打算使用Fibonacci数字,可能需要牺牲一些速度并使用Python的任意大整数。您可以将矩阵的dtype设置为/.idea/workspace.xml

您也不需要使用.gitignore对象,坚持使用普通数组几乎总是更好。您可以在不将数组转换为列表的情况下提取相关项目:

<div class="wrapper">
  <div class="a"><span>A</span></div>
  <div class="b"><span>B</span></div>
  <div class="c"><span>C</span></div>
  <div class="d"><span>D</span></div>
  <div class="e"><span>E</span></div>
</div>