res = fn1 + fn2;
}
return res;
}
>
> 矩阵乘法实现
>
>
>
算法的时间复杂度是O(logn)。
首先引入矩阵相乘
(
F
n
F
n
−
1
F
n
−
1
F
n
−
2
)
∗
(
1
1
1
0
)
=
(
F
n
+
F
n
−
1
F
n
F
n
−
1
+
F
n
−
2
F
n
−
1
)
(\begin{matrix}F\_n&F\_{n-1}\\F\_{n-1}&F\_{n-2}\end{matrix}) \* (\begin{matrix}1&1\\1&0\end{matrix}) = (\begin{matrix}F\_n + F{n-1}&F\_n\\F\_{n-1} + F\_{n-2}&F\_{n-1}\end{matrix})
(FnFn−1Fn−1Fn−2)∗(1110)=(Fn+Fn−1Fn−1+Fn−2FnFn−1)
根据斐波那契迭代的公式可以推得
* F
n
+
F
n
−
1
=
F
n
+
1
F\_n + F\_{n-1} = F\_{n + 1}
Fn+Fn−1=Fn+1
* F
n
=
F
n
F\_n = F\_n
Fn=Fn
* F
n
−
1
+
F
n
−
2
=
F
n
F\_{n-1} + F\_{n - 2} = F\_n
Fn−1+Fn−2=Fn
* F
n
−
1
=
F
n
−
1
F\_{n-1} = F\_{n-1}
Fn−1=Fn−1
由此可以得出结论。
A
n
∗
(
1
1
1
0
)
=
(
A
n
+
1
)
**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**[需要这份系统化的资料的朋友,可以点击这里获取!](https://bbs.youkuaiyun.com/topics/618542503)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**