大致意思是定义
f
0
=
f
1
=
1
f_0=f_1=1
f0=f1=1,
f
i
=
f
i
−
1
+
f
i
−
2
f_i=f_{i-1}+f_{i-2}
fi=fi−1+fi−2。
求
Σ
i
=
0
n
f
i
f
n
−
i
\Sigma^n_{i=0}f_if_{n-i}
Σi=0nfifn−i。
令
F
n
=
Σ
i
=
0
n
f
i
f
n
−
i
F_n=\Sigma^n_{i=0}f_if_{n-i}
Fn=Σi=0nfifn−i。
F
n
−
F
n
−
1
=
Σ
i
=
0
n
f
i
f
n
−
i
−
Σ
i
=
0
n
−
1
f
i
f
n
−
1
−
i
F_n-F_{n-1}=\Sigma^n_{i=0}f_if_{n-i}-\Sigma^{n-1}_{i=0}f_if_{n-1-i}
Fn−Fn−1=Σi=0nfifn−i−Σi=0n−1fifn−1−i
=
f
0
f
n
+
Σ
i
=
1
n
f
i
f
n
−
i
−
Σ
i
=
0
n
−
1
f
i
f
n
−
1
−
i
=f_0f_n+\Sigma^{n}_{i=1}f_if_{n-i}-\Sigma^{n-1}_{i=0}f_if_{n-1-i}
=f0fn+Σi=1nfifn−i−Σi=0n−1fifn−1−i
=
f
0
f
n
+
Σ
i
=
0
n
−
1
f
i
f
n
−
i
−
Σ
i
=
0
n
−
1
f
i
f
n
−
1
−
i
=f_0f_n+\Sigma^{n-1}_{i=0}f_if_{n-i}-\Sigma^{n-1}_{i=0}f_if_{n-1-i}
=f0fn+Σi=0n−1fifn−i−Σi=0n−1fifn−1−i
=
f
n
+
Σ
i
=
0
n
−
1
f
i
(
f
n
−
i
−
f
n
−
1
−
i
)
=f_n+\Sigma^{n-1}_{i=0}f_i(f_{n-i}-f_{n-1-i})
=fn+Σi=0n−1fi(fn−i−fn−1−i)
=
f
n
+
Σ
i
=
0
n
−
1
f
i
(
f
n
−
i
−
2
)
=f_n+\Sigma^{n-1}_{i=0}f_i(f_{n-i-2})
=fn+Σi=0n−1fi(fn−i−2)
=
f
n
+
F
n
−
2
=f_n+F_{n-2}
=fn+Fn−2
所以,
F
n
=
F
n
−
1
+
F
n
−
2
+
f
n
F_n=F_{n-1}+F_{n-2}+f_n
Fn=Fn−1+Fn−2+fn。
于是,
F
n
−
1
=
F
n
−
2
+
F
n
−
3
+
f
n
F_{n-1}=F_{n-2}+F_{n-3}+f_n
Fn−1=Fn−2+Fn−3+fn,
F
n
−
2
=
F
n
−
3
+
F
n
−
4
+
f
n
F_{n-2}=F_{n-3}+F_{n-4}+f_n
Fn−2=Fn−3+Fn−4+fn,二式三式相加并与一试作差,可消去
f
n
f_n
fn。得到
F
F
F 的递推式:
F
n
=
2
F
n
−
1
+
F
n
−
2
−
2
F
n
−
3
−
F
n
−
4
F_n=2F_{n-1}+F_{n-2}-2F_{n-3}-F_{n-4}
Fn=2Fn−1+Fn−2−2Fn−3−Fn−4,用矩阵加速求即可。
转移矩阵为:
{{2,1,0,0},
{1,0,1,0},
{-2,0,0,1},
{-1,0,0,0}}
初始化: F 0 = 1 , F 1 = 2 , F 2 = 5 , F 3 = 10 F_0=1, F_1=2, F_2=5, F_3=10 F0=1,F1=2,F2=5,F3=10。