Live2D

Note -「Lagrange 反演」记笔习学

  也许施工完成啦?


  对于常数项为 0,一次项非 0 的多项式 F,G,定义复合运算 ,满足

(FG)(x)=F(G(x))=i0giFi(x).

对于域 F,令 SF[[x]] 中所有满足上述条件的多项式构成的集合。对于任意多项式 FS,我们存在一种暴力构造方法唯一确定 G 使得 FG=x,因而 S 上可逆。继而不难说明,(S,) 构成群,即多项式复合群

  注意在群意义下,满足 FG=xF,G 应当互为逆元,因而有一个小结论

FG=xGF=x.

此时,也称 F,G 互为复合逆


  Lagrange 反演指出,对于 F,GS,满足 FG=x 时,有

[xn]G(x)=1n[x1]Fn(x).

  其中涉及比较诡异的 "[x1]"。事实上,这些运算是在分式域下进行的。在分式域 F(x) 下,任意非零整式 F(x) 存在乘法逆。因为我们总能找到 F[[x]] 下的可逆整式 G(x)=F(x)/xk,那么此时 F1(x)=xkG1(x)

  接下来尝试证明反演公式。先证明引理:对于 kZ,FS,有

[x1]F(x)Fk(x)=[k=1].

  • k1F(x)Fk(x)=(Fk+1(x)k+1)。根据上文科普,这一结果为整式,因而 [x1]=0
  • k=1[x1]F(x)F1(x)=[x0]F(x)(F(x)/x)1,根据 FS 这一性质可知 F(x)/x 在整式下可逆。观察发现 [x0]F(x)=[x0](F(x)/x)=[x1]F(x),因而 [x1]F(x)F1(x)=1

  接下来进行原命题证明。已知

(FG)(x)=i1fiGi(x)=x.

两边求导,

i1ifiGi1(x)G(x)=1.

靠向证明目标,两边(在分式域下)除以 Gn(x) 并取 [x1]

[x1]i1ifiGi1nG(x)=[x1]Gn(x).

对左侧运用引理,当且仅当 i=n[x1]Gi1nG(x)=10,因而

nfn=[x1]Gn(x){[xn]F(x)=1n[x1]Gn(x)[xn]G(x)=1n[x1]Fn(x).    

  作为整式爱好者,可以将这一结论变为

[xn]G(x)=1n[xn1](F(x)/x)n.

其中 F(x)/x 整式下可逆,规避了分式域。


  扩展 Lagrange 反演:对于满足 FG=xF,GS 以及任意多项式 H(x),有

[xn](HG)(x)=1n[x1]H(x)Fn(x).

证明依葫芦画瓢叭,首先有

GF=xH(GF)=(HG)F=H.

展开求导,

i1i[xi](HG)(x)Fi1(x)F(x)=H(x).

除以 Fn(x) 并取 [x1],顺带用引理,

n[xn](HG)(x)=[x1]H(x)Fn(x)[xn](HG)(x)=1n[x1]H(x)Fn(x).    

  当然也有好看 ver:

[xn](HG)(x)=1n[xn1]H(x)(F(x)/x)n.

(好像啥也没多干啊。)


  喜闻乐见的例题时间。

 

  一定要看样例解释捏。(

  令 G(x) 为答案的 GF,F(x)=ixdi,显然

G(x)=x+F(G(x))G(x)F(G(x))=x.

H(x)=xF(x),Lagrange 反演得

[xn]G(x)=1n[xn1](H(x)/x)n.

正巧 [x0](H(x)/x)=1,规规整整多项式快速幂。复杂度 O(nlogn)

 

  由于状态间的转移概率很方便刻画,但是结束状态反而难以表达,所以可以想到把期望轮数转化成:非法状态出现概率 × 此时进行一次有效转移的期望轮数。后者仅与已有卡牌数量有关,故我们只需要求出前者,即确定已有卡牌数量情况下的非法状态数量。

  不同的连续段的计数是独立的。单独考虑长度为 n 的一个连续段,在其上构造非法状态的方法可描述为:任意获得连续的 t[0,k) 张卡牌,然后强制跳过一张卡牌。用对象 x 描述考虑过的卡牌数量,对象 y 表示跳过的卡牌数量。那么对于“连续获得卡牌”,其 GF 为

P(x)=xxk+11x.

继而,上述构造方法所描述情景的 GF 为

F(x,y)=i0Pi(x)yi=11P(x)y.

  构造完成后,必然考虑过 n+1 张卡牌。(第 n 张之后又“强制跳过”一张。)所以,在长度为 n 的连续段上不选 m 张卡牌,使得连续段不合法的方案数为

[xn+1ym+1]F(x,y).

F 并不好求,我们需要继续推导。

  注意到 (1xy)1 对应的序列是平凡的,我们令 H(x,y)=(1xy)1,那么 F(x,y)=H(P(x),y)。尝试对这一二元复合函数施加扩展 Lagrange 反演。令 Q(x)P(x) 的复合逆,那么

[xn+1]F(x,y)=1n+1[xn]y(1xy)2(Q(x)/x)n1.

求导出来一个 (1xy)2,不过我们只取 [xn+1] 这一项,所以也很容易提取对应的 y 的系数。接下来就只需要求出 (Q(x)/x)n1

  根据假设,

Q(x)Qk+1(x)1Q(x)=xx(x+1)Q(x)+Qk+1(x)=0.

直接牛迭得到:

Q2n(x)=Qn(x)+x(x+1)Qn(x)+Qnk+1(x)x+1(k+1)Qnk(x).

虽然一看常数就巨大但起码能求。

  最后,设第 i 个连续段关于 y 的 GF 为 Ri(y)=[xni+1]Fi(x,y),则答案为

i=1m(mi)1mi[yi]jRj(y)/y.

其中 R(y)/y 亦是处理最后一个虚假的“强制跳过”。瓶颈在于计算最后一项多项式卷积,复杂度 O(mlog2m),但我猜最慢的地方还是求 Q(x)

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