組合數學(實時更新)

1. 盒子放小球問題

nn個小球,mm個盒子。

1.1 n個小球有區別,m個盒子有區別

(1)允許空盒:每個球放到任意盒子裏,總方案數mnm^n
(2)不允許空盒:需滿足nm1n \geq m\geq 1m>nm>n時無解。其方案數及時看成m個盒子相同時的方案數,再乘以m!m!。答案即是S(n,m)m!S(n,m)*m!。S代表第二類斯特林數。

1.2 n個小球有區別,m個盒子無區別

(1)允許空盒:假設放了k個盒,mk1m\geq k\geq 1。那麼答案就是k=1mS(n,k)\sum_{k=1}^{m}S(n,k)
(2)不允許有空盒:S(n,m)S(n,m)

1.3 n個小球無區別,m個盒子有區別

(1)允許空盒:nm1n\geq m\geq 1。“隔板法”。假設不允許有空盒,每一個盒裏都先放一個小球,這樣小球共有n+mn+m個,然後插板,插板的方案數爲Cn+m1n1C^{n-1}_{n+m-1}
(2)不允許空盒:nm1n\geq m\geq 1。“隔板法”。方案數Cn1m1C^{m-1}_{n-1}

1.4 n個小球無區別,m個盒子無區別

(1)允許空盒:劃分數問題。dp[i][j]dp[i][j]表示i個球,j個盒子的方案數。轉移方程爲
dp[i][j]=dp[ij][j]+dp[i][j1](ij)dp[i][j]=dp[i-j][j]+dp[i][j-1] (i\geq j)
dp[i][j]=dp[i][j1](i<j)dp[i][j]=dp[i][j-1] (i< j)
如果n<mn<m,答案爲dp[n][n]dp[n][n],否則爲dp[n][m]dp[n][m]
(2)不允許空盒:nm1n\geq m\geq 1。轉成上情況的nmn-m個小球,mm個盒子。

2. 計數原理與計數公式

2.1 可重複的排列與組合

2.1.1 可重複的排列

從n個不同元素中取m個元素(同一元素可以重複取出),按照一定的順序排成一列。排列的個數爲nmn^m

2.1.2 可重複的組合

從n個不同元素中取m個元素(同一元素可以重複取出),併成一組。組合的個數爲Cn+m1mC^{m}_{n+m-1}
【證明】
1,2,...,n1,2,...,n表示n個不同元素。從中取m個可以表示成:
{i1,i2,...,im}(1i1i2...imn)\{i_1,i_2,...,i_m\} (1\leq i_1\leq i_2 \leq ... \leq i_m \leq n)
jk=ik+(k1)j_k = i_k + (k-1),即:
j1=i1j2=i2+1j3=i3+2...jm=im+(m1)\begin{aligned}j_1 &= i_1\\ j_2 &= i_2+ 1\\ j_3 &= i_3 + 2\\ ...\\ j_m &=i_m+(m-1) \end{aligned}
可以得到組合
{j1,j2,...,jm}(1j1<j2<...<jmnm+1)\{j_1,j_2,...,j_m\} (1\leq j_1< j_2 < ... <j_m \leq n-m+1)
這樣就相當於在n+m1n+m-1個元素中取mm個不相同的元素,作爲一組。
因此即是Cn+m1mC_{n+m-1}^{m}

2.1.3 不全相異元素的全排列

n個元素中,分別有n1,n2,...,nkn_1,n_2,...,n_k個元素相同,且n1+n2+...+nk=nn_1+n_2+...+n_k=n,則稱這n個元素的全排列爲不全相異元素的全排列,個數爲
n!n1!n2!...nk!\frac{n!}{n_1!n_2!...n_k!}

2.1.4 多組組合

n個相異的元素分爲k(kn)k(k\leq n)個按照一定順序排列的組,其中第ii組有nin_i個元素(i=1,2,...,k)(n1+n2+...+nk=n)(i=1,2,...,k)(n_1+n_2+...+n_k=n)。不同的分組方法爲
n!n1!n2!...nk!\frac{n!}{n_1!n_2!...n_k!}
【例】
n(n6)n(n\geq 6)個選手中選3對選手參加雙打,問共有多少種選法。
答案爲(注意不考慮組的順序
Cn66!2!2!2!3!\frac{C_{n}^{6}*\frac{6!}{2!*2!*2!}}{3!}

2.2 相異元素的圓排列和項鍊數

2.2.1 圓排列

n個元素不分首尾排成一圈,成爲n個相異元素的圓排列。排列的種數爲(n1)!(n-1)!

2.2.2 項鍊數

將n粒不相同的珠子,穿成一副項鍊,得到的不同的項鍊數。
由於項鍊順時針和逆時針都是相同的,所以個數即是圓排列的一半。
{1,n=1n=212(n1)!,n3\left\{ \begin{aligned} &1,n = 1或n=2\\ &\frac{1}{2}*(n-1)!,n\geq3 \end{aligned} \right.

2.3 錯排問題

錯排遞推式。
D(n)D(n)代表nn個數的錯排公式,則
D(n)=(n1)[D(n1)+D(n2)]D(n) = (n-1)*[D(n-1)+D(n-2)]
錯排公式
D(n)=n!(111!+12!13!+...+(1)nn!)D(n) = n!(1-\frac{1}{1!}+\frac{1}{2!}-\frac{1}{3!}+...+\frac{(-1)^n}{n!})

2.4 組合數常用公式

Cn2=n(n1)2Cn3=n(n1)(n2)6Cnm=Cn1m1+Cn1mmCnm=nCn1m1Cn0+Cn1+...+Cnn=2n1Cn1+2Cn2+...+nCnn=n2n112Cn1+22Cn2+...+n2Cnn=n(n+1)2n2Cn11Cn22+Cn33+...+(1)n1Cnnn=1+12+13+...+1n(Cn0)2+(Cn1)2+(Cn2)2+...+(Cnn)2=C2nn\begin{aligned} &C_{n}^{2} = \frac{n*(n-1)}{2}\\ &\\ &C_{n}^{3}=\frac{n*(n-1)(n-2)}{6}\\ &\\ &C_{n}^{m}=C_{n-1}^{m-1}+C_{n-1}^{m}\\ &\\ &m*C_{n}^{m} = n*C_{n-1}^{m-1}\\ &\\ &C_n^0+C_n^1+...+C_n^n =2^n\\ &\\ &1C_n^1+2C_n^2+...+nC_n^n=n2^{n-1}\\ &\\ &1^2C_n^1+2^2C_n^2+...+n^2C_n^n=n(n+1)2^{n-2}\\ &\\ &\frac{C_n^1}{1}-\frac{C_n^2}{2}+\frac{C_n^3}{3}+...+(-1)^{n-1}\frac{C_n^n}{n}=1+\frac{1}{2}+\frac{1}{3}+...+\frac{1}{n}\\ &\\ &(C_n^0)^2+(C_n^1)^2+(C_n^2)^2+...+(C_n^n)^2=C_{2n}^n\\ \end{aligned}
範德蒙恆等式:
i=0kCniCmki=Cn+mk\sum_{i=0}^{k}C_n^iC_m^{k-i}=C_{n+m}^k

經驗式(link https://www.cnblogs.com/qrsikno/p/10170523.html):
i=0nCniri=(r+1)ni=0niCni=n2n1i=0nCik=Cn+1k+1i=0kCn+ii=Cn+k+1k\begin{aligned} &\sum_{i=0}^{n}C_n^i*r^i=(r+1)^n(廣義二項式定理)\\ &\\ &\sum_{i=0}^{n}i*C_n^i=n*2^{n-1}\\&\\ &\sum_{i=0}^{n}C_i^k=C_{n+1}^{k+1}\\&\\ &\sum_{i=0}^{k}C_{n+i}^i=C_{n+k+1}^{k}\\ \end{aligned}

3. 抽屜原理與平均值原理

3.1 抽屜原理

3.1.1 第一抽屜原理

如果將m個物件放入n個抽屜內,那麼必有一個抽屜內至少有[m1n]+1[\frac{m-1}{n}]+1個物件。
【推廣】
如果將m1+m2+...+mn+1m_1+m_2+...+m_n+1個物件放入n個抽屜內,那麼或者第一個抽屜內至少有m1+1m_1+1個物件,或者第二個抽屜內至少有m2+1m_2+1個物件……或者第n個抽屜內至少有mn+1m_n+1個物件。

3.1.2 第二抽屜原理

如果將m個物件放入n個抽屜內,那麼必有一個抽屜內至多有[mn][\frac{m}{n}]個物件。
【推廣】
如果將m1+m2+...+mn1m_1+m_2+...+m_n-1個物件放入n個抽屜內,那麼或者第一個抽屜內至多有m11m_1-1個物件,或者第二個抽屜內至多有m21m_2-1個物件……或者第n個抽屜內至多有mn1m_n-1個物件。

3.2 平均值原理

(1)設a1,a2,...,ana_1,a_2,...,a_n是實數,A=1n(a1+a2+...+an)A =\frac{1}{n}(a_1+a_2+...+a_n),則a1,a2,...,ana_1,a_2,...,a_n中必有一個數不小於A,也有一個數不大於A。
(2)設a1,a2,...,ana_1,a_2,...,a_n是實數,G=1na1a2...annG =\frac{1}{n}\sqrt[n]{a_1a_2...a_n},則a1,a2,...,ana_1,a_2,...,a_n中必有一個數不小於G,也有一個數不大於G。

4. 生成函數

生成函數的定義:
實數序列 a0,a1,...,ak,...a_0,a_1,...,a_k,...的生成函數是無窮級數
G(x)=a0+a2x+...+akxk+...=k=0akxkG(x)=a_0+a_2x+...+a_kx^k+...=\sum_{k=0}^{\infty}a_kx^k
ak{a_k}的普通生成函數。
廣義二項式係數:
(uk)={u(u1)(u2)...(uk+1)/k!,k>01,k=0\dbinom{u}{k}=\left \{ \begin{aligned}&u(u-1)(u-2)...(u-k+1)/k!,&k>0\\ &1,&k=0 \end{aligned}\right.
【例】
(1/23)=(1/2)(1/21)(1/22)3!=(1/2)(1/2)(3/2)6=1/16\begin{aligned}\dbinom{1/2}{3}&=\frac{(1/2)(1/2-1)(1/2-2)}{3!}\\ &=\frac{(1/2)(-1/2)(-3/2)}{6}\\ &=1/16 \end{aligned}
xx是實數,x<1|x|<1uu是實數,那麼
(1+x)u=k=0(uk)xk(1+x)^u=\sum_{k=0}^{\infty}\dbinom{u}{k}x^k

4.1 常用生成函數

1xn+11x=k=0nxk11ax=k=0akxk1(1x)2=k=0(k+1)xk1(1x)n=k=0Cn+k1kxk1(1+x)n=k=0Cn+k1k(1)kxk\begin{aligned} &\frac{1-x^{n+1}}{1-x}=\sum_{k=0}^{n}x^k\\ &\\ &\frac{1}{1-ax}=\sum_{k=0}^{\infty}a^kx^k\\ &\\ &\frac{1}{(1-x)^2}=\sum_{k=0}^{\infty}(k+1)x^k\\ &\\ &\frac{1}{(1-x)^n}=\sum_{k=0}^{\infty}C_{n+k-1}^{k}x^k\\ &\\ &\frac{1}{(1+x)^n}=\sum_{k=0}^{\infty}C_{n+k-1}^{k}(-1)^kx^k\\ \end{aligned}

4.2 計數問題

5. 特殊計數序列

5.1 Catalan數列

前幾項:1,1,2,5,14,42,132,429,1430,4862,16796,58786,208012,......1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012, ......c[0]=1,c[1]=1,c[2]=2...c[0]=1,c[1]=1,c[2]=2...

1f[n]=i=0n1f[i]f[ni1]2f[n]=4n2n+1f[n1]1f[n]=C2nnn+12f[n]=C2nnC2nn1\begin{aligned} &遞推式1:f[n]=\sum_{i=0}^{n-1}f[i]*f[n-i-1]\\ &\\ &遞推式2:f[n]=\frac{4n-2}{n+1}f[n-1]\\ &\\ &組合式1:f[n]=\frac{C_{2n}^{n}}{n+1}\\ &\\ &組合式2:f[n] = C_{2n}^{n}-C_{2n}^{n-1} \end{aligned}

應用:

  1. 二叉樹計數1:已知二叉樹有nn個節點,能夠構成CnC_{n}種不同的二叉樹。(二叉搜索樹)
  2. 二叉樹計數2:已知二叉樹的葉子nn個,能夠構成Cn1C_{n-1}種不同的二叉樹。(二叉搜索樹)
  3. 括號匹配數:一個合法的表達式由()包圍,()可以嵌套和連接,給出nn對括號,可以組成的合法表達式的個數爲CnC_{n}
  4. 劃分問題:將一個凸n+2n+2多邊形區域分成三角形區域的方法數爲CnC_{n}
  5. 出棧問題1:一個棧的進棧序列爲1,2,3,..n1,2,3,..n,不同的出棧序列有CnC_{n}種。
  6. 出棧問題2:有2n個人排成一行進入劇場。入場費5元。其中只有n個人有一張5元鈔票,另外n人只有10元鈔票,劇院無其它鈔票,問有多少種方法使得只要有10元的人買票,售票處就有5元的鈔票找零。5元的相當於入棧,10元的相當於出棧,轉化成上問題。
  7. 路徑問題:在nnn*n的方格地圖中,從一個角到另外一個角,不跨越對角線的路徑數有CnC_{n}種。
  8. 握手問題:2n2n個人均勻坐在一個圓桌邊上,某個時刻所有人同時與另一個人握手,要求手之間不能交叉,共有CnC_{n}種握手方法。

5.2 Fibonacci數列

通項公式:Fn=15[(1+52)n(152)n]F_n=\frac{1}{\sqrt{5}}[(\frac{1+\sqrt{5}}{2})^n-(\frac{1-\sqrt{5}}{2})^n]
遞推式:
Fn=Fn1+Fn2F_n=F_{n-1}+F_{n-2}
性質:
F1+F1+F2+F3+...+Fn=Fn+21F1+2F2+3F3+...+nFn=nFn+2Fn+3+2F1+F3+F5+...+F2n1=F2nF2+F4+F6+...+F2n=F2n+11F12+F22+F32+...+Fn2=FnFn+1Fn1Fn+1Fn2=(1)n\begin{aligned}&F_1+F_1+F_2+F_3+...+F_n=F_{n+2}-1\\ &\\ &F_1+2F_2+3F_3+...+nF_n=nF_{n+2}-F_{n+3}+2\\ &\\ &F_1+F_3+F_5+...+F_{2n-1}=F_{2n}\\ &\\ &F_2+F_4+F_6+...+F_{2n}=F_{2n+1}-1\\ &\\ &F_1^2+F_2^2+F_3^2+...+F_n^2=F_nF_{n+1}\\ &\\ &F_{n-1}F_{n+1}-F_n^2=(-1)^n \end{aligned}

定理:
FnFm+Fm1Fn1=Fm+n1FmFn+1+Fm1Fn=Fm+nm=nF2n1=Fn2+Fn12F2n=(Fn1+Fn+1)Fn=(2Fn1+Fn)FnFnFmnmn3Fibonacci\begin{aligned} &F_nF_m+F_{m-1}F_{n-1}=F_{m+n-1}\\ &\\ &F_mF_{n+1}+F_{m-1}F_n=F_{m+n}\\ &\\ &m=n時,\\ &F_{2n-1}=F_n^2+F_{n-1}^2\\ &\\ &F_{2n}=(F_{n-1}+F_{n+1})F_n=(2F_{n-1}+F_n)F_n\\ &\\ &F_n整除F_m當且僅當n整除m,其中n\geq3\\ &\\ &任意連續三個Fibonacci數兩兩互素。 \end{aligned}

5.3 Lucas數列

定義:
Ln={2,n=11,n=2Ln1+Ln2,n3L_n= \left\{\begin{aligned}&2,&n=1\\ &1,&n=2\\ &L_{n-1}+L_{n-2},&n\geq3 \end{aligned} \right.
通項公式:
Ln=(1+52)n+(152)nL_n=(\frac{1+\sqrt{5}}{2})^n+(\frac{1-\sqrt{5}}{2})^n
與Fibonacci數的關係:
F2n=LnFnLn=Fn1+Fn+1Fn=Ln1+Ln+15Ln2=5Fn2+4(1)n\begin{aligned} &F_{2n}=L_nF_n\\ &\\ &L_n=F_{n-1}+F_{n+1}\\ &\\ &F_n=\frac{L_{n-1}+L_{n+1}}{5}\\ &\\ &L_n^2=5F_n^2+4(-1)^n \end{aligned}

5.4 Stirling數

5.4.1 第一類Stirling數

S1(n,m)S1(n,m)表示的是將nn個不同元素構成mm個圓排列的數目。
遞推式:
S1(n,m)=(n1)S1(n1,m)+S1(n1,m1)(n>1,m>1)S1(n,m)=(n-1)*S1(n-1,m)+S1(n-1,m-1)(n>1,m>1)

邊界條件:
S1(0,0)=1,S1(n,0)=0S1(n,n)=1\begin{aligned} &S1(0,0)=1,S1(n,0) = 0\\ &S1(n,n) = 1 \end{aligned}
性質:
k=0nS1(n,k)=n!\sum_{k=0}^{n}S1(n,k)=n!
【例】nn個倉庫, 2n2n把鑰匙,nn 位官員。如果把nn位官員分成mm個不同的部,部中的官員數量與管理的倉庫數量一致。有多少種方案使得所有同部的官員可以打開所有本部管理的倉庫,而無法打開其他管理的倉庫。(nn把鑰匙放到倉庫,nn把鑰匙分給官員)
方案數即爲S1(n,m)n!S1(n,m)n!
前面的是放到倉庫裏的方案數,後面說官員的分配方案。

5.4.2 第二類Stirling數

S2(n,m)S2(n,m)表示的是把nn個不同元素劃分到mm個集合的方案數。
遞推式:
S2(n,m)=mS2(n1,m)+S2(n1,m1)(1mn1)S2(n,m)=m*S2(n-1,m)+S2(n-1,m-1)(1\leq m\leq n-1)
邊界條件:
S2(n,0)=0,S2(n,1)=1S2(n,n)=1\begin{aligned} &S2(n,0)=0,S2(n,1)=1\\ &S2(n,n)=1 \end{aligned}

5.5 Bernoulli數

6. Polya計數

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章