计数技术相关

组合数相关

  • 定义:\(C_n^k\)\(n\)有标号 物品中选择 \(k\) 个的方案数。

  • 公式:\(C_n^k = \frac{n!}{k!(n - k)!}\)(可 \(O(V)\) 时间复杂度求出 \(n, k \le V\) 的组合数)

  • 基本性质:

    • \(C_n^i = C_n^{n - i}\)

    • \(\sum_{i = 0}^n C_n^i = 2^n, \sum_{i = 0}^n {(-1)^n C_n^i} = 0\)

    • \(C_n^k = C_{n - 1}^{k - 1} \times \frac{n}{k}\)

  • \(\rm Pascal\) 恒等式:

    • \(C_n^k = C_{n - 1}^k + C_{n - 1}^{k - 1}\)

    • Proof: 通过代数推导肯定可以证明,但是组合意义是什么呢?稍微思考可以想到这个相当于枚举第 \(n\) 个物品选或不选。

    常用于 \(O(V^2)\) 递推求组合数。

  • 朱世杰恒等式:

    • \(\sum_{i = 0}^m {C_{n + i}^n} = C_{n + m + 1}^{n + 1}\)

    • Proof: 还是考虑组合意义上的证明,考虑有 \(n + m + 1\) 物品排成一排,枚举选择的物品的最后一个位置,然后在前面选 \(n\) 个物品的方案数。这等价于直接在物品中选择 \(n + 1\) 物品的方案数。

  • \(\rm Vandermonde\) 恒等式:

    • \(C_n^{a+b} = \sum_{i = 0}^n C_{n - i}^a \times C_i^b\)

    • Proof: 考虑组合意义,可以将物品分成 \(a, b\) 两堆,然后枚举 \(a\) 堆的个数,然后等价于两个堆合并取物品的个数。

第一类 Strling 数

第二类 Strling 数

posted @ 2025-07-17 12:23  Little_corn  阅读(23)  评论(0)    收藏  举报