二项式反演

公式

公式 1

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

证明:

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

\(\binom{n}{i}\) 乘进去:

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

容易发现 \(\binom{n}{i} \binom{i}{j} = \binom{n}{j} \binom{n - j}{i - j}\) :

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

\(k = i - j\) :

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

又由二项式定理, \((1 - 1)^x = \sum_{i = 0}^x \binom{x}{i} (-1)^i 1^{x - i}\) :

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

\(\mathcal{Q.\ E.\ D.}\)

模型

"钦定"类问题

至少 \(\Leftrightarrow\) 恰好

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

其中 \(f(x)\) 为至少 \(x\) 个限制的方案数, \(g(x)\) 为恰好 \(x\) 个限制的方案数.

至多 \(\Leftrightarrow\) 恰好

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

在"钦定"意义下, "至多满足 \(x\) 个限制" \(\Leftrightarrow\) "至少不满足 \(n - x\) 个限制"

posted @   Steven1013  阅读(4)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示