[矩阵乘法]裴波拉契数列II

本文介绍了一种使用矩阵乘法优化斐波那契数列求解的方法,通过构造2x2矩阵T,将时间复杂度降低到O(logN),并给出了样例输入和输出以及代码实现。
摘要由CSDN通过智能技术生成

[ 矩 阵 乘 法 ] 裴 波 拉 契 数 列 I I [矩阵乘法]裴波拉契数列II []II

Description

形如 1 1 2 3 5 8 13 21 34 55 89 144…的数列,求裴波拉契数列的第n项。


Input

n (1< n <2^31)


Output

一个数为裴波拉契数列的第n项mod 10000;


Sample Input

123456789


Sample Output

4514


题目解析

首先看题面,是斐波那契数列。首先想到递归,但考虑到N的值比较大,就想办法将时间复杂度降到 O ( l o g N ) O(logN) O(logN)以达到目的。

那么怎么将时间复杂度降下来呢?
我们将斐波那契数列的第 n n n项定义为 f ( n ) f(n) f(n),然后考虑用矩阵乘法进行一个时间复杂度的优化

那么我们考虑矩阵 ⊏ f [ n − 2 ] , f [ n − 1 ] ⊐ \sqsubset f[n - 2] , f[n - 1]\sqsupset f[n2],f[n1]并利用斐波那契数列的递推关系来得到式子 ⊏ f

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值