拉格朗日反演学习笔记
死前学一下。
基本形式与证明
两个形式:拉格朗日隐函数定理与拉格朗日反演公式
拉格朗日隐函数定理-LIFT:许多组合问题中的生成函数 \(F\) 满足某种自递推的关系 \(G\),此时可以应用该定理。
给定形式幂级数 \(G\),存在唯一的 \(F\) 使得 \(F = zG(F)\)。这样的 \(F\) 满足:
其中 \(n\in\mathbb{Z^+}\)。它的一个扩展形式是:
拉格朗日反演公式:简单来说是一种求算复合逆的工具。
假设 \(G\) 存在复合逆(当且仅当 \([z^0]G = 0\land[z^1]G\neq 0\)),则对于 \(G\) 的复合逆 \(F\),有:
即令 \(R = \frac{z}{G}\) 时,\(F = zR(F)\)。所以由 LIFT 可得:
一般把它写成 \(n[z^n]F = [z^{-1}]G^{-n}\)。它同样具有类似的扩展形式:
A. 代数推导
注意拉格朗日反演公式和拉格朗日隐函数定理实际上是等价的(包括扩展形式),只需要简单地将一个中的 \(G_1\) 用另一个中的 \(\frac{z}{G_2}\) 代换即可,因此证明时也只需证明一个。(扩展)拉格朗日反演公式的代数证明比较简单,下面给出:
引理:对于有复合逆的幂级数 \(F\),\([z^{-1}]F'F^k = [k=-1]\)。
当 \(k \neq -1\) 时 \(F'F^k = (\frac{1}{k+1}F^{k+1})'\),而任意幂级数求导不产生 \(-1\) 次项。
当 \(k=-1\) 时 \([z^{-1}]F'F^{-1} = [z^{0}]\frac{F'}{F/z} = 1\)。
不妨考虑扩展形式中 \(H(z) = z^k(k\neq 0)\) 时的情形,其他幂级数作为其线性组合容易一并导出。即要证 \(n[z^{n}]F^k = [z^{-1}]kz^{k-1}G^{-n} = k[z^{-k}]G^{-n}\),下证:
\[\begin{aligned} k[z^{-k}]G^{-n} &= [z^{-1}]G^{-n}(kz^{k-1}) = [z^{-1}]G^{-n}(F(G)^k)'\\ &= [z^{-1}]\sum_{i}G'G^{i-n}\cdot([z^i](F^k)')\\ &= [z^{-1}]\sum_{i\neq 0}G'G^{i-1-n}\cdot(i[z^i]F^k)\\ &= n[z^n]F^k\\ \end{aligned} \]证毕。
B. 组合意义
这里证明的是拉格朗日隐函数定理,这背后的深刻原因是因为 xyix 只写了这个。
将涉及到的函数视为 EGF。根据 \(F = zG(F)\) 可以这样构造:如果某节点 \(u\) 的度数(即直接子节点数)为 \(t\),则令其权值 \(w(u) = [\frac{z^t}{t!}]G\),而令一棵树的权值为所有节点权值的乘积,那么所有树的生成函数为 \(F\)。接下来指定根节点 \(0\),使 \(0\) 的权重是 \([\frac{z^t}{t!}]H\),其中 \(t\) 仍然表示度数;\(0\) 下面的子树按照上述方法计算权重。则左式 \([z^n]H(F)\) 就是所有大小为 \(n+1\) 的这样的树的权值和。计数这样的树,可以采用 Prufer 序列。假设其中有 \(m_i\) 个度数为 \(i\) 的非 \(0\) 点,\(0\) 的度数为 \(k\) ,这样的树有
\[\frac{(n-1)!}{(k-1)!\prod_i m_i!}\binom{n}{m_1,m_2,\dots} \]注意到并不需要枚举有根树 Prufer 序列的最后一位,因为根已经确定为 \(0\)。
右式可以改写为 \(\frac{1}{n}[z^n](zH')G^n\)。忽略掉前面的 \(\frac{1}{n}\),它的组合意义比较简单,它是一个长度为 \(n\),值域为 \([0, n]\) 的序列,其中 \(0\) 的出现次数为 \(t\) 时权值为 \(t[z^t]H\),其他元素则为 \([z^t]G\)。和上面同样,假设其中有 \(m_i\) 个 \(i\) 和 \(k\) 个 \(0\),这样的序列有
\[\frac{n!}{k!\prod_i m_i!}\binom{n}{m_1,m_2,\dots} \]这么多。注意到当枚举的 \(k\) 和 \(m\) 序列均相同时,右式对应的序列的权值恰好是左式对应树的 \(k\) 倍,比较两式,并对所有可能的 \(k\) 和 \(m\) 序列求和即得证。
应用
考虑到我刚学会还是咕一会。