2026-08-02 · 把序列挂到函数上
0. 导读与元结构 (Orientation & Meta-structure)
起点问题。 枚举组合里常见的答案不是一个数,而是一整列数:。如果直接写出 很困难,我们能否先把整列数压成一个可操作对象,再从这个对象中读回每个系数?Generating function(生成函数)的回答是:把序列挂到一个形式幂级数上,让递推、乘法、分解和奇点成为研究序列的工具。
本期的对象层分为四层:
- 系数层:一个序列 ,通常来自“大小为 的对象有多少个”;
- 形式层:级数 ,先作为 formal power series(形式幂级数),不要求 取任何数值;
- 代数层:递推、乘积、除法在形式幂级数环中变成方程;
- 解析层:当级数有收敛半径时,再把 看成复函数,用 poles(极点)、singularities(奇点)解释 的增长。
先修只需要多项式乘法、几何级数、常系数线性递推和一点点组合计数。主导 proof engines 是:coefficient extraction(系数抽取)、Cauchy product(柯西乘积)、index shifting(指标移位)、partial fractions(部分分式)和“每个大小 的对象只涉及有限选择”的逐系数论证。
今天是新的 ordinary exploration micro-arc exploration-2026-w31-enumerative-machines 的 Day 1/3。由于本周 roaming issue 已经用过,今天不再漫游,而是开启一条枚举机器弧线:Day 1 建立生成函数的形式语言;后续可进入分拆乘积、符号方法,以及从有理函数到解析组合的增长估计。
1. 核心概念、定理与谱系 (Concept, Theorem & Lineage)
1.1 普通生成函数:先是形式对象,不是函数图像
定义(formal power series,形式幂级数)。 设 是含 的交换环。 是所有形式和
组成的集合。加法逐项定义,乘法由 Cauchy product 定义:若
则
这里每个 的系数只含有限和,所以乘法在形式层是良定义的。
定义(ordinary generating function, OGF,普通生成函数)。 给定序列 ,它的普通生成函数是
系数抽取记号定义为
完整量词是:
RMK. “生成函数”这个名称容易误导。形式层中 不是实数或复数, 也不先是一条曲线;它是一个把所有系数排在一起的代数对象。只有当我们额外讨论收敛半径时,才进入 analytic function(解析函数)的语境。
1.2 常系数递推为何给出有理生成函数
先给出一个可反复使用的定理。
定理(linear recurrence to rational OGF,线性递推到有理生成函数)。 设 是域,,。若序列 满足
定义
再约定 for ,并令
则在 中有
从而
这里除法合法,因为 ,所以 在形式幂级数环中可逆。
证明。 计算 的 系数。由 Cauchy product,
其中 for 。当 时,这个系数由递推式等于 ;当 时,它正是 中对应的系数。因此 只剩前 项,等于 。故证。
这个定理的要点不是“有理函数看起来漂亮”,而是:递推关系本来是无限多个方程,乘上 后,它们被一次性压缩为一个有限分子。若 可因式分解,partial fractions 会把系数抽取变成几何级数系数抽取。
例如 Fibonacci sequence(Fibonacci 数列)满足 ,且
按定理得到
这已经是一个完整答案:
若再进入解析或代数闭式层,分母根会给出 Binet formula;若只需递推计算,形式恒等式本身已足够。
1.3 乘积如何编码选择:整数分拆的生成函数
递推不是生成函数唯一的入口。另一条主线是:乘法编码独立选择。
定义(integer partition,整数分拆)。 对 , 的一个分拆是一个有限非增正整数列
空列是 的唯一分拆。记 为 的分拆数。
命题(partition product formula,分拆乘积公式)。 在 中,
逐系数证明。 对固定的 ,
表示“部件 取 次”。从所有 的因子中选择一项 ,乘积贡献
当我们只看 的系数时,必有 for ,并且满足 的非负整数列 只有有限种。这样的列与 的分拆一一对应: 就是部件 出现的次数。因此右边 的系数正是 。
同理,如果只允许 distinct parts(互异部件),每个部件 只能选或不选;若再用 标记部件个数,则
其中 是把 分拆成 个互异正整数的方式数。George Andrews 对 partition theory(分拆理论)的历史梳理中指出,Euler 正是从 Naudé 关于“ 分成 个互异部件”的问题出发,引入这类生成函数方法,并得到答案 。
1.4 谱系:Euler 的乘积,Wilf 的桥,Flajolet--Sedgewick 的奇点
Euler Archive 对 Euler 的论文 Observationes analyticae variae de combinationibus 的说明很谨慎:这篇文章“may be where generating functions are first used”。我们不必把“第一次”说死;足够重要的事实是,它把分拆问题转化为级数和无穷乘积,并把具体计算推进到一般方法。
Wilf 的 generatingfunctionology 则把现代教学中的核心态度说得很清楚:生成函数是 discrete mathematics(离散数学)与 continuous analysis(连续分析)之间的桥。形式层负责正确编码,解析层负责解释增长。若只做形式代数,我们能解递推、证恒等式、组织分拆;若再看复平面上的奇点,便能读出系数的渐近。
Flajolet 与 Sedgewick 的 Analytic Combinatorics 把这条路径系统化为三步:
Graduate / modern extension. 若 是有理函数,且最靠近原点的奇点是简单极点 ,许多情况下系数满足
这里的 来自解析层,而非形式层。形式幂级数告诉我们“哪个数是 ”;复分析进一步告诉我们“当 很大时它大约多大”。二者不可混同,却彼此成全。
2. 固定模板习题 (Template Exercise)
题目
设序列 满足
且对所有 ,
求普通生成函数
用部分分式求 的闭式公式。
模板识别
看到“常系数线性递推 + 初值 + 求闭式”,可以尝试 rational generating function recurrence template(有理生成函数递推模板):
本题的信号是:递推右边只含固定滞后项 ,系数 不依赖 。
分级提示
先写出
对右边两项分别移位:
你应得到一个形如
的代数方程。
分母 可以因式分解为 。
3. 大家之言 (Mathematician in Their Own Words)
语境。 Leonhard Euler 的 Observationes analyticae variae de combinationibus 于 1741 年 4 月 6 日提交给 St. Petersburg Academy,1751 年发表。今日核验使用 Euler Archive / University of the Pacific 的 E158 条目,以及 Jordan Bell 的英译本 Various analytic observations on combinations。这里引用的是英译文本;原文为 Latin,本期不重构未核验的拉丁原句。
在论文末尾,Euler 写下了一个后来成为 Euler pentagonal number theorem(Euler 五边形数定理)的观察。他没有把观察伪装成已完成证明,而是先标明证明边界:
“At the end of this paper there is a noteworthy observation to make, which however I have not yet been able to demonstrate with geometric rigor.”
中文译意:
“在本文末尾,还有一个值得注意的观察;不过我尚未能以几何式的严谨证明它。”
评论。 这句话的数学态度并不是“凭直觉相信模式”,而是把发现、计算、归纳和证明分开安放。紧接着,Euler 记录了乘积
展开后只在 generalized pentagonal numbers(广义五边形数)处出现非零系数、且符号成对交替的现象。用今天的话说,他已经抓住了分拆生成函数的倒数结构;严格证明后来可以由 Euler 自己和 Franklin 等人的组合论证补上。可贵处在于:生成函数允许人先看见一个大结构,同时又要求人清楚地区分“看见”与“证明”。学问之道,贵在不欺其所未证。
4. 反例与边界 (Counterexample & Boundary)
4.1 形式恒等式不能随意当作数值恒等式
在形式幂级数环中,
是完全正确的。检查如下:
逐系数看,常数项为 ;对每个 , 的系数是 。所以形式层没有问题。
但若把 当作实数并代入 ,右边变成
它发散;左边的有理表达式则给出
矛盾不是恒等式错了,而是我们越过了类型边界:形式恒等式允许系数运算;解析恒等式还需要收敛区域。事实上,几何级数作为复函数的展开只在 ,即 内成立。生成函数入门最常见的误用,正是把“形式上可逆”误读成“处处可代值”。
4.2 去掉初值,递推也不决定序列
上一节的定理还提醒我们:递推关系必须带上初始数据。只写
并不能唯一确定 。例如
和
都满足同一个递推。逐项检查第二个序列:对 ,
它与零序列不同,却同样满足递推。因此“递推式”只是无限约束的一部分;真正的枚举问题还需要边界条件、初值或其他归一化条件。生成函数中的分子 正是这些初值的记录。
5. 今日一问与数学地图 (Question & Map)
今日一问。 设 是非负序列,普通生成函数 为有理函数,。假设 在最小模长的零点 处有一个简单零点,并且没有其他零点满足 。为什么这会导致
对某个常数 成立?在这个论证中,哪一步已经不再是形式幂级数代数,而是真正使用了复分析?
一个方向提示:把 分解为 附近的主极点项加上一个在更大圆盘内解析的余项;主极点给出几何级数系数,余项的系数由更大的收敛半径控制。但请先想清楚:为何“最近的奇点”会支配系数?
地图。
从 roadmap 看,combinatorics.generating-functions 邻接 algebra.representation-characters:特征标表、cycle index 与 Pólya enumeration 都会把“对象分类”转化为生成函数。向概率与随机结构侧,multivariate generating functions(多变量生成函数)还能标记参数,并导向 limit laws(极限定律)。今天的关键不是掌握所有技巧,而是建立一个原则:先把计数对象编码正确,再决定是否需要解析地读出增长。
附录 A:习题完整解答 (Full Solution)
展开完整解答
可复用模板:常系数递推 有理生成函数 部分分式 系数抽取。
令
由 ,左边求和为
对递推式两边乘 并对 求和,得到
右边两项分别移位:
因为 ;并且
所以
移项得
即
设
则
比较常数项与 项:
解得 。因此
在形式幂级数中展开:
于是
所以
检查初值:,;并且正文第 4 节已经逐项验证该闭式满足递推。
资料与来源 (Sources)
- Herbert S. Wilf, generatingfunctionology, Internet Edition, University of Pennsylvania PDF. 本期用于普通生成函数、递推转有理函数、系数抽取与“离散/连续双声道”背景;引用页在本次运行中已打开核验。URL: https://www2.math.upenn.edu/~wilf/gfology2.pdf
- Philippe Flajolet and Robert Sedgewick, Analytic Combinatorics, official Princeton booksite and full PDF. 本期用于解析组合的 formal specification generating functions singularity/asymptotics 谱系。URL: https://ac.cs.princeton.edu/home/ ,PDF: https://ac.cs.princeton.edu/home/AC.pdf
- George E. Andrews, “Partitions”, chapter PDF. 本期用于 Euler、Naudé 问题、互异分拆生成函数、 与五边形数定理的历史谱系。URL: https://personal.science.psu.edu/lxv1/alg/antheory/preprint/andrews/chapter.pdf
- Euler Archive / University of the Pacific Scholarly Commons, E158, Leonhard Euler, Observationes analyticae variae de combinationibus. 本期用于核验题名、Eneström 编号、原文语言、提交/发表信息与 Euler 分拆论文来源。URL: https://scholarlycommons.pacific.edu/euler-works/158
- Leonhard Euler, Various analytic observations on combinations, translated from Latin by Jordan Bell, arXiv:0711.3656. 本期 Section 3 的英译引文来自该 PDF;原文为 Latin,本期只引用已核验英译句子并给出中文译意。URL: https://arxiv.org/pdf/0711.3656