一道關於斐波那契序列的題

大致意思是定義 f0=f1=1f_0=f_1=1fi=fi1+fi2f_i=f_{i-1}+f_{i-2}
Σi=0nfifni\Sigma^n_{i=0}f_if_{n-i}

Fn=Σi=0nfifniF_n=\Sigma^n_{i=0}f_if_{n-i}
FnFn1=Σi=0nfifniΣi=0n1fifn1iF_n-F_{n-1}=\Sigma^n_{i=0}f_if_{n-i}-\Sigma^{n-1}_{i=0}f_if_{n-1-i}
=f0fn+Σi=1nfifniΣi=0n1fifn1i=f_0f_n+\Sigma^{n}_{i=1}f_if_{n-i}-\Sigma^{n-1}_{i=0}f_if_{n-1-i}
=f0fn+Σi=0n1fifniΣi=0n1fifn1i=f_0f_n+\Sigma^{n-1}_{i=0}f_if_{n-i}-\Sigma^{n-1}_{i=0}f_if_{n-1-i}
=fn+Σi=0n1fi(fnifn1i)=f_n+\Sigma^{n-1}_{i=0}f_i(f_{n-i}-f_{n-1-i})
=fn+Σi=0n1fi(fni2)=f_n+\Sigma^{n-1}_{i=0}f_i(f_{n-i-2})
=fn+Fn2=f_n+F_{n-2}

所以,Fn=Fn1+Fn2+fnF_n=F_{n-1}+F_{n-2}+f_n
於是,Fn1=Fn2+Fn3+fnF_{n-1}=F_{n-2}+F_{n-3}+f_nFn2=Fn3+Fn4+fnF_{n-2}=F_{n-3}+F_{n-4}+f_n,二式三式相加並與一試作差,可消去 fnf_n。得到 FF 的遞推式:Fn=2Fn1+Fn22Fn3Fn4F_n=2F_{n-1}+F_{n-2}-2F_{n-3}-F_{n-4},用矩陣加速求即可。

轉移矩陣爲:
{{2,1,0,0},
{1,0,1,0},
{-2,0,0,1},
{-1,0,0,0}}

初始化:F0=1,F1=2,F2=5,F3=10F_0=1, F_1=2, F_2=5, F_3=10

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章