首页 > 其他分享 >生成函数

生成函数

时间:2024-08-26 18:49:56浏览次数:11  
标签:langle frac 函数 sum 生成 序列 rangle OGF

生成函数

普通生成函数(ordinary generating function,OGF)

定义序列 \(a\) 的普通生成函数为:

\[F(x) = \sum_n a_n x^n \]

\(a\) 既可以是有穷序列,也可以是无穷序列。

例子:

1、序列 \(a=\langle 1,2,3\rangle\) 的 OGF 为 \(1 + 2x + 3x^2\);
2、序列 \(a=\langle 1,1, 1, \cdots\rangle\) 的 OGF 为 \(\sum_{n=0}x^n\);

封闭形式

在运用生成函数的过程中,我们不会一直使用形式幂级数的形式,而会适时地转化为封闭形式以更好地化简。

例子:

1、序列 \(a=\langle 1,1, 1, \cdots\rangle\) 的 OGF 的封闭形式为:

\[xF(x)+1=F(x) \\ F(x) = \frac{1}{1-x} \]

2、序列 \(a=\langle a,a, a, \cdots\rangle\) 的 OGF 的封闭形式为:

\[xF(x)+a=F(x) \\ F(x) = \frac{a}{1-x} \]

3、序列 \(a=\langle 1,p, p^2, \cdots\rangle\) 的 OGF 的封闭形式为:

\[pxF(x)+1=F(x) \\ F(x) = \frac{1}{1-px} \]

4、序列 \(a=\langle \binom{m}{0},\binom{m}{1}, \binom{m}{2}, \cdots\rangle\) 的 OGF 的封闭形式为:

\[F(x)=\sum_{n=0}^m\binom{m}{n}x^n=(1+x)^m \]

斐波那契数列的生成函数

斐波那契数列定义为:

\[a_0=0 \\ a_1 = 1 \\ a_n = a_{n-1} + a_{n-2} (n \geq 2) \]

斐波那契数列 \(a=\langle 0, 1, 1, 2, \cdots\rangle\) 的 OGF 的封闭形式为:

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

现在需要额外思考的是,如何将 \(F(x)\) 从封闭形式再一次转化为形式幂级数的形式,进而求出斐波那契的通项公式。

考虑求解一个待定系数的方程:

\[\frac{A}{1-ax}+\frac{B}{1-bx}= \frac{x}{1-x-x^2} \]

通分得到:

\[\frac{A-Abx+B-aBx}{(1-ax)(1-bx)} = \frac{x}{1-x-x^2} \]

待定项系数相等,我们得到:

\[\begin{cases} A+B=0\\ -Ab-aB=1\\ a+b=1\\ ab=-1 \end{cases} \]

解得:

\[\begin{cases} A=\frac{1}{\sqrt{5}}\\ B=-\frac{1}{\sqrt{5}}\\ a=\frac{1+\sqrt{5}}{2}\\ b=\frac{1-\sqrt{5}}{2} \end{cases} \]

得到斐波那契数列的通项公式:

\[\frac{x}{1-x-x^2}=\sum_{n\ge 0}x^n \frac{1}{\sqrt{5}}\left( \left(\frac{1+\sqrt{5}}{2}\right)^n-\left(\frac{1-\sqrt{5}}{2}\right)^n \right) \]

基本运算

加减

考虑两个序列 \(a,b\) 的普通生成函数,分别为 \(F(x),G(x)\)。那么有:

\[F(x)\pm G(x)=\sum_n (a_n\pm b_n)x^n \]

因此 \(F(x)\pm G(x)\) 是序列 \(\langle a_n\pm b_n\rangle\) 的普通生成函数。

乘法

考虑乘法运算,也就是卷积:

\[F(x)G(x)=\sum_n x^n \sum_{i=0}^na_ib_{n-i} \]

因此 \(F(x)G(x)\) 是序列 \(\langle \sum_{i=0}^n a_ib_{n-i} \rangle\) 的普通生成函数。

若令 \(G(x) = \frac{1}{1-x}\),那么 \(F(x)G(x)\) 所对应的序列为序列 \(a\) 的前缀和序列。

其他

\(x F(x)\) 对应的序列为序列 \(a\) 右移一位后所对应的序列。

\(\frac{F(x)-a_0}{x}\) 对应的序列为序列 \(a\) 左移一位后所对应的序列。

标签:langle,frac,函数,sum,生成,序列,rangle,OGF
From: https://www.cnblogs.com/chzhc-/p/18381470

相关文章

  • 【生日视频制作】广州塔表白字幕生日视频制作AE模板修改文字软件生成器教程特效素材【
    广州塔表白字幕生日视频制作教程AE模板改文字生成神器素材祝福怎么如何做的【生日视频制作】广州塔表白字幕生日视频制作AE模板修改文字软件生成器教程特效素材【AE模板】生日视频制作步骤:安装AE软件下载AE模板把AE模板导入AE软件修改图片或文字渲染出视频......
  • 【生日视频制作】一群美女挥手拉蓝横幅条幅AE模板修改文字软件生成器教程特效素材【AE
    一群美女挥手拉蓝条横幅生日视频制作教程AE模板修改文字生成器怎么如何做的【生日视频制作】一群美女挥手拉蓝横幅条幅AE模板修改文字软件生成器教程特效素材【AE模板】生日视频制作步骤:安装AE软件下载AE模板把AE模板导入AE软件修改图片或文字渲染出视频......
  • 什么是友元?什么可以做友元?友元能干什么?(全局函数做友元,类做友元,成员函数做友元)c/c++
    一、什么是友元例如:你的生活中有一个特别好的朋友,你允许它进入你的房间(私有场所)也允许他进入客厅(相对公有场所),但是对于其他人你是不会允许他进入你的房间的,只允许他进入客厅。类对象也有这样类似的好朋友类,可以访问本类的私有成员,这个好朋友类就叫做这个类的友元,友元也可......
  • MySQL常用的分组聚合函数
    一、聚合函数(aggregationfunction)---也就是组函数在一个行的集合(一组行)上进行操作,对每个组给一个结果。常用的组函数:AVG([distinct]expr)求平均值COUNT({*|[distinct]}expr)统计行的数量MAX([distinct]expr)求最大值MIN([distinct]exp......
  • 蓝桥杯单片机入门(4)—编写代码的主函数框架
    这回,我们要讲的是代码编写的大体框架图中注释写的已经很清楚了,一般情况下,我们在最开始的顶部进行头文件的引入其次,主函数一般是不需要有返回值的,如果需要那就定义成int类型,这里我定义的是void没有返回值的类型的函数。voidmain下面就是代码执行的区域了,while(1)是一个死循环......
  • 【生日视频制作】航拍哈尔滨超大堆雪人AE模板修改文字软件生成器教程特效素材【AE模板
    哈尔滨超大堆雪人生日视频制作教程AE模板修改文字软件生神器素怎么如何做的【生日视频制作】航拍哈尔滨超大堆雪人AE模板修改文字软件生成器教程特效素材【AE模板】生日视频制作步骤:安装AE软件下载AE模板把AE模板导入AE软件修改图片或文字渲染出视频......
  • Oracle_取随机数函数的常用方法
    1、从表中随机取记录SELECT*FROM(SELECT*FROMSDXJ.TEST_01ORDERBYDBMS_RANDOM.random)WHEREROWNUM<5;表示从SDXJ.TEST_01表中随机取4条记录2、产生随机数产生一个任意大小的随机数:SELECTDBMS_RANDOM.RANDOMFROMDUAL;产生......
  • 第八期 RAG检索增强生成
    一:RAGvsFine-tuning(一)Fine-tuning(微调)是用一定量的数据集对LLM进行局部参数的调整,以期望LLM更加理解我们的业务逻辑,有更好的zero-shot能力。(二)RAG(检索增强生成)是把企业内部的文档数据先进行embedding,借助检索先获得大致的知识范围答案,再结合prompt给到LLM,让LLM生成最终的答......
  • C++ 析构函数注意事项总结
    在C++中,析构函数是一个特殊的成员函数,它在对象生命周期结束时自动调用,用于执行清理工作,如释放分配给对象的内存、关闭文件、断开网络连接等。正确编写析构函数对于防止内存泄漏、资源泄露和其他资源管理问题至关重要。以下是编写C++析构函数时需要注意的一些重要事项:确保资......
  • C++类和对象(下):初始化列表、explicit关键字、友元函数、友元类
    文章目录C++类和对象9、初始化列表9.1构造函数体赋值9.2初始化列表9.3explicit(显示)关键字10、友元10.1友元函数10.2友元类C++类和对象9、初始化列表一个类的构造函数要初始化成员变量有两种方式,一种是构造函数体赋值,另一种是初始化列表。9.1构造函数体赋值......