前言
符号约定:
- \(C_n^m\)表示在\(n\)个元素中选择\(m\)个,而不是在\(m\)个元素中选择\(n\)个。
简介
一个二项式反演就是一个简单的推导。
\[若有f(n)=\sum_{i=0}^n C_n^i g(i)\\
则有g(n)=\sum_{i=0}^n (-1)^{n-i} C_n^i f(i)
\]
来一个简单的证明吧:
\[\begin{aligned}
右式 & = \sum\limits_{i=0}^n (-1)^{n-i} C_n^i f(i)\\
& = \sum\limits_{i=0}^n (-1)^{n-i} C_n^i \sum\limits_{j=0}^i C_i^j g(j)\\
& = \sum\limits_{i=0}^n \sum\limits_{j=0}^i (-1)^{n-i} C_n^i C_i^j g(j)\\
& = \sum\limits_{j=0}^n \sum\limits_{i=j}^n (-1)^{n-i} C_n^i C_i^j g(j)
\end{aligned}
\]
因为组合数的性质:
\[C_i^j \times C_j^k=C_i^k \times C_{i-k}^{j-k}
\]
有
\[\begin{aligned}
右式 & = \sum\limits_{j=0}^n \sum\limits_{i=j}^n (-1)^{n-i} C_n^j C_{n-j}^{i-j} g(j)\\
& = \sum\limits_{j=0}^n \sum\limits_{i=0}^{n-j} (-1)^{n-i-j} C_n^j C_{n-j}^i g(j)\\
\end{aligned}
\]
可以发现,存在
\[\sum\limits_{i=0}^{n-j} (-1)^{n-i-j} C_{n-j}^i=(1-1)^{n-j}
\]
那么
\[\begin{aligned}
右式 & = \sum\limits_{j=0}^n (1-1)^{n-j} g(j)
\end{aligned}
\]
因为当\(n-j \neq 0\)的时候,是右边绝对是\(0\),因此只有\(n=j\)的时候有贡献,又因为存在:
\[\sum\limits_{i=0}^n (-1)^{n-i} C_n^i=1
\]
因此
\[右式=g(n)=左式
\]
(突然发现这证明还是很长的)
例题
LUOGU-P5505 [JSOI2011]分特产
题意就不说了,数据范围也不说了。
首先可以发现,恰好全部人都能分到特产是非常难算的。那么就转化问题。
首先设两个函数
\[\begin{aligned}
& f(i)表示恰好有i个人没有得到特产,其余人得到特产\\
& g(i)表示钦定了i个人没有得到特产,其他人随意
\end{aligned}
\]
那么可以得到:
\[g(i)=\sum\limits_{j=i}^n C_i^j f(j)\Longleftrightarrow f(i)=\sum\limits_{j=i}^n (-1)^{j-i}C_i^jg(j)
\]
而最终的答案显然是\(f(0)\)。
接下来就是求出\(g(i)\),因为已经钦定了\(i\)个人,那么剩下人只需要用插板法随意分配就好了。
\[g(i)=\prod\limits_{j=0}^m C_{a_j+i-1}^{i-1}
\]
可以发现,二项式定理可以用于解决一些有"恰好\(k\)个","刚好\(k\)个"的计数问题。将"恰好"转化为"钦定",通常可以是问题更简单。
LUOGU-P4859 已经没有什么好害怕的了
题意就不说了,数据范围也不说了。
首先,转化一下题目说法,可以发现,药片比糖果能量大的组有\(m=\frac{n+k}{2}\)个。
接着继续设两个函数:
\[\begin{aligned}
f(i)& 表示恰好m组是药片比糖果能量大的,剩余是药片比糖果能量大的。\\
g(i)& 表示钦定m组是药片比糖果能量大的,剩余随意
\end{aligned}
\]
可以发现:
\[g(i)=\sum\limits_{j=i}^n C_i^j f(j)\Longleftrightarrow f(i)=\sum\limits_{j=i}^n (-1)^{j-i}C_i^jg(j)
\]
答案显然为\(f(k)\)。接下来求解\(g(i)\)。
设\(lim_i\)表示比\(a_i\)小的\(b_j\)个数,那么可以得到:
\[f(i,j)=f(i-1, j) + f(i-1, j-1) * \left[r_i - (j - 1)\right]
\]
而\(g(i)\)显然就是\(f(n,i)\times (n-i)!\)。