首页 > 其他分享 >关于斐波那契数列通项

关于斐波那契数列通项

时间:2022-11-18 20:11:22浏览次数:42  
标签:infty frac dfrac sum sqrt 斐波 通项 那契 lambda

1. 生成函数

对于任意数列\(\{a_n\}\),函数

\[f(x)=\sum_{n=0}^\infty a_nx^n \]

称为数列\(\{a_n\}\)的普通型生成函数

生成函数中的\(x\)并无实际意义,一般不用考虑是否收敛等情况

2. 广义二项式定理

众所周知,对于一个多项式\((a+b)^n\),

\[(a+b)^n=\sum_{k=0}^n\binom{n}{k}a^{n-k}b^k\tag{1} \]

其中\(\displaystyle \binom{n}{k}=\frac{n!}{(n-k)!k!}\)

奈何使用阶乘的定义不够优雅,而且难以推广,因此改写上述公式

\[(a+b)^n=\sum_{k=0}^n\frac{n^{\underline{k}}}{k!}a^{n-k}b^k\tag{2} \]

其中\(\displaystyle n^{\underline{k}}=\prod_{i=n-k+1}^ni\),易知在\(n\)为正整数时\((1)\)与\((2)\)等价

根据\(n^{\underline{k}}\)的定义,易知当\(k>n\)时,\(n^{\underline{k}}=0\),因此,我们可以将\((2)\)中求和的上限改为\(\infty\)

\[(a+b)^n=\sum_{k=0}^\infty\frac{n^{\underline{k}}}{k!}a^{n-k}b^k\tag{3} \]

3. (某个用得到的)级数

或许有人认为至今我们都只是在摆弄一些符号,重新提了一遍原始的问题,但观察后发现公式\((3)\)对比公式\((1)\)除去了任何关于\(n\)的限制,可以尝试令\(a=1,b=-\lambda x,n=-1\)

\[\begin{split} \frac{1}{1-\lambda x} &=\sum_{k=0}^\infty\frac{(-1)^\underline{k}(-\lambda x)^k}{k!}\\ &=\sum_{k=0}^\infty\frac{k!(-1)^k(-1)^k\lambda^kx^k}{k!}\\ &=\sum_{k=0}^\infty\lambda^kx^k \end{split} \tag{4} \]

观察发现上述公式仅当\(-1<x<1\)时才收敛,或者说“有意义”,但对于下面的操作,这样的公式足矣

4. 求通项

写出斐波那契数列\(\{f_n\}\)的生成函数

\[F(x)=\sum_{k=0}^\infty f_nx^n \]

因为\(f_n=f_{n-1}+f_{n-2}\)

所以\(F(x)=x^2F(x)+xF(x)+x\)

所以

\[F(x)=\frac{1}{1-x-x^2} \]

之前得到了\(\dfrac{1}{1-\lambda x}\)的级数,尝试化为类似形式

设\(1-x-x^2=(1-\lambda_1x)(1-\lambda_2x)\),解得

\[\begin{cases} \lambda_1=\dfrac{1-\sqrt{5}}{2}\\ \lambda_2=\dfrac{1+\sqrt{5}}{2} \end{cases} \text{或} \begin{cases} \lambda_1=\dfrac{1+\sqrt{5}}{2}\\ \lambda_2=\dfrac{1-\sqrt{5}}{2} \end{cases} \]

不妨设\(\lambda_1=\dfrac{1-\sqrt{5}}{2}, \lambda_2=\dfrac{1+\sqrt{5}}{2}\)

进一步,设\(F(x)=\dfrac{A}{1-\lambda_1x}+\dfrac{B}{1-\lambda_2x}\),则

\[\begin{align*} A(1-\lambda_2x)+B(1-\lambda_1x)&=1\\ (A+B-1)-(A\lambda_2+B\lambda_1)x&=0 \end{align*} \]

由于生成函数的特性,上述方程左边必须与\(x\)无关,因此只有可能

\[\begin{cases} A+B-1=0\\ A\lambda_2+B\lambda_1=0 \end{cases} \]

解得

\[\begin{cases} A=-\dfrac{\lambda_1}{\sqrt{5}}\\ B=\dfrac{\lambda_2}{\sqrt{5}} \end{cases} \]

所以

\[\begin{split} F(x)&=-\frac{\lambda_1}{\sqrt{5}}\frac{1}{1-\lambda_1x}+\frac{\lambda_2}{\sqrt{5}}\frac{1}{1-\lambda_2x}\\ &=-\frac{\lambda_1}{\sqrt{5}}\sum_{k=0}^\infty\lambda_1^kx^k+\frac{\lambda_2}{\sqrt{5}}\sum_{k=0}^\infty\lambda_2^kx^k\\ &=\frac{\displaystyle\sum_{k=0}^\infty\left(\lambda_2^{k+1}-\lambda_1^{k+1}\right)}{\sqrt{5}} \end{split} \]

此时将\(F(x)\)写成了描述每一项的形式,再将\(\lambda_1,\lambda_2\)带入得出\(f_n=\dfrac{\left(\dfrac{1+\sqrt{5}}{2}\right)^{n+1}-\left(\dfrac{1-\sqrt{5}}{2}\right)^{n+1}}{\sqrt{5}}\)

但是以上内容均是基于\(n\)从\(0\)开始,即\(f_0=f_1=1\)的定义,因此需再改成熟知的从\(1\)开始编号的形式

\[f_n=\dfrac{\left(\dfrac{1+\sqrt{5}}{2}\right)^n-\left(\dfrac{1-\sqrt{5}}{2}\right)^n}{\sqrt{5}} \]

标签:infty,frac,dfrac,sum,sqrt,斐波,通项,那契,lambda
From: https://www.cnblogs.com/KimJeonghui/p/16901258.html

相关文章

  • 数组求解斐波那契数列
    #include<stdio.h>intmain(){ inti; intf[20]={1,1}; for(i=2;i<20;i++) f[i]=f[i-2]+f[i-1]; for(i=0;i<20;i++) { if(i%5==0)printf("\n"); printf("%......
  • AcWing 205. 斐波那契
    \(AcWing\)\(205\).斐波那契​​题目传送门​​一、题目描述在斐波那契数列中,\(F_ib_0=0,F_ib_1=1,F_ib_n=F_ib_{n−1}+F_ib_{n−2}(n>1)\)。给定整数\(n\),求\(F_ib_n~......
  • 算法系列:斐波那契数列问题
    问题描述:假设有个楼梯,每次只能走3步或者5步,问到达第N节会有几种组合?思路分析:这个问题需要反过来思考才能比较容易的找到规律。总共有N级台阶,因为每次要么上3阶......
  • 数据结构之动态规划 斐波那契数列&最长公共子序列
    $fib()$递归$fib(n)=fib(n-1)+fib(n-2):{0,1,1,2,3,5,8,……}$复杂度计算$T(0)=T(1)=1;T(n)=T(n-1)+T(n-2)+1,n>1$令$S(n)=\frac{[T(n)+1]}{2}$//这是要去掉......
  • 《程序员数学:斐波那契》—— 为什么不能用斐波那契散列,做数据库路由算法?
    作者:小傅哥博客:https://bugstack.cn源码:https://github.com/fuzhengwei/java-algorithms沉淀、分享、成长,让自己和他人都能有所收获!......
  • 算法题--斐波那契数列
    9要求时间限制:1秒空间限制:32768K题目描述大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。n<=39解题思路这道题可以直接用递归来解决,但......
  • 斐波那契数列求第n项值
    斐波那契数列已知:斐波那契数列第n项是除前两项以外,第n-2与第n-1项的和:S(n)=S(n-2)+S(n-1)。优化前//优化前constn="";functiongetFibonacciSequenceItem......
  • 斐波那契dp
    21,斐波那契概念如果是dp,就同个子问题得到当前问题方程\[F[i]=F[i-1]+F[i-2]\]代码//优化版本classSolution{public:intFibonacci(intn){intfr......
  • 求第n个斐波那契数
    第一种:递归,效率低,运算慢。#include<stdio.h>#include<string.h>int fib(intn){if(n<=2)return 1;elsereturnfib(n-1)+fib(n-2);}int main(){int n=0;intret=0;sc......
  • 编写一个函数,求第n个斐波那契数。【递归 + 非递归】
    ​​编写一个函数,求第n个斐波那契数。【递归+非递归】​​//非递归#define_CRT_SECURE_NO_WARNINGS1#include<stdio.h>#include<string>intfibo(intn){inti=0;......