組合數學學習筆記

Ryan_Adam發表於2024-11-12

更好的閱讀體驗

update

2024-11-12 11:25 修改了一些格式錯誤且增加了二項式反演的例題

2024-11-12 14:33 改進了二項式反演的證明

基礎知識

一、加法原理

完成某個工作有 \(n\) 類辦法,第 \(i\) 類辦法有 \(a_i\) 種,則完成此工作的方案數有 \(\sum\limits _{i=1}^n a_i\) 種。

二、乘法原理

完成某個工作有 \(n\) 個步驟,第 \(i\) 個步驟有 \(b_i\) 種,則完成此工作的方案數有 \(\prod\limits _{i=1}^n b_i\) 種。

排列組合(基礎)

一、定義

1.排列數:從 \(n\) 個物體中選出 \(m\) 個物體按一定順序排為一列的方案數,用 \(A_n ^m\ (\)\(P_n^m)\) 表示,
\(A_n^m=\dfrac{n!}{(n-m)!}\)

2.組合數:從 \(n\) 個物體種選出 \(m\) 個物體(不考慮順序)的方案數,用 \(\begin{pmatrix} n \\ m \end{pmatrix}\)(或 \(C_n^m\))表示,\(\dbinom{n}{m}=\dfrac{A_n^m}{m!}=\dfrac{n!}{m!(n-m)!}\)

3.插板法

現有 \(n\)完全相同的元素,要求將其分為 \(k\) 組。

  • 保證每組至少有一個元素,一共有多少種分法?

考慮拿 \(k - 1\) 塊板子插入到 \(n\) 個元素兩兩形成的 \(n - 1\) 個空裡面。因為元素完全相同,所以答案就是 \(\dbinom{n - 1}{k - 1}\)

本質是求 \(x_1+x_2+\cdots+x_k=n\) 的正整數解的組數。

  • 每組允許為空,一共有多少種分法?

給總體先加上 \(k\) 個,以保證每組至少一個,接下來處理同上,最後相當於每組減一還回去即可。答案為 \(\dbinom{n+k-1}{k-1}\)。因為 \(\dbinom{n}{m}=\dbinom{n}{n-m}\),答案即為 \(\dbinom{n+k-1}{n}\)

本質是求 \(x_1+x_2+\cdots+x_k=n\) 的非負整數解的組數。

  • 對於第 \(i\) 組,至少要分到 \(a_i\)\(\sum\limits a_i\le n\)),一共有多少種分法?

本質是求 \(x_1+x_2+\cdots+x_k=n\) 的整數解的組數。

模仿第三種情況,我們設 \(x'_i=x_i-a_i\) 以保證每組最少分到 \(a_i\) 個。現在相當於求 \(x'_1+x'_2+\cdots+x'_k=n\) 的整數解。

過程:

\[x'_1+x'_2+\cdots+x'_k=n \]

\[(x'_1+a_1)+(x'_2+a_2)+\cdots+(x'_k+a_k)=n \]

\[x_1+x_2+\cdots+x_k=n-a_1-a_2-\cdots-a_k \]

\[x_1+x_2+\cdots+x_k=n-\sum a_i \]

所以答案為 \(\dbinom{n-\sum a_i+k-1}{n-\sum a_i}\)


例:\(\ \ 1 \sim n\)\(n\) 個自然數中選 \(k\) 個,使得這 \(k\) 個數中任何兩個數都不相鄰的組合有 \(\dbinom {n-k+1}{k}\) 種。

證明:設選的 \(k\) 個數分別為 \(x_1,x_2,\cdots,x_k (x_1\le x_2\le \cdots \le x_k)\),設 \(x'_i=x_i+i-1\),則一定有 \(x'_1<x'_2<\cdots<x'_k\ \ (x'_k\le n)\),即兩兩都不相鄰。因為 \(x'_k=x_k+k-1\le n\),所以 \(x_k\le n-k+1\),我們只需在 \(1\sim n-k+1\) 中選 \(k\) 個數即可,答案為 \(\dbinom{n-k+1}{k}\) 種。

二項式定理

內容

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

證明

採用數學歸納法。

先理解一個引理:帕斯卡法則,即:

\[\dbinom{n}{k}+\dbinom{n}{k-1}=\dbinom{n+1}{k} \]

  • 證明帕斯卡法則:假設有 \(n+1\) 個人,要在其中選出 \(k\) 個人,很明顯方案有 \(\dbinom{n+1}{k}\) 種;但不幸的是,一共的 \(n+1\) 個人中死了一個,現在我們總人數剩下 \(n\) 人,但還是要選 \(k\) 人,現在方案數為 \(\dbinom{n}{k-1}\) 種;我們發現少的方案數一定和那死的一個人有關,那我們所缺少的方案數就是在選種的 \(k\) 個人中有那個死人,所以我們還能自主選擇 \(k-1\) 人,所以缺少的方案數為 \(\dbinom{n}{k-1}\)。所以我們有:

\[\dbinom{n+1}{k}-\dbinom{n}{k-1}=\dbinom{n}{k} \]

調換下順序得到:

\[\dbinom{n}{k}+\dbinom{n}{k-1}=\dbinom{n+1}{k} \]

得證。

現在證明二項式定理。

\(n=1\) 時,原式顯然成立。

假設當 \(n=k\) 時原式成立,設 \(n=k+1\)

\[(a+b)^{k+1}=a(a+b)^k+b(a+b)^k \]

\[=a\sum_{i=0}^k\dbinom{k}{i}a^{k-i}b^i+b\sum_{j=0}^k\dbinom{k}{j}a^{k-j}b^j \]

\(a,b\) 乘進來:

\[=\sum_{i=0}^k\dbinom{k}{i}a^{k-i+1}b^i+\sum_{j=0}^k\dbinom{k}{j}a^{k-j}b^{j+1} \]

把前半部分 \(i=1\) 時提出來:

\[=a^{k+1}+\sum_{i=1}^k\dbinom{k}{i}a^{k-i}b^i+\sum_{j=0}^k\dbinom{k}{j}a^{k-j}b^{j+1} \]

\(j\) 化為 \(i-1\):

\[=a^{k+1}+\sum_{i=1}^k\dbinom{k}{i}a^{k-i}b^i+\sum_{i=1}^{k+1}\dbinom{k}{i-1}a^{k-i+1}b^{i} \]

把後半部分 \(i=k+1\) 時提出來:

\[=a^{k+1}+\sum_{i=1}^k\dbinom{k}{i}a^{k-i}b^i+\sum_{i=1}^{k}\dbinom{k}{i-1}a^{k-i+1}b^{i}+b^{k+1} \]

將中間兩個求和合並:

\[=a^{k+1}+b^{k+1}+\sum_{i=1}^k\left[\dbinom{k}{i}+\dbinom{k}{i-1}\right]a^{k-i}b^i \]

套用帕斯卡法則

\[=a^{k+1}+b^{k+1}+\sum_{i=1}^k\dbinom{k+1}{i}a^{k-i}b^i \]

\[=\sum_{i=0}^{k+1}\dbinom{k+1}{i}a^{k-i}b^i \]

所以當 \(n=k+1\) 時,結論仍成立。因此對任意 \(n\in \mathbb{N} ^{+}\),均可使所證等式成立,
得證。

鴿巢原理(抽屜原理)

內容

\(n\) 個物體,劃分為 \(k\) 組,那麼至少存在一個分組,含有大於或等於 \(\left \lceil \dfrac{n}{k} \right \rceil\) 個物品。

證明

反證法。

設每個分組含有小於 \(\left \lceil \dfrac{n}{k} \right \rceil\) 個物體,則其總和 \(S\leq (\left \lceil \dfrac{n}{k} \right \rceil -1 ) \times k=k\left\lceil \dfrac{n}{k} \right\rceil-k < k(\dfrac{n}{k}+1)-k=n\) ,矛盾。

容斥原理

內容

\(U\) 中元素有 \(n\) 種不同的屬性,而第 \(i\) 種屬性稱為 \(P_i\),擁有屬性 \(P_i\) 的元素構成集合 \(S_i\),那麼

\[\left|\bigcup_{i=1}^{n}S_i\right|=\sum_{m=1}^n(-1)^{m-1}\sum_{a_i<a_{i+1} }\left|\bigcap_{i=1}^mS_{a_i}\right| \]

證明

數學歸納法,懶得寫了以後填坑()

卡特蘭數

定義

定義卡特蘭數 \(H_n\) 表示座標軸上從 \((0,0)\) 點到 \((n,n)\) 的路徑中不越過直線 \(y=x\) 的路徑數。下圖為一種不合法的方案。

求法

如下圖,對每個非法的方案都可以透過把在第一個越過 \(y=x\) 的點之後的路徑以直線 \(y=x+1\) 做對稱從而構造一條自 \((0,0)\)\((n-1,n+1)\) 的路徑。

因為一共需要走 \(2n\) 步,所以從 \((0,0)\)\((n,n)\) 的方案總數有 \(\dbinom{2n}{n}\) 種,從 \((0,0)\)\((n-1,n+1)\) 的方案數有 \(\dbinom{2n}{n-1}\) 種。

綜上可得:

\[\begin{aligned} H_n&=\dbinom{2n}{n}-\dbinom{2n}{n-1}\\ &=\frac{(2n)!}{(n!)^2}-\frac{(2n)!}{(n+1)!(n-1)!}\\ &=\frac{(n+1)(2n)!}{n!(n+1)!}-\frac{n(2n)!}{n!(n+1)!}\\ &=\frac{(2n)!}{n!(n+1)!}\\ &=\frac{\dbinom{2n}{n}}{n+1}\\ \end{aligned}\]

遞推公式

\[H_n = \sum_{i=0}^{n-1}H_iH_{n-i-1} \]

\[H_n = \frac{4n-2}{n+1}H_{n-1} \]

證明:\((0,0)\)\((n,n)\) 的路徑可以分作以下幾步:

  • \((0,0)\) 走到 \((i,i)\),方案數為 \(H_i\)

  • \((i,i)\) 走到 \((n-1,n-1)\),方案數為 \(H_{n-i-1}\)

  • \((n-1,n-1)\) 走到 \((n,n)\),方案數為 \(1\)

列舉每一個 \(i\),由此得到 \(H_n = \sum_{i=0}^{n-1}H_iH_{n-i-1}\)

\[\begin{aligned} & H_n = \frac{4n-2}{n+1}H_{n-1} \\ \iff & \frac{C_{2n}^n}{n+1} = \frac{4n-2}{n+1} \times \frac{C_{2n-2}^{n-1}}{n} \\ \iff & \frac{(2n)!}{(n+1)(n!)^2} = \frac{4n-2}{n+1} \times \frac{(2n-2)!}{n(n-1)!^2} \\ \iff & \frac{(2n)!}{n} = (4n-2) \times {(2n-2)!} \\ \iff & \frac{(2n)(2n-1)}{n} = 4n-2 \\ \iff & 4n-2 = 4n-2 \\ \end{aligned} \]

故得證。

組合數性質

性質1

\[\dbinom{n}{m}=\dbinom{n}{n-m} \]

證明

正確性顯然,用組合數意義理解,在 \(n\) 箇中選 \(m\) 個相當於在 \(n\) 箇中挑 \(n-m\) 個不選。

性質2

\[\dbinom{n}{m}=\dfrac{n}{m}\dbinom{n-1}{m-1} \]

證明

\[\begin{aligned} \dbinom{n}{m}&=\dfrac{n!}{m!(n-m)!}\\ &=\dfrac{n}{m}\times \dfrac{(n-1)!}{(m-1)!(n-m)!}\\ &=\dfrac{n}{m}\dbinom{n-1}{m-1} \end{aligned}\]

性質3

\[\dbinom{n}{m}=\dbinom{n-1}{m}+\dbinom{n-1}{m-1} \]

證明

即帕斯卡定理的略微轉換,具體見上。

性質4

\[\sum_{i=0}^{n}\dbinom{n}{i}=2^n \]

證明

\(a=b=1\) 帶入二項式定理即可。

\[\begin{aligned} 2^n&=(1+1)^n\\ &=\sum_{i=0}^n\dbinom{n}{i}1^{n-i}1^i\\ &=\sum_{i=0}^n\dbinom{n}{i} \end{aligned}\]

性質5

\[\sum_{i=0}^{n}(-1)^i\dbinom{n}{i}=[n=0] \]

\([a]\) 表示當 \(a\) 為真時答案為 \(1\),否則為 \(0\)(相當於一個 bool)。

證明

證法基本等同於性質 \(4\),將 \(a=1,b=-1\) 帶入二項式定理即可。

我們這裡認為 \(0^0=1\),所以 \(n=0\) 時答案為 \(1\)

具體證明略。

性質6

\[\sum_{i=0}^{m}\dbinom{n}{i}\dbinom{m}{m-i}=\dbinom{n+m}{m}\tag{$n\ge m$} \]

證明

考慮透過組合數意義來理解。

假設現在有 \(n\) 個男生,\(m\) 個女生,我們現在要從這 \(n+m\) 個人中選出 \(m\) 個人,方案數顯然為 \(\dbinom{n+m}{m}\)。另一種思考方式是從男生中選 \(i\) 個,女生中選 \(m-i\) 個,對於每個 \(i\) 方案數為 \(\dbinom{n}{i}\dbinom{m}{m-i}\),列舉每個 \(i\) 即為總方案數。

性質7

\[\sum_{i=0}^n\binom{n}{i}^2=\binom{2n}{n} \]

證明

性質 \(6\) 的特殊情況,取 \(m=n\) 即可。

性質8

\[\sum_{i=0}^{n}i\dbinom{n}{i}=n2^{n-1} \]

證明

\[\begin{aligned} \sum_{i=1}^{n}i\dbinom{n}{i}&=n\cdot\sum_{i=1}^{n}\dfrac{i}{n}\dbinom{n}{i}\\ &=n\cdot\sum_{i=1}^{n}\dbinom{n-1}{i-1}\text{(套用性質2)}\\ &=n2^{n-1}\text{(套用性質4)}\\ \end{aligned}\]

性質9

\[\begin{aligned} \sum_{i=1}^{n}i^2\dbinom{n}{i}&=n(n+1)2^{n-2} \end{aligned}\]

證明

\[\begin{aligned} \sum_{i=1}^{n}i^2\dbinom{n}{i}&=n\cdot\sum_{i=1}^n\dfrac{i}{n}\dbinom{n}{i}\cdot i\\ &=n\cdot\sum_{i=1}^{n}i\dbinom{n-1}{i-1}\\ &=n\cdot\sum_{i=0}^{n-1}(i+1)\dbinom{n-1}{i}\\ &=n\cdot\sum_{i=0}^{n-1}i\dbinom{n-1}{i}+n\cdot\sum_{i=0}^{n-1}\dbinom{n-1}{i}\\ &=n\cdot\sum_{i=0}^{n-1}i\dbinom{n-1}{i}+n2^{n-1}\\ &=n(n-1)\cdot\sum_{i=0}^{n-1}\dfrac{i}{n-1}\dbinom{n-1}{i}+n2^{n-1}\\ &=n(n-1)\cdot\sum_{i=1}^{n-1}\dbinom{n-2}{i-1}+n2^{n-1}\\ &=n(n-1)2^{n-2}+n2^{n-1}\\ &=n(n+1)2^{n-2} \end{aligned}\]

擴充:求證 $$\begin{aligned}
\sum_{i=1}{n}im\dbinom{n}{i}&=n{\overline{m}}2
\end{aligned}$$。

性質10:

\[\binom{n}{r}\binom{r}{k} = \binom{n}{k}\binom{n-k}{r-k} \]

證明

\[\begin{aligned} \binom{n}{r}\binom{r}{k} &= \dfrac{n!}{r!(n-r)!}\cdot\dfrac{r!}{k!(r-k)!}\\ &= \dfrac{n!}{(n-r)!\cdot k!\cdot(r-k)!}\\ &= \dfrac{n!(n-k)!}{(n-r)!\cdot k!\cdot (r-k)!\cdot(n-k)!}\\ &=\dfrac{n!}{k!(n-k)!}\cdot \dfrac{(n-k)!}{(r-k)!(n-r)!}\\ &=\dbinom{n}{k}\dbinom{n-k}{r-k} \end{aligned}\]

二項式反演

內容

形式1

\[F_n=\sum_{i=0}^{n}(-1)^i{n\choose i}G_i \iff G_n=\sum_{i=0}^{n}(-1)^{i}{n\choose i}F_i \]

形式2

\[F_n=\sum_{i=0}^{n}{n\choose i}G_i \iff G_n=\sum_{i=0}^{n}(-1)^{n-i}{n\choose i}F_i \]

證明

發現形式一的形態很對稱,那我們設一個反演係數。

設矩陣 \(A_{n,i}=(-1)^i\begin{pmatrix} n \\ i \end{pmatrix}\),現在變為求證 $$F_n=\sum_{i=0}^{n}A_{n,i}G_i \iff G_n=\sum_{i=0}^{n}A_{n,i}F_i$$,即證 \(A*A=I\)

\[\begin{aligned} (A*A)_{n,m}&=\sum_{t=1}^{\infty}{A_{n,t}}{A_{t,m}}\\ &=\sum_{t=m}^{n}(-1)^t{n \choose t}(-1)^m{t \choose m}\\ &=(-1)^m\sum_{t=m}^{n}(-1)^t{n \choose t}{t \choose m}\\ &=(-1)^m\sum_{t=m}^{n}(-1)^t(\dfrac{n!}{t!\times (n-t)!}\cdot\dfrac{t!}{m!\times (t-m)!})\\ &=(-1)^m\sum_{t=m}^{n}(-1)^t{n \choose m}{n-m \choose n-t}\\ &=(-1)^m{n \choose m}\sum_{t=m}^{n}(-1)^t{n-m \choose n-t}\\ &=(-1)^m{n \choose m}\sum_{t=0}^{n-m}(-1)^{t+m}+{n-m \choose n-t-m}\\ &=(-1)^{2m}{n \choose m}\sum_{t=0}^{n-m}(-1)^t+{n-m \choose t}\\ \end{aligned}\]

發現後面的那塊是二項式定理,所以原式可以化簡為:

\[(-1)^{2m}{n \choose m}(1-1)^{n-m} \]

仔細觀察,此式只有在 \(n=m\) 時值為 \(1\),其餘時間都為 \(0\),即 \([n=m]\),也就是單位矩陣 \(I\)

由此得證 \(A*A=I\) 即矩陣 \(A\) 自逆,從而得證形式一,而形式二透過移動 \(-1\) 的次冪即可推得。

例題

CF997C Sky Full of Stars

雖然 Codeforces 題庫炸了,但不影響這是一道能用來練二項式反演的好題(好像也可以用容斥原理做?)。

套路化的,我們設 \(F_{i,j}\)至少\(i\)\(j\) 列同色的方案數,\(G_{i,j}\)恰好\(i\)\(j\) 列同色的方案數。很明顯,我們有:

\[F_{x,y}=\sum_{i=x}^n\sum_{j=y}^n {n\choose i}{n\choose j}G_{i,j} \]

發現這是 二維二項式反演 的經典式子,反演後可得:

\[G_{x,y}=\sum_{i=x}^n\sum_{j=y}^n (-1)^{n-i}{n\choose i}(-1)^{n-j}{n\choose j}F_{i,j} \]

\[G_{x,y}=(-1)^{2n}\sum_{i=x}^n\sum_{j=y}^n (-1)^{i+j}{n\choose i}{n\choose j}F_{i,j} \]

而我們要求的答案是總方案數 \(3^{n^2}-G_{0,0}\),問題即轉化為求 \(F\),接下來分類討論。

  • \(ij \ne 0\) 時,同色的行和列一定交叉,所以所有行和列都是一種顏色,方案數為 \({n\choose i}{n\choose j}3^{(n-i)(n-j)+1}\)
  • \(ij = 0,i+j \ne 0\) 時,同色的行和列一定交叉,所以所有行和列都是一種顏色,方案數為 \({n\choose i+j}3^{i+j+(n-i-j)n}\)
  • \(i+j = 0\) 時,無限制,方案數為 \(3^{n^2}\)

\(F\) 帶回去算出 \(G_{0,0}\) 用全部方案數一減即可。

相關文章