一道关于斐波那契序列的题

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

Fn=Σi=0nfifn−iF_n=\Sigma^n_{i=0}f_if_{n-i}Fn=Σi=0nfifni
Fn−Fn−1=Σi=0nfifn−i−Σi=0n−1fifn−1−iF_n-F_{n-1}=\Sigma^n_{i=0}f_if_{n-i}-\Sigma^{n-1}_{i=0}f_if_{n-1-i}FnFn1=Σi=0nfifniΣi=0n1fifn1i
=f0fn+Σi=1nfifn−i−Σi=0n−1fifn−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=1nfifniΣi=0n1fifn1i
=f0fn+Σi=0n−1fifn−i−Σi=0n−1fifn−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=0n1fifniΣi=0n1fifn1i
=fn+Σi=0n−1fi(fn−i−fn−1−i)=f_n+\Sigma^{n-1}_{i=0}f_i(f_{n-i}-f_{n-1-i})=fn+Σi=0n1fi(fnifn1i)
=fn+Σi=0n−1fi(fn−i−2)=f_n+\Sigma^{n-1}_{i=0}f_i(f_{n-i-2})=fn+Σi=0n1fi(fni2)
=fn+Fn−2=f_n+F_{n-2}=fn+Fn2

所以,Fn=Fn−1+Fn−2+fnF_n=F_{n-1}+F_{n-2}+f_nFn=Fn1+Fn2+fn
于是,Fn−1=Fn−2+Fn−3+fnF_{n-1}=F_{n-2}+F_{n-3}+f_nFn1=Fn2+Fn3+fnFn−2=Fn−3+Fn−4+fnF_{n-2}=F_{n-3}+F_{n-4}+f_nFn2=Fn3+Fn4+fn,二式三式相加并与一试作差,可消去 fnf_nfn。得到 FFF 的递推式:Fn=2Fn−1+Fn−2−2Fn−3−Fn−4F_n=2F_{n-1}+F_{n-2}-2F_{n-3}-F_{n-4}Fn=2Fn1+Fn22Fn3Fn4,用矩阵加速求即可。

转移矩阵为:
{{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=10F0=1,F1=2,F2=5,F3=10

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值