总理同学的编程尝试

为大家见证传说中的初学者暴力编程(C/C++)

数列 A[n] = p A[n-1] + q A[n-2] の 通项公式

这完全是一个数学问题,但有的时候可以用来解决一些计算机问题,所以简单总结一下。

感谢今天上午学长的精彩讲解。 2018.1.24


结论

对于数列A,若An=pAn1+qAn2

那么A的通项公式就一定能表示成An=αx1n+βx2n的形式。

其中x1,x2为方程x2pxq=0的两根。(它们也被称为这个数列的特征根)

证明

我只是一个普通人,所以我并不知道数学家是如何脑洞大开,想出这个结论的,但是我们可以尝试着“反向证明”。(这个证明是我自己胡乱YY的,别听我胡扯!)

假如我们已知一个数列的通项公式为An=αx1n+βx2n,那么我们能不能试着反推它的递推式。假如:An=pAn1+qAn2,那么有:

[αx1n+βx2n]=p[αx1n1+βx2n1]+q[αx1n2+βx2n2]

也就是:
[αx1n]+βx2n=[pαx1n1+qαx1n2]+pβx2n1+qβx2n2

我们不妨假设,这个式子可以拆成两部分:

αx1n=pαx1n1+qαx1n2

βx2n=pβx2n1+qβx2n2

系数约掉:

x1n=px1n1+qx1n2

x2n=px2n1+qx2n2

两个式子分别处以x1n1,x2n2:

x12=px1+qx12px1q=0

x22=px2+qx22px2q=0

这说明如果x1,x2恰是x2pxq=0的两根,该递推式就可行。

(不靠谱的证明到此结束)

以后如果我知道了正确的证明方式我就把正确的证明补上。

用法

这样的话,只需要知道这个数列中的任意两项,带入求出α,β就得到了完整的通项公式。

用法案例:斐波那契数列

比如斐波那契数列的通项公式:

斐波那契数列的定义:

F0=F1=1

Fn=Fn1+Fn2:n2

它的特征方程为:

x2x1=0

两个特征根为:x1=1+52,x2=152

所以通项公式为Fn=α(1+52)n+β(152)n

F0,F1带入通项公式。

F0=α+β=1

F1=α1+52+β152=1

解方程得:

α=5+125,β=5125

所以,斐波那契数列通项公式为:Fn=5+125(1+52)n+5125(152)n

注意,这个通项公式是从n=0开始的,我看到百度上给出了从n=1开始的通项公式。

若将F1=F2=1带入通项公式:

F1=α1+52+β152=1

F2=α(1+52)2+β(152)2=1

解得:α=15,β=15

所以通项公式为:Fn=15(1+52)n15(152)n

这个式子只需要向左平移一下就可以得到刚才求出的从0开始的那个通项公式(这说明我解方程没解错)。

—> 百度百科戳这里 <—

阅读更多
版权声明:文章纯属版主手敲,请同学们尊重版主的知识产权。 https://blog.csdn.net/GGN_2015/article/details/79154315
文章标签: 数列 数学
个人分类: 算法导论
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

数列 A[n] = p A[n-1] + q A[n-2] の 通项公式

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭