https://blog.csdn.net/lanchunhui/article/details/50569311

1. 矩阵形式的通项

n)

不妨令:

n)

2. 偶数项和奇数项

因为 n1),则有:

m12)

所以有:

)

3. 矩形形式求解 Fib(n)

因为涉及到矩阵幂次,考虑到数的幂次的递归解法:

  • n 为奇数:n=2k+1
    • k2
    • )
  • n 为偶数:n=2k
    • )
    • k2

4. Python

def fib(n):

    if n > 0:
        f0, f1 = fib(n // 2)
        if n % 2 == 1:
            return f0**2+f1**2, f1*(f1+2*f0)
        return f0*(f0+2*(f1-f0)), f0**2+f1**2
    return 0, 1


if __name__ == '__main__':
    print([fib(i)[0] for i in range(10)])

相关文章:

  • 2022-12-23
  • 2021-12-02
  • 2021-12-16
  • 2021-11-10
  • 2022-12-23
  • 2022-12-23
  • 2021-09-13
  • 2021-11-05
猜你喜欢
  • 2021-07-24
  • 2022-12-23
  • 2021-05-24
  • 2021-05-24
  • 2022-12-23
  • 2021-08-04
  • 2022-01-18
相关资源
相似解决方案