斐波那契数列

斐波那契数列

该数列的前几项如下:

\[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89…… \]

斐波那契的O(n)计算通式:

\[F_0 = 0, F_1 = 1, ……,F_n = F_{n - 1} + F_{n - 2} \]

卢卡斯数列

前几项如下:

\[2, 1, 3, 4, 7, 11, 18, 29, 47, 76, 123, 199....... \]

O(n)计算通式

\[L_0 = 2, L_1 = 1, ......, L_n = L_{n - 1} + L_{n - 2} \]

斐波那契的通项公式

第 n 个斐波那契数可以在 O(n) 的复杂度内计算出来,对于很多时候 O(n) 的时间内是不能满足我们的需要的。所以我们有 O(1) 的计算方法。

通项公式:

\[F_n = \frac{(\frac{1+\sqrt5}{2})^n-(\frac{1-\sqrt5}{2})^n}{\sqrt5} \]

可以了解一下生成函数和归纳法。

我们可以发现,这个公式分子第二项总小于 1 ,并且是以指数级的速度减小。所以我们可以吧公式写成

\[F_n = \bigg[\frac{(\frac{1+\sqrt5}{2})^n}{\sqrt5}\bigg] \]

中括号表示取离他最近的整数

运用这两个式子进行计算时需要极高的精度,可以使用逆元来进行模意义下的运算。

卢卡斯数列通项公式

通项公式:

\[F_n = {(\frac{1+\sqrt5}{2})^n+(\frac{1-\sqrt5}{2})^n} \]

与斐波那契通项公式联立

得:

\[\frac{\sqrt5F_n+L_n}{2} = (\frac{1+\sqrt5}{2})^n \]

posted @ 2022-05-21 11:05  zcxxxxx  阅读(225)  评论(0编辑  收藏  举报