Lucas,鸽巢与错排

Lucas定理

定理公式

\(p\) 为素数时:

\[\binom{n}{m}\equiv\binom{n\%p}{m\%p}\cdot\binom{n/p}{m/p}\pmod{p} \]

定理证明

先证明两个引理:

  1. \(p\) 为素数时,\(\binom{i}{p}\equiv0\pmod{p}\)

  2. \(p\) 为素数时,\((1+x)^p\equiv1+x^p\pmod{p}\)

证明 1:

易得 \(\binom{i}{p}=\frac{p!}{i!\cdot(p-i)!}\)

因为 \(p\) 为素数,所以分子中的 \(p\) 一定不会被分子约掉,则 \(\binom{i}{p}\)\(p\) 的倍数。

证明 2:

\((1+x)^p\) 二项式展开,得:

\[(1+x)^p=\sum\limits_{i=0}^{p}\binom{p}{i}x^i \]

\(i=1\sim p-1\) 时,又引理 1 可得 \(\binom{p}{i}\equiv 0\pmod{p}\)

\((1+x)^p\equiv 1+x^p\pmod{p}\)

现在来证明原定理。

首先,对于 \((1+x)^n\)\(\binom{n}{m}\) 就是其指数为 \(x^m\) 项的系数。

化简 \((1+x)^n\) 得:

\[(1+x)^n=(1+x)^{p\cdot(n/p)}\cdot (1+x)^{n\%p} \]

\[\equiv (1+x^p)^{n/p}\cdot(1+x)^{n\%p}\pmod{p} \]

显然,左半部分只能提供 \(x^{kp}\) 项,右半部分只能提供 \(x\) 的小于 \(p\) 次方项,则要求 \(x^m\) 系数,左半部分提供 \(x^{p\cdot(n/p)}\) 的系数,即 \(\binom{n/p}{m/p}\),右半部分提供 \(x^{n\%p}\) 的系数,即 \(\binom{n\%p}{m\%p}\),而原本 \(x^m\) 系数为 \(\binom{n}{m}\),则得到:

\[\binom{n}{m}\equiv\binom{n\%p}{m\%p}\cdot\binom{n/p}{m/p}\pmod{p} \]

错排

错排公式

\(f_n\) 表示长度为 \(n\) 的错排个数。

则:

\[f_n=(n-1)(f_{n-1}+f_{n-2}) \]

错排例题

  1. 更简单的排列计数

\(cyc_{\pi}\) 表示把排列 \(\pi\) 看成置换,其中环的个数。

给定 \(n,k\) 和多项式 \(F\),对 \(1\le m\le n\)\(\sum\limits_{\pi}F(cyc_{\pi}) \),其中 \(\pi\) 为错排。

sol:

\(\begin{aligned}\sum\limits_{\pi}F(cyc_{\pi})&=\sum\limits_{\pi}\sum\limits_{i=0}^{k-1}f_icyc_{\pi}^i\\&=\sum\limits_{\pi}\sum\limits_{i=0}^{k-1}f_i\sum\limits_{j=0}^i\begin{Bmatrix} i \\j \end{Bmatrix}\binom{cyc_{\pi}}{j}j!\\&=\sum\limits_{\pi}\sum\limits_{i=0}^{k-1}\sum\limits_{j=0}^if_i\begin{Bmatrix} i \\j \end{Bmatrix}\binom{cyc_{\pi}}{j}j!\\&=\sum\limits_{\pi}\sum\limits_{j=0}^{k-1}\sum\limits_{i=j}^{k-1}f_i\begin{Bmatrix} i \\j \end{Bmatrix}\binom{cyc_{\pi}}{j}j!\\&=(\sum\limits_{j=0}^{k-1}j!)(\sum\limits_{\pi}\binom{cyc_{\pi}}{j})(\sum\limits_{i=j}^{k-1}f_i\begin{Bmatrix} i \\j \end{Bmatrix})\end{aligned}\)

\(c_{t,i}\) 表示 \(|\pi|=t\)\(cyc_{\pi}=i\) 的错排 \(\pi\) 个数。

考虑递推,设 1 在序列中的位置为 \(k\),分两种情况:

  • k 的位置为 1,此时有 \(c_{t-2,i-1}\) 种情况。

  • k 的位置不为 1,此时有 \(c_{t-1,i}\) 种情况。

这里其实和错排的递推差不多。

\(k\)\(t-1\) 种选法,则 \(c_{t,i}=(t-1)(c_{t-2,i-1}+c_{t-1,i})\)

又记 \(p_{t,i}\) 表示 \(\sum\limits_{|\pi|=t}\binom{cyc_{\pi}}{i}\) 的值。

将式子转换为枚举 \(cyc_{\pi}\),可得:

\(\begin{aligned}p_{t,i}&=\sum\limits_{j=1}^t\binom{j}{i}c_{t,j}\\&=\sum\limits_{j=1}^t\binom{j}{i}(t-1)(c_{t-2,j-1}+c_{t-1,j})\\&=(t-1)\sum\limits_{j=1}^t\binom{j}{i}(c_{t-2,j-1}+c_{t-1,j})\\&=(t-1)[\sum\limits_{j=1}^t\binom{j}{i}c_{t-2,j-1}+\sum\limits_{j=1}^t\binom{j}{i}c_{t-1,j}]\\&=(t-1)[\sum\limits_{j=1}^t[\binom{j-1}{i}c_{t-2,j-1}+\binom{j-1}{i-1}c_{t-2,j-1}]+\sum\limits_{j=1}^t\binom{j}{i}c_{t-1,j}]\\&=(t-1)(p_{t-2,i}+p_{t-2,i-1}+p_{t-1,i})\end{aligned}\)

而由于 \(t\le n,i<k\),则 \(p\) 数组可以在 \(O(nk)\) 时间复杂度内递推处理。

再看求得的答案式子:

\[(\sum\limits_{j=0}^{k-1}j!)(\sum\limits_{\pi}\binom{cyc_{\pi}}{j})(\sum\limits_{i=j}^{k-1}f_i\begin{Bmatrix} i \\j \end{Bmatrix}) \]

我们发现:前面一部分和后面一部分可以 \(O(k^2)\) 预处理,中间一部分已经被 \(O(nk)\) 递推,则枚举要计算的 \(m\),式子就能 \(O(1)\) 算了。

鸽巢原理

鸽巢原理公式

\((\sum\limits_{i=1}^np_i)−n+1\) 个物品放入 \(n\) 个盒子,一定存在一个盒子 \(i\),使
得第 \(i\) 个盒子至少装了 \(p_i\) 个物品。

鸽巢原理例题

  1. 有十个数 \(a_1,a_2\cdots a_{10}\) 满足 \(\mathop{\forall}\limits_{1\le i\le 10}1\le a_i\le 60\),证明能够从 \(a_i\) 中挑出两个交为空的子集,使得它们的和相等。

sol:

首先发现交为空的条件没有用,因为如果找到两个和相等的子集,将它们相交的部分同时去掉,也不影响和相等。

观察到子集总数为 \(2^{10}=1024\) 大于和的总数 \(60\times 10=600\),则必有两个子集和相等。

  1. 证明一张有超过 1 个点的简单无向图必定有两点度数相等。

sol:

  • 若存在两个及以上 0 度点,则成立。

  • 若存在一个 0 度点,则剩余 \(n-1\) 个点的度数只能在 \([1,n-2]\) 中取,故一定有两点度数相等。

  • 若不存在 0 度点,则 \(n\) 个点的度数只能在 \([1,n-1]\) 中取,故一定有两点度数相等

  1. 证明能从任意 11 个实数中取出 4 个满足:\((ac + bd)^2\ge \frac{1}{2}(a^2+b^2)(c^2+d^2)\)

sol:

显然,存在 6 个实数同号,把这 6 个实数看成 3 个向量,因为这 3 个向量均在第一或第三象限,所以一定存在两个向量夹角小于等于 45 度,利用余弦定理得 \(\cos 45^\circ\ge \frac{ac+bd}{\sqrt{(a^2+b^2)(c^2+d^2)}}\),平方得 \(\frac{1}{2}\ge \frac{(ac+bd)^2}{(a^2+b^2)(c^2+d^2)}\),变形即可得到原式。

posted @ 2025-01-31 16:00  O_v_O  阅读(31)  评论(0)    收藏  举报