A Day With: Mathematics

image

闲话:

最近看 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,那么:

[xn]F(x)=1n[xn1](xG(x))n

证明看不懂,咕了。

还有个扩展拉格朗日反演:

[xn]H(F(x))=1n[xn1]H(x)(xG(x))n

另类形式:

[xn]H(F(x))=[xn]H(x)G(x)(xG(x))n+1

卡特兰数

众所周知卡特兰数生成函数 C(x)=xC(x)2+1。我们尝试凑 x,首先把常数项去掉,那么设 F(x)=C(x)1,那么就有 F(x)=x(F(x)+1)2F(x)(F(x)+1)2=x,那么 G(x)=x(x+1)2

根据拉格朗日反演,[xn]F(x)=1n[xn1](x+1)2n=1n(2nn1)=1n+1(2nn)

大朋友和多叉树

求有 n 个叶子的无标号有根树的数量,满足非叶子节点的度数属于集合 A,儿子有顺序。

考虑直接写出答案的生成函数:F(x)=iAF(x)i+xF(x) 没有常数项,那么可以直接凑出 F(x)iAF(x)i=x,那么 G(x)=xiAxi

根据拉格朗日反演,[xn]F(x)=1n[xn1](xG(x))n,多项式求逆加多项式快速幂即可。

[ABC222H] Beautiful Binary Tree

理性偷税。

首先不难转化题意为求满足相邻两个点的数不全为 0,且根节点为 1 的二叉树数量。

我们设 f0/1,n 为根节点为 0/1n 个节点的二叉树的数量,那么有:

f0,n=2f1,n+i=0nf1,if1,ni,f0,1=0

f1,n=2(f0,n1+f1,n1)+i=0n1(f0,i+f1,i)(f0,n1i+f1,n1i),f1,1=1

写成生成函数:

F0(x)=2F1(x)+F1(x)2

F1(x)=x(1+2(F0(x)+F1(x))+(F0(x)+F1(x))2)=x(F0(x)+F1(x)+1)2

直接把 F0(x) 代进去:

F1(x)=x(F1(x)2+3F1(x)+1)2

然后找复合逆:

x=F1(x)(F1(x)2+3F1(x)+1)2

G(x)=x(x2+3x+1)2

那么就可以直接套拉格朗日反演了:

[xn]F1(x)=1n[xn1](x2+3x+1)2n=1ni=02n(2ni)[xn1]x2i(3x+1)2ni=1ni=02n(2ni)(2nin2i1)3n2i1

复杂度 O(n)

好了知道了 joke 你可以不用说了。

概率生成函数

不知道有没有用,反正我是闲的。

定义

定义一个非负整数随机变量 X 的概率生成函数 FX(x)FX(x)=i0P(X=i)xi

首先众所周知 i0P(X=i)=1,那么也就是说 FX(1)=1

期望值

E(X)=i0iP(X=i)=i0P(X=i)i1i1=FX(1)

那么就是说,期望值就是生成函数的导数。

根据这个我们还可以推出另一个结论:E(Xk)=FX(k)(1)

方差

D(X)=E(X2)E(X)2=E(X2)+E(X1)E(X)2=FX(1)+FX(1)FX(1)2

这给我们提供了一种不需要求概率就能计算期望或方差的方法。

卷积

没啥意思,就 FX+Y(x)=FX(x)FY(x),原因显然。

[CTSC2006]歌唱王国

题意:给定一个长为 n 的序列 A,有一个序列 B,初始为空,每次随机添加一个 [1,m] 的数,当 B 中出现 A 序列时停止,问期望多少步结束?

我们设 fi 为在第 i 步结束的概率,其概率生成函数F(x)

gi 为第 i 步时还没结束的概率,其普通生成函数G(x)

首先,我们考虑给仍未结束的序列加入单独的一个数,那么必然有 fi+gi=gi1,并且 f0=0,g0=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 序列。那么可以写出以下式子:

G(x)(1mx)n=i=1naiF(x)(1mx)ni

ai 表示长度为 i 的前缀是否为 border。

那么我们代入 x=1,就有 G(1)mn=i=1naimin,即 G(1)=i=1naimi

那么期望值就是 G(1)=i=1naimi

magic.

还有几个例题咕了。

感觉概率生成函数能解决的问题都和无穷过程求结束时间的期望值,所以这些题能不能用鞅与停时定理来做?

待考察。

好了今天的理智值用光了,大家再见。

posted @   APJifengc  阅读(172)  评论(6编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示