组合数学 Part1 | 基础部分

哦就是不知道往哪里放的就写这里(?)

组合数学基础:加法原理乘法原理。没有必要再介绍了。分类加法分步乘法


Lucas 定理

\(p\) 为质数,对于任意正整数 \(1\le m\le n\),有

\[\binom{n}{m}\equiv\binom{n\mod p}{m\mod p}\times\binom{n/p}{m/p}\pmod p \]

但是有的时候 \(p\) 不是质数,就需要

扩展 Lucas 定理

这个东西跟 Lucas 定理没什么关系。你需要会中国剩余定理。
设 $p=p_1^{c_1} p_2^{c_2}... p_k^{c_k} $,得出一个同余方程组

\[\begin{cases} \begin{aligned} \binom{n}{m}\equiv x_1\pmod {p_1^{c_1}}\\ \binom{n}{m}\equiv x_2\pmod {p_2^{c_2}}\\ ...\\ \binom{n}{m}\equiv x_k\pmod {p_k^{c_k}} \end{aligned} \end{cases} \]

因为 \(p_1^{c_1},p_2^{c_2},...,p_k^{c}\) 两两互质,这个方程组就可以用中国剩余定理去解。
接下来的问题就是求 \(x_i\),也就是 \(\binom{n}{m}\pmod {p_i^{c_i}}\)
然后就是把组合数拆开阶乘也拆开转换一下柿子就好了,具体看这篇%%%%%%%%%%%%%\偷感。


错排问题

起因是我在写某道绿,发现答案是用组合数乘上某个方案数,但是感觉这个方案数不是太好求,但是这不是绿吗!然后发现这是经典的错排问题。

求有多少种 \(1\)\(n\) 的排列 \(a\),满足序列恰好有 \(m\) 个位置 \(i\),使得 \(a_i = i\)

答案为 \(\binom{n}{m}D_m\),其中 \(D_m\) 为错位排列数,也就是 \(m\) 个元素每个都不在自己原来的位置上的方案数。

错排数怎么求呢?我们有递推式:

\[D_n=(n-1)\times(D_{n-1}+D_{n-2}) \]

往一个已经排好的 \(n-1\) 个元素的错位排列中加入一个新的元素,有两种选择:

  1. 占用某一个元素的位置,同时这个元素放到新元素的位置上。这种情况下的答案就是 \(D_{n-2}\)
  2. 占用某一个元素的位置,同时这个元素不放到新元素的位置上。这种情况下的答案是 \(D_{n-1}\)
    然后这个某一个元素又有 \(n-1\) 种选择,乘起来就好。具体是怎样推荐看看这篇文章 dalao 画图超形象%%%%%

二项式定理

高中数学基础知识:

\[(a+b)^n=\sum_{i=0}^n \binom{n}{i}a^ib^{n-i} \]

ABC399F 中亦有体现。

posted @ 2025-04-19 16:03  baiguifan  阅读(51)  评论(0)    收藏  举报