首页 > 其他分享 >二项式反演学习笔记

二项式反演学习笔记

时间:2024-01-20 13:58:15浏览次数:34  
标签:aligned sum 笔记 ng 反演 binom 二项式

前置知识

二项式定理:\((a+b)^n=\sum_{i=0}^n\binom{n}{i}a^ib^{n-i}\)。

二项式反演

反演公式1:

\[f(n) = \sum_{i=0}^n\binom{n}{i}g(i) \iff g(n)=\sum_{i=0}^n(-1)^{n-i}\binom{n}{i}f(i) \]

证明:

\[\begin{aligned} \sum_{i=0}^n(-1)^{n-i}\binom{n}{i}f(i) &= \sum_{i=0}^n(-1)^{n-i}\binom{n}{i}\sum_{j=0}^i\binom{i}{j}g(j)\\ &= \sum_{j=0}^ng(j)\sum_{i=j}^n(-1)^{n-i}\binom{n}{i}\binom{i}{j}\\ \end{aligned} \]

然后我们需要应用到组合数的一个结论:

\[\binom{n}{i}\binom{i}{j}=\binom{n}{j}\binom{n - j}{i - j} \]

尝试用组合意义理解:我们要在 \(n\) 个数中选一个 \(i\) 元子集 \(A\),再选一个属于 \(A\) 的 \(j\) 元子集 \(B\),左边就是先选 \(A\) 再选 \(B\),右边是先选 \(B\) 再选 \(A\),所以两者相等。

所以:

\[\begin{aligned} \sum_{j=0}^ng(j)\sum_{i=j}^n(-1)^{n-i}\binom{n}{i}\binom{i}{j} &=\sum_{j=0}^ng(j)\sum_{i=j}^n(-1)^{n-i}\binom{n}{j}\binom{n-j}{i-j}\\ &=\sum_{j=0}^ng(j)\binom{n}{j}\sum_{i=j}^n(-1)^{n-i}\binom{n-j}{i-j}\\ &=\sum_{j=0}^ng(j)\binom{n}{j}\sum_{i=0}^{n-j}(-1)^{n-(i+j)}\binom{n-j}{(i+j)-j}\\ &=\sum_{j=0}^ng(j)\binom{n}{j}\sum_{i=0}^{n-j}(-1)^{(n-j)-i}\binom{n-j}{i}\\ &=\sum_{j=0}^ng(j)\binom{n}{j}(1-1)^{n-j}\\ &=g(n) \end{aligned} \]

得证。

反演公式2:

\[f(n)=\sum_{i=0}^n\binom{n}{i}(-1)^{i}g(n) \iff g(n)=\sum_{i=0}^n\binom{n}{i}(-1)^{i}f(n) \]

反演公式3:

\[f(k)=\sum_{i=k}^n\binom{i}{k}g(i) \iff g(k)=\sum_{i=k}^n(-1)^{i - k}\binom{i}{k}f(i) \]

应用

关键:要求 \(g(n)\),尝试找到 \(f(n) = \sum_{i=0}^n\binom{n}{i}g(i)\) 且 \(f(n)\) 便于计算,然后用反演求出 \(g(n)\)。

题目1: 求错排数。

思路:

这个经典问题可以用二项式反演来做。

我们让 \(f_n=n!\),\(D_n\) 表示错排数。

则会有:

\[f_n=\sum_{i=0}^n\binom{n}{i}D_i \]

还是组合意义来理解,每个排列都有若干个位置满足 \(p_i=i\),我们先枚举有多少个位置,再枚举哪些位置,剩下的必然是错排了。

于是我们可以直接二项式反演:

\[\begin{aligned} D_n &=\sum_{i=0}^n(-1)^{n-i}\binom{n}{i}f_i\\ &=\sum_{i=0}^n(-1)^{n-i}\frac{n!}{i!(n-i)!}i!\\ &=\sum_{i=0}^n(-1)^{n-i}\frac{n!}{(n-i)!}\\ &=n!\sum_{i=0}^n\frac{(-1)^{n-i}}{(n-i)!}\\ &=n!\sum_{i=0}^n\frac{(-1)^{i}}{i!}\\ \end{aligned} \]

题目2: 有 \(n\) 个格子排成一行,需要用 \(k\) 种颜色染色,要求两两不同色且每种颜色至少出现一次。求方案数。

思路:

我们设 \(f_k\) 表示用 \(k\) 种颜色染色两两不同色,但是不要求每种颜色至少出现一次。

再设 \(g_k\) 表示表示用 \(k\) 种颜色染色两两不同色,要求每种颜色至少出现一次。

于是我们有:

\[f_k=\sum_{i=0}^k \binom{k}{i}g_i \]

如何理解?首先对于任何一种染色方案,我们必然是选取了 \(k\) 颜色的一个子集去染,枚举选了哪些子集即可。

至于 \(f_k\),这其实是 HNOI越狱 这题,我们可以知道 \(f_k=k(k-1)^{n-1}\),于是:

\[g_k=\sum_{i=0}^k(-1)^{k-i}\binom{k}{i}i(i-1)^{n-1} \]

然后就做完了。

题目3: 求第二类斯特林数。

思路:

首先假设盒子有区别。

同理,\(f_k\) 表示盒子可以为空,\(g_k\) 表示盒子不能为空,可以得到:

\[f_k = \sum_{i=0}^k\binom{k}{i}g_i \]

又由于 \(f_k = k^m\),所以反演一下就能得到答案。

标签:aligned,sum,笔记,ng,反演,binom,二项式
From: https://www.cnblogs.com/rlc202204/p/17976385

相关文章

  • 积性函数学习笔记
    积性函数定义积性函数:\(f(x)\)满足\(\forall\gcd(a,b)=1,f(ab)=f(a)f(b)\)若没有\(\gcd(a,b)=1\)的性质,则为完全积性函数。性质性质1:\(f(x),g(x)\)是积性函数\(\implies\)\(f\timesg\)是积性函数,\(f\divg\)是积性函数证明略。性质2:狄利克雷(Dirichlet)卷积\(......
  • 欧拉定理学习笔记
    费马小定理\(a,p\in\mathbb{Z_+}\),\(p\)为质数,\(\gcd(a,p)=1\)。定理:\(a^{p-1}\equiv1\pmodp\)。证明:考虑下面两个整数集合:\[A=\{x\in\mathbb{Z_+}|1\lex<p\}\]\[B=\{y\in\mathbb{Z_+}|y=ax,x\inA\}\]\(A\)中很明显每个数对\(p\)取余各不相同......
  • 莫比乌斯反演学习笔记
    前置知识狄利克雷卷积:\(f*g=\sum_{d|n}f(d)g(\frac{n}{d})\)。积性函数,线性筛。数论分块。单位函数:\(\varepsilon(n)=[n=1]\)。(积性函数)常数函数:\(1(n)=1\)。(积性函数)莫比乌斯函数引理1:\(f(n)\)是积性函数等价于\(g(n)=\sum_{d|n}f(d)\)是积性函数。证明:显然,\(g=......
  • 容斥学习笔记
    目录容斥原理Min-Max容斥广义容斥原理容斥原理原理:\[|\bigcup_{i=1}^nA_i|=\sum_{j=1}^n(-1)^{j-1}\sum_{a_k\not=a_{k+1}}\bigcap_{l=1}^mA_{a_i}\]这东西学过小学奥数就会了。一些有用的结论:\[|\bigcap_{i=1}^nA_i|=|\Omega|-|\bigcup_{i=1}^n\overline{A_i......
  • 杜教筛学习笔记
    原理前置知识:积性函数,狄利克雷卷积。杜教筛可以在亚线性的时间内算出某些函数的前缀和。假设我们要算出函数\(f\)的前缀和,我们要找到函数\(g\),记\(f*g=h\)。杜教筛的前提是\(g\)的前缀和与\(h\)的前缀和都可以快速计算,我们可以快速计算\(f\)的前缀和。首先,我们考......
  • 【学习笔记】主成分分析
    现在有\(m\)个\(n\)维的数据,想把它们降到\(k\)维,得到一个\(m\timesk\)的矩阵,但是不能损失数据之间的关联性和差异性。那么不难发现这肯定是让矩阵右乘一个大小为\(n\timesk\)的矩阵,进行一个线性空间的映射。做法是构造一个\(n\)维数据的协方差矩阵(矩阵的行列表示......
  • 人工智能第三版 第一章笔记
    人工智能第三版第一章人工智能概述主要内容:基本概念,应用领域、近期的历史和未来的前景1.图灵测试艾伦·图灵(AlanTuring)寻求可操作的方式来回答智能的问题,他想把功能(functionality,即智能能做的事情)与实现(implementation,即如何实现智能)分离开来。模拟游戏:询问者在有帘子的......
  • 图论练习笔记
    P1606[USACO07FEB]LilypadPondG首先跳的过程肯定不会经过相同位置,所以之前经过的位置可以视为原状态,所以可以把添加的莲花数量视为当前路径长度,问题也就转化成了最短路计数。因为求的是添加莲花的方案数而不是经过路径的方案数,所以可以把已有的莲花连通块缩起来,以水格子为状......
  • 1/19 学习进度笔记
    1.Cache和Checkpoint区别Cache是轻量化保存RDD数据,可存储在内存和硬盘,是分散存储,设计上数据是不安全的(保留RDD血缘关系)CheckPoint是重量级保存RDD数据,是集中存储,只能存储在硬盘(HDFS)上,设计上是安全的(不保留RDD血缘关系)2.Cache和CheckPoint的性能对比?Cache性能更好,因为......
  • 2024/1/19 算法笔记
    题目1:最大公约数的延伸问题P1414又是毕业季II-洛谷|计算机科学教育新生态(luogu.com.cn)题目上提及了最大公约数,但是解答却没有直接使用最大公约数doge题目意思是给定n个数,再给定一个k,往这n个数中取k个,求这k个数的最大公约数是多少?然后题目的要求是k的取值为1到n全部取......