\(\mathbf{OGF}\) 的定义

对于一个序列 \(a_{1},a_{2},\cdots\),我们称:

\[G(x)=\sum_{i=0}^{\infty}a_{i}x^{i}
\]

为序列 \(a\) 的 \(\mathbf{OGF}\) 即普通生成函数 (\(\texttt{Ordinary Generating Function}\))。

同时因为我们不关心 \(x\) 的取值,因此 \(\sum_{i=1}^{+\infty}a_{i}x^{i}\) 又称作以 \(x\) 为自由元的形式幂级数。 -- 摘自 自为风月马前卒

一个例子

举个例子,序列:

\[\left(^{n}_{0}\right),\left(^{n}_{1}\right),\cdots,\left(^{n}_{n}\right)
\]

的 \(\mathbf{OGF}\) 为(二项式定理):

\[G(x)=(1+x)^{n}
\]

由等比数列求和公式,有一个常用的等式:

\[\sum_{i=0}^{\infty}x^{i}=\frac{1-x^{\infty}}{1-x}
\]

因为指数为 \(\infty\),所以 \(x^{\infty}\) 趋近于 \(0\),箭头方向随便打,因为我们并不关心 \(x\) 的取值。

\[\sum_{i=0}^{\infty}x^{i}=\frac{1}{1-x}
\]

这个等式还有一个重要的运用,我们把 \(x\) 替换成 \(kx\) 即可得:

\[\sum_{i=0}^{\infty}(kx)^{i}=\frac{1}{1-kx}
\]

后文的用 \(\mathbf{OGF}\) 求序列的通项公式里面这个东西很有用的。

\(\texttt{Fibonacci}\) 序列的生成函数求法

定义一个序列

\[F_{i}=\begin{cases}
1,i\in[0,1] \\
\displaystyle
F_{i-1}+F_{i-2},i\in[2,\infty)
\end{cases}
\]

则我们称 \(F\) 为 \(\texttt{Fibonacci}\) 序列。

接下来我们来推导其生成函数:

\[\begin{aligned}
G(x)&=\sum_{i=0}^{\infty}F_{i}x^{i} \\
G(x)&=1+x+2x^{2}+3x^{3}+\cdots \\
xG(x)&=x+x^{2}+2x^{3}+3x^{4}+\cdots \\
x^{2}G(x)&=x^{2}+x^{3}+2x^{4}+3x^{5}+\cdots
\end{aligned}
\]

这里运用初中数学中经常用的到错位相减这一小技巧,可得

\[G(x)-xG(x)-x^{2}G(x)=1
\]

即可得

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

至此,我们已经求出了 \(\texttt{Fibonacci}\) 序列的 \(\mathbf{OGF}\) 了。

利用生成函数求数列通项

以前文提到的 \(\texttt{Fibonacci}\) 为例。

首先我们知道其 \(\mathbf{OGF}\) 为:

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

待定系数一下分母我们就可以得到:

\[G(x)=\frac{1}{(1-\frac{1+\sqrt{5}}{2}x)(1-\frac{1-\sqrt{5}}{2}x)}
\]

后面的还没推出来,咕了

Note -「普通生成函数 OGF」的更多相关文章

  1. Note -「圆方树」学习笔记

    目录 圆方树的定义 圆方树的构造 实现 细节 圆方树的运用 「BZOJ 3331」压力 「洛谷 P4320」道路相遇 「APIO 2018」「洛谷 P4630」铁人两项 「CF 487E」Touris ...

  2. Note -「Dijkstra 求解 MCMF」

    食用前请先了解 SPFA + Dinic/EK 求解 MCMF. Sol. 总所周知,SPFA 牺牲了.于是我们寻求一些更稳定的算法求解 MCMF. 网络流算法的时间属于玄学,暂且判定为混乱中的稳定. ...

  3. Note -「Dsu On Tree」学习笔记

    前置芝士 树连剖分及其思想,以及优化时间复杂度的原理. 讲个笑话这个东西其实和 Dsu(并查集)没什么关系. 算法本身 Dsu On Tree,一下简称 DOT,常用于解决子树间的信息合并问题. 其实 ...

  4. Note -「矩阵树定理」学习笔记

      大概--会很简洁吧 qwq. 矩阵树定理   对于无自环无向图 \(G=(V,E)\),令其度数矩阵 \(D\),邻接矩阵 \(A\),令该图的 \(\text{Kirchhoff}\) 矩阵 \ ...

  5. Note -「狄利克雷前缀和」

    学到一个诡异东西,当个 Trick 处理用吧. 现在有一个形如 \(\sum \limits _{i = 1} ^{n} \sum \limits _{d | i} f(d)\) 的柿子,不难发现可以 ...

  6. Note -「多项式」基础模板(FFT/NTT/多模 NTT)光速入门

      进阶篇戳这里. 目录 何为「多项式」 基本概念 系数表示法 & 点值表示法 傅里叶(Fourier)变换 概述 前置知识 - 复数 单位根 快速傅里叶正变换(FFT) 快速傅里叶逆变换(I ...

  7. Note -「Lagrange 插值」学习笔记

    目录 问题引入 思考 Lagrange 插值法 插值过程 代码实现 实际应用 「洛谷 P4781」「模板」拉格朗日插值 「洛谷 P4463」calc 题意简述 数据规模 Solution Step 1 ...

  8. Note -「动态 DP」学习笔记

    目录 「CF 750E」New Year and Old Subsequence 「洛谷 P4719」「模板」"动态 DP" & 动态树分治 「洛谷 P6021」洪水 「S ...

  9. Note -「Mobius 反演」光速入门

    目录 Preface 数论函数 积性函数 Dirichlet 卷积 Dirichlet 卷积中的特殊函数 Mobius 函数 & Mobius 反演 Mobius 函数 Mobius 反演 基 ...

  10. Loj 2320.「清华集训 2017」生成树计数

    Loj 2320.「清华集训 2017」生成树计数 题目描述 在一个 \(s\) 个点的图中,存在 \(s-n\) 条边,使图中形成了 \(n\) 个连通块,第 \(i\) 个连通块中有 \(a_i\ ...

随机推荐

  1. Apache Hudi 1.x 版本重磅功能展望与讨论

    Apache Hudi 社区正在对Apache Hudi 1.x版本功能进行讨论,欢迎感兴趣同学参与讨论,PR链接:https://github.com/apache/hudi/pull/8679/f ...

  2. 聊聊Cola-StateMachine轻量级状态机的实现

    背景 在分析Seata的saga模式实现时,实在是被其复杂的 json 状态语言定义文件劝退,我是有点没想明白为啥要用这么来实现状态机:盲猜可能是基于可视化的状态机设计器来定制化流程,更方便快捷且上手 ...

  3. 【python基础】函数-值传递

    为了更好的认识函数,我们还要研究值传递问题,再研究这个问题之前,我们已经知道了函数之间的值传递,是实参变量值传递给形参变量,然后让形参变量在函数内完成相应的功能.但是因为数据类型的不同,这里的值传递产 ...

  4. Linux下AWK、SED、GREP、FIND命令详解

    AWK AWK是一个优良的文本处理工具,Linux和Unix环境中现有的功能最强大的数据处理引擎之一. 语法 awk [选项参数] 'script' var=value file(s) 或 awk [ ...

  5. Sentieon安装时 jemalloc error 解决办法

    背景 Sentieon建议使用jemalloc来改善Sentieon应用程序中的内存管理和整体性能,尤其是Sentieon bwa-mem.有时在安装运行过程中会出现报错: ERROR: ld.so: ...

  6. 行行AI人才直播第8期:新加坡国立大学在读博士生张傲《多模态大语言模型(MLLM)的简介及高效训练》

    随着 ChatGPT 在各领域展现出非凡能力,多模态大型语言模型(MLLM)近来也成为了研究的热点,它利用强大的大型语言模型(LLM)作为"大脑",可以执行各种多模态任务.更让人感 ...

  7. .NET写一个自己的Lambda表达式与表达式树

    LambdaExpression继承Expression Expression又继承LambdaExpressio 所以,Expression与 Expression的区别在于:泛型类以静态类型的方法 ...

  8. CF1654E Arithmetic Operations 题解

    摘自我的洛谷博客. 题目让我们求改变数字的最少次数,那我们转化一下, 求可以保留最多的数字个数 \(cnt\),再用 \(n\) 减一下就行,即 \(res = n - cnt\). 我们先考虑两种暴 ...

  9. Error: Could not open client transport with JDBC Uri: jdbc:hive2://localhost:10000: java.net.ConnectException: 拒绝连接 (Connection refused) (state=08S01,code=0)

    一:启动hiveserver2服务 二:启动beeline 三:连接hiveserver2(下面的1000000端口号适当改小写因为其超出最大端口号的范围建议改为10000) 如果启动不成功实现我们先 ...

  10. 【go语言】1.1.2 Go 语言的特性

    1. 简洁的语法 Go 语言的语法设计上非常简洁明了,没有复杂的继承和泛型,也没有异常处理,但这并不影响它的功能性和表达力.这使得 Go 语言容易学习和使用. 例如,以下是一个简单的 Go 函数,用于 ...