A Day With: Mathematics
闲话:
最近看 npesta 看的有点多,于是标题起的这个。
为什么一个非 GD 人会这么关注 GD 啊。
被 Limbo 震撼到了,尤其是最后的钥匙段,我一直盯着钥匙看了十几次也没看成功一次,GD 人太可怕。
决定在我还有一定理智的时候把我一直没看明白的东西写下来。
虽然还是不理解吧。
我是萌新,不要 D 我 qwq
拉格朗日反演
我们记 \(F(G(x)) = x\) 的两个多项式 \(F(x)\) 与 \(G(x)\) 为复合逆。
首先有一个性质:若 \(F(G(x)) = x\),那么 \(G(F(x)) = x\)。
我问 jjdw 这东西咋证明的,我忘了当时 jjdw 有没有给我证明了,反正我不会证。
拉格朗日反演:如果 \(F(x)\) 与 \(G(x)\) 互为复合逆,且 \(F(x)\) 和 \(G(x)\) 常数项为 \(0\),一次项系数不为 \(0\),那么:
证明看不懂,咕了。
还有个扩展拉格朗日反演:
另类形式:
卡特兰数
众所周知卡特兰数生成函数 \(C(x)=xC(x)^2 + 1\)。我们尝试凑 \(x\),首先把常数项去掉,那么设 \(F(x)=C(x) - 1\),那么就有 \(F(x) = x(F(x) + 1) ^ 2\),\(\frac{F(x)}{(F(x)+1)^2}=x\),那么 \(G(x)=\frac{x}{(x+1)^2}\)。
根据拉格朗日反演,\([x^n]F(x)=\frac{1}{n}[x^{n-1}](x+1)^{2n}=\frac{1}{n}\binom{2n}{n-1}=\frac{1}{n+1}\binom{2n}{n}\)。
大朋友和多叉树
求有 \(n\) 个叶子的无标号有根树的数量,满足非叶子节点的度数属于集合 \(A\),儿子有顺序。
考虑直接写出答案的生成函数:\(F(x)=\sum_{i \in A} F(x)^i + x\),\(F(x)\) 没有常数项,那么可以直接凑出 \(F(x) - \sum_{i \in A} F(x)^i = x\),那么 \(G(x) = x - \sum_{i\in A}x^i\)。
根据拉格朗日反演,\([x^n]F(x)=\frac{1}{n}[x^{n-1}]\left(\frac{x}{G(x)}\right)^n\),多项式求逆加多项式快速幂即可。
[ABC222H] Beautiful Binary Tree
理性偷税。
首先不难转化题意为求满足相邻两个点的数不全为 \(0\),且根节点为 \(1\) 的二叉树数量。
我们设 \(f_{0/1,n}\) 为根节点为 \(0/1\) 的 \(n\) 个节点的二叉树的数量,那么有:
写成生成函数:
直接把 \(F_0(x)\) 代进去:
然后找复合逆:
那么就可以直接套拉格朗日反演了:
复杂度 \(O(n)\)。
好了知道了 joke 你可以不用说了。
概率生成函数
不知道有没有用,反正我是闲的。
定义
定义一个非负整数随机变量 \(X\) 的概率生成函数 \(F_X(x)\) 为 \(F_X(x)=\sum_{i\ge 0} P(X=i) x^i\)。
首先众所周知 \(\sum_{i\ge 0} P(X=i) = 1\),那么也就是说 \(F_X(1)=1\)。
期望值
那么就是说,期望值就是生成函数的导数。
根据这个我们还可以推出另一个结论:\(E(X^{\underline{k}})=F^{(k)}_ X(1)\)。
方差
这给我们提供了一种不需要求概率就能计算期望或方差的方法。
卷积
没啥意思,就 \(F_{X+Y}(x) = F_X(x) F_Y(x)\),原因显然。
[CTSC2006]歌唱王国
题意:给定一个长为 \(n\) 的序列 \(A\),有一个序列 \(B\),初始为空,每次随机添加一个 \([1,m]\) 的数,当 \(B\) 中出现 \(A\) 序列时停止,问期望多少步结束?
我们设 \(f_i\) 为在第 \(i\) 步结束的概率,其概率生成函数为 \(F(x)\);
令 \(g_i\) 为第 \(i\) 步时还没结束的概率,其普通生成函数为 \(G(x)\)。
首先,我们考虑给仍未结束的序列加入单独的一个数,那么必然有 \(f_i + g_i = g_{i - 1}\),并且 \(f_0 = 0, g_0 = 1\),于是可以得到生成函数的关系 \(F(x) + G(x) = 1 + xG(x)\)。
两边求导,得到 \(F'(x) + G'(x) = G(x) + xG'(x)\)。
我们要求的期望值就是 \(F'(1)\),于是代入 \(x=1\),得到 \(F'(1) = G(1)\),那么我们想办法求 \(G(1)\)。
考虑给仍未结束的序列加入整个 \(A\) 序列。那么加入完成之后一定会结束,但是有可能提前结束,因为可能加入的一段前缀是 border,正好提前组成了 \(A\) 序列。那么可以写出以下式子:
\(a_i\) 表示长度为 \(i\) 的前缀是否为 border。
那么我们代入 \(x=1\),就有 \(G(1) m^{-n} = \sum_{i=1}^n a_i m^{i-n}\),即 \(G(1) = \sum_{i=1}^n a_i m^i\)。
那么期望值就是 \(G(1) = \sum_{i=1}^n a_i m^i\)。
magic.
还有几个例题咕了。
感觉概率生成函数能解决的问题都和无穷过程求结束时间的期望值,所以这些题能不能用鞅与停时定理来做?
待考察。
好了今天的理智值用光了,大家再见。