二元生成函数
二元生成函数(bivariate generating function)用两个形式变量同时记录组合对象的两种参数。一个变量常记录大小,另一个标记某项统计量。保留第二个变量既能数出每种统计值的对象,也能通过代入和微分提取总数、均值与方差。
以二进制串为例,令 为长度 、含 个一的串数。长度三时,多项式是 :例如 对应 三个串。此时 只标记一的数量,并不代表某个串中数字一的概率。
两个系数指标
若每个大小 只有有限多个对象,定义普通二元生成函数 也可对 使用指数形式 ,但须明确归一化;“二元”只指两个变量,不规定是否带阶乘。[1]
对二进制串,每个位置选零贡献 ,选一贡献 。固定长度 的多项式为 ;对所有长度求和得 也可从追加字符推导:空串贡献一,非空串由旧串追加零或一唯一产生,所以 ,移项得同一式。展开 ,便得 ;范围外 或 的系数为零。
代入与微分提取统计量
设 。代入 得总数 。在大小 的所有对象中均匀抽取,若总数非零,统计量 满足 证明只需逐项微分:,在一处给每个对象赋权 ;二阶微分则赋权 。因此 二阶导数直接给的是下降阶乘矩,不能误当作 。
例中 ,对 得 、、,所以均值为 ,方差为 。 可直接从 核对,也符合最后两个公式。长度三时总数八,统计加权和为 ,二次加权和为 ,于是均值 、方差 。
改变结构约束的变式
现在禁止相邻的一。长度 的合法串,若末尾是零,就来自任意长度 合法串;若末尾是一,倒数第二位必须为零,可唯一拆为一个长度 合法串再接 。于是 将递推乘 后对 相加,左边为 ,右边为 ,所以 长度三时 ,合法串是 。其中唯一含两个一的串为 ;总数五,均值 ,方差 。同样长度、不同约束,不能继续把系数当成二项式分布。
形式代入 要求每个固定大小的统计多项式可求和;本文的有限对象条件保证这一点。若允许同一大小下无限多统计值,代入可能不再是合法形式运算。把微分结果解释为概率还需给出抽样机制;均匀对象抽样与按非均匀权重抽样有不同分母,生成函数本身不会替读者决定概率模型。
参考资料
- ↑ Philippe Flajolet、Robert Sedgewick:Analytic Combinatorics,Princeton University 作者配套网站,第III章§III.1—III.2,第153—159页,标记、二元生成函数与概率分布。访问日期:2026-10-25。