反演与容斥 学习笔记

反演与容斥 学习笔记

二项式反演

函数 f,g,有以下结论:

fk=i=0k(ki)gigk=i=0k(1)ki(ki)fi

证明:

考虑右式

i=0k(1)ki(ki)fi=i=0k(1)ki(ki)j=0i(ij)gj=j=0kgji=jk(1)ki(ki)(ij)=j=0kgji=jk(1)ki(kj)(kjij)=j=0kgj(kj)i=jk(1)ki(kjij)=j=0kgj(kj)i=0kj(1)kij(kji)(11)k=i=0k(1)ki(ki)=j=0kgj(kj)(11)kj

kj 时,这一项是 0,当 k=j 时,得到:

gk(kk)=gk

证毕。

类似的,有推论:

推论 1

fk=i=kn(ik)gigk=i=kn(1)ik(ik)fi

推论 2

fk=i=0k(1)i(ki)gigk=i=0k(1)i(ki)fi

证明类似。

广义容斥原理

现在有一些物品,每个物品有若干性质,把拥有第 i 个性质的物品的集合设为 Ai,一共有 n 个性质,设全集为 Ω

则在这些物品种选取出若干物品,使得至少有 k 个不同性质的方案数为:αk

则有:

αk=T{1,2,...,n},|T|=k|iTAi|

但是我们发现,对于一个拥有 t 个性质的物品,它被 αk 统计了 (tk) 次。

βk 为恰好有 k 个不同性质的方案数,因此有:

βk=αki=k+1n(ik)βiαk=i=kn(ik)βi

根据二项式反演推论 1,我们立即得到:

βk=i=kn(1)ikαi

这被称作广义容斥原理,容斥原理可以代入 k=0 立即得到。

欧拉函数

欧拉反演

n=d|nφ(d)

证明:

考虑一组分数: 1n,2n,3n,...,nn,化简分数之后得到一组形如:ad 的最简分数,其中 (a,d)=1,所以对于一个固定的 d,一共有 φ(d)a,又因为分数化简的性质,d|n,所以分数的个数就是 d|nφ(d)=n

证毕。

莫比乌斯函数

莫比乌斯函数性质

[n=1]=d|nμ(d)

证明:

考虑算术基本定理的形式: n=piαi,m=pi,因为莫比乌斯函数在有平方因子的时候是 0,所以上式可以等价地写成:

d|mμ(d)

m 的每个因子相当于在 {p1,p2,...,pk} 中任选几个数乘起来。

所以得到:

d|mμ(d)=i=0k(ki)(1)i=(11)k

所以在 k=0n=1 时式子取 1,否则式子取 0

证毕。

莫比乌斯反演

f(n)=d|ng(d)g(n)=d|nμ(d)f(nd)

证明,大体思路与二项式反演相同,代入后化简:

d|nμ(d)f(nd)=d|nμ(d)i|ndg(i)=j|nμ(j)i|njg(i)=i|ng(i)j|niμ(j)=i|ng(i)[ni=1]=i|ng(i)[i=n]=g(n)

证毕。

参考资料

  1. 『容斥原理和广义容斥原理』 - Parsnip

  2. 莫比乌斯反演 - OI wiki

posted @   MoyouSayuki  阅读(23)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
:name :name
点击右上角即可分享
微信分享提示