【總結】組合模型及其組合意義的闡釋
重要說明:本文統一使用"球和格子"模型闡釋組合意義。
> (這種東西)極具啟發性,有助於人們深刻理解組合數學。——盧華明名字都是我強行取的,不必在意。
可重組合
描述
有\(m\)種球每種球都是足夠多的,有\(n\)個盒子,現在要把盒子塞滿(一種球可以用多次),多少種方案?
公式
組合闡釋1(構造法)
不失一般性,把球編號,然后按照從小往大排序,設第\(i\)位置上面為\(a_i\),構造一個新的數列\(b_i=a_i+i\),很顯然\(b_i\)是互不相同的。我們知道\(b_i \in [1+1,n+m]\)的,所以問題就變成了從\([2,n+m]\)中選出\(n\)個數,顯然這個的方案數就是\(\begin{pmatrix}m+n-1\\n\end{pmatrix}\) 個。
組合闡釋2(一一對應法)
從2到\(m+n\)任意選出\(n\)個數,即\(\begin{pmatrix}m+n-1\\n\end{pmatrix}\)方法,這些取的方法和可重組合的方法一一對應。具體對應方式是對於取出來的第\(i\)小數減去\(i\),這樣得出來的新數列的范圍就在\([1,m]\)的范圍內,並且新數列會有相同的元素,對應的就是選了幾個相同元素。
拓展套路1
盒子有編號怎么辦?
之前的盒子是沒有編號的,現在的盒子有編號了,之前每一種無序的安排都可以對應到\(n!\)個有序安排內。
拓展套路2
盒子可以不放滿怎么辦?
解法1
過於顯然不解釋。
解法2
相當於多了一個球,我們把這個球叫做"無球",選擇這個球代表盒子是空的。所以:
這就給了我們一個可重組合的遞推公式(滑稽)
拓展套路3
球有個數限制怎么辦?
\(O(2^n)\)容斥。
相當於欽定一些球至少選擇\(a_i+1\)個使得它們一定選多了,然后容斥原理即可。
拓展套路4(真的拓展)
要求這些某種球只能選擇它給定集合\(S_i\)內的數怎么辦?
的\(n\)項系數
拓展套路5(畫蛇添足)
我想算復雜一點怎么辦?
的\(n\)項系數...
其實可以用來多項式優化。
不相鄰組合
描述
有\(n\)個球,\(m\)個盒子,(注意看,這里和之前的表述不同了)選出的球不能相鄰,有多少種組合方式?
公式
組合闡釋1
從\([0,n-m]\)中選出\(m\)個數,將第\(i\)小的數加上\(i\)構成新的序列,新的序列在\([1,n]\)的范圍內,並且不會重復。
拓展套路1
可重不相鄰組合?
我不太會\(O(1)\),貌似會\(O(n)\)
就這么過掉了,畢竟不知道什么..
格路模型
從坐標原點走到\((n,m)\)的方案數是
組合闡釋1
從原點走到\((n,m)\)一定要走\(n+m\)步,從\(n+m\)次走步(大霧)中選出\(n\)步往x正方向走就對應了每一種走路的方法。
比yyb在NOIP集訓專題分享上在講台上講的好多了
組合闡釋2
設\(dp(i,j)\)表示從原點走到\((i,j)\)的方案:根據加法原理
而由組合數遞推公式
記\(f(n,m)={{m+n}\choose n}\)
則有
和上上式一樣。
格路是我們重要的思維方式,也是重要的證(gan xing)明(li jie)方式。
艾提艾斯提模型
別看這個名字
等式:
組合闡釋1(格路)
\(\begin{pmatrix} n+m+1\\m\end{pmatrix}\):從原點到\((n+1,m)\)的方案數
\(\begin{pmatrix} n+m \\ m \end{pmatrix}\):從原點到到\((n,m)\)的方案數
\(\begin{pmatrix} n+m-i \\ m-i \end{pmatrix}\):從原點到\((n,m-i)\)的方案數
又因為,從原點到\((n+1,m)\)的路徑方案數是這樣構成的
藍色到藍色點的路徑顯然由所有黑色點貢獻
所以就證完了。
備胎模型
考慮一個這樣的恆式子
組合闡釋1
考慮從\(n\)選出\(l\)個再從\(l\)選出\(r\)個和直接$\begin{pmatrix} n \ r \end{pmatrix} $有什么區別??
當然是有的,因為有\(n-r\)個你選出來的最后沒要...
所以選出這\(n-r\)個炮灰也是會造成方案的不同啊
所以上面這個式子的組合意義就很清晰了
擴展套路1
多選幾輪?
找規律大法好 \((n=a_0)\)
奇偶模型
注意到上式也說明了對於\((-1)^{i+1}\)也是成立的。
直接證明1
令\(x=1,y=-1\)證畢。
(沒有營養的)
組合闡釋1
上式相當於不停從\(n\)中選個子集出來(包括空集),然后把所有集合的大小為偶數的方案加起來,把所有集合的大小為奇數的方案加起來,然后相減。
所以我們只要建立起一個奇子集和分成偶子集的各種方案之間建立一個一一對應的關系就好了。
一一對應很顯然吧...
分析隨便某個元素\(x\),它只有兩種狀態:在分出來的子集內,不在分出來的子集內。對於一個任何一個給定的集合,我們就直接把\(x\)是否存在的這個布爾條件!一下,然后就改變了這個集合的奇偶性,而且新增的方案也是合法的。這樣就一一對應起來了。
黑白模型(范德蒙德卷積)
考慮恆等式
組合闡釋1
分成\(m\)個黑球和\(n\)個白球,從\(m+n\)個球里選出\(r\)個無外乎從黑球選\(i\)個再從白球中選\(r-i\)個。
拓展套路
一個形式漂亮的式子
令\(m=n=r\),並且代入\(\begin{pmatrix}a+b\\a\end{pmatrix}=\begin{pmatrix}a+b\\b\end{pmatrix}\)即可。
下定上動
考慮恆等式
組合闡釋1
等式左邊相當於盒子不變,而球從\(n\)變到\(r\),也就是說,選擇球的范圍變小了。
這也就是說,供我們選擇球的個數的范圍為\([r,n]\)。
考慮等式右邊,我們把球編號,並且我們令選出來的編號最大的球的編號為\(k\),那么\(k-1\in[r,n]\),而其他選擇出來的球的編號大小一定\(\le k-1\le r\),也就是相當於在\([1,k-1]\)中任選\(r\)個,而\(k-1\in[r,n]\),所以此時右邊的組合一樣和左邊一樣了。
下動上定
那么上定下動呢?
就是二項式定理,傻瓜
直接證明1
組合闡釋1
左邊相當於給一個\(n\)個元素的集合取子集。
所以取子集的方案數是什么?顯然可以一個元素一個元素地考慮,只考慮一個元素在不在選出的集合內,這樣的話對於每個元素只有\(2\)種選擇,那么總共\(n\)個元素的話就是\(2^n\)種選擇。
【小結】\(n\)球\(m\)盒:盒子區別?球區別?空盒?
-
\(n\)個球 \(m\)個盒子 是否空盒 方案數
-
有區別 有區別 有空盒 \(m^n\)
-
有區別 有區別 無空盒 \(m!{\begin{Bmatrix}n \\ \\m\end{Bmatrix}}\) ,不考慮盒子區別時有\({\begin{Bmatrix}n \\ \\m\end{Bmatrix}}\)種,再乘上\(m!\)。定義在下
-
有區別 無區別 有空盒 \(\sum_i^{\min\{n,m\}} {\begin{Bmatrix}n \\ \\i\end{Bmatrix}}\) ,枚舉多少個盒子有,再斯特林數。
-
有區別 無區別 無空盒 \({\begin{Bmatrix}n \\ \\m\end{Bmatrix}}\),套公式
-
無區別 有區別 有空盒 \(\text{可重組合}(n,m)=\begin{pmatrix}n+m-1\\ n \end{pmatrix}\)
-
無區別 有區別 無空盒 \({\begin{pmatrix}n-1 \\ \\ m-1\end{pmatrix}}\)把球排成一列,然后插在\(n-1\)空里插\(m-1\)個。
-
無區別 無區別 有空盒 \(G(x)=\dfrac 1 {(1-x)(1-x^2)\dots(1-x^{m-1})(1-x^m)}\)的\(x^n\)系數
-
無區別 無區別 無空盒 \(G(x)=\dfrac 1 {(1-x)(1-x^2)\dots(1-x^{m-1})(1-x^m)}\)的\(x^{n-m}\)系數
注:可能不是最優的解法,歡迎交流
定義1
第二類斯特林數,表示將\(n\)個有區別的球放到\(m\)個無區別的盒子,盒子不為空。或者說\(n\)個元素分為\(m\)個非空集合。
計算方式
右邊相當於先讓盒子可以為空,然后容斥,每次枚舉有多少個盒子是空的即可。
證明1:無區別 無區別 有空盒
- 無區別 無區別 有空盒 \(G(x)=\dfrac 1 {(1-x)(1-x^2)\dots(1-x^{m-1})(1-x^m)}\)的\(x^n\)系數。
這個問題就相當於盒子選球,方案有區別當且僅當存在不同數目的某大小的集合,所以就是這樣
答案就是\(x^n\)系數,代表由這些盒子中的球組成了\(n\)個球。
母函數簡化一下
證明2:無區別 無區別 無空盒
先欽定每個盒子里放一個球,再隨便選。化為\(n-m\)個球的有空盒的問題。
的\(x^{n-m}\)系數。
錯排問題
描述
一個排列\(p\),它的錯排\(p'\)的定義是不存在一個位置他們的數相同。
\(D_n\)表示對於排列\(1,2,3,4,5,\dots n\)的錯排的個數。
很顯然錯排個數只和排列長度有關。
遞推公式
考慮我們現在有排列
\(1,2,3,\dots n-1,n\)
將\(n\)和1到n-1任何一個數k互換,然后剩下的\(n-1\)個數進行錯排。注意到錯排個數只和排列長度有關,則有\((n-1)D_{n-1}\)方案。但是我們考慮到k永遠不會回到k原來的那個位置(被n占了),所以還有\(n-1-1=n-2\)個元素進行錯排。得到遞推
\(D_0=1,D_1=0\)
當然可以再設一個\(B_n=nD_n\)然后得到遞推式
然后直接矩陣快速冪\(O(16\log n)\)
求通項(指數型生成函數)
好吧開始必修零點五的(大霧)通項求法吧
構造指數型母函數
根據泰勒展開
所以有
整理得
比較系數
如果你看不懂我也沒辦法,推的辦法就是根據乘法分配律還有\(\dfrac 1 {a}=b \dfrac 1 {ab}\)
所以
但是!這個式子有組合意義。
求通項(組合闡釋)
右邊這個式子就相當枚舉有多少個位置是不動的,此時的方案數就是\(\dfrac {n!} {i!}\),然后容斥即可。最后也是得到上面那個式子。
這個問題告訴我們了,組合意義闡釋法非常牛逼,吊打各種求通項的方法。
組合意義闡釋法非常牛逼,吊打一切求通項的方法。
但是這個式子沒什么卵用
分圓排列(第一類斯特林)
描述
一個\(n\)個人,分成\(m\)個圓排列
遞推關系
組合闡釋1
上式的組合意義十分明顯,要么自己新開一桌\(\begin{bmatrix}n-1 \\ m-1\end{bmatrix}\),要么隨便坐到一個人的右邊\((n-1)\begin{bmatrix}n-1 \\ m\end{bmatrix}\)
擴展套路1
組合意義,右邊表示\(n\)個數的排列。
現在我們的任務就是建立左邊每個圓排列的方案和真正的排列一一對應。
考慮一個排列,
我們考慮一直這樣做:設\(f(i)=a_i\),迭代\(k=f(k)\)。
很顯然,我們一定會出現循環,因為\(k\)只有\(n\)種取值,至多\(n\)次迭代之后,一定會回到原來的那個\(k\)。
也是很顯然,一個排列用這種辦法構造,會多個這樣的循環,這種循環的個數可以對應上幾個桌子。舉個例子
它就對應了以下輪換:
對應一個分圓排列。
我們現在就證明了一個排列可以對應上一個輪換排列。類似的方法可以證明一個輪換可以反過來對應這一個排列。我們現在就把排列和輪換排列一一對應了。
實際上...上述說明方法運用了置換群的思想。沒錯你已經會群論了\(\sqrt {\quad}\)
子集列(第二類斯特林數)
描述
將\(n\)個有區別的球放入\(m\)個無區別的盒子,盒子非空。上面那個小結里就介紹了第一類斯特林數。
或者換一個說法,\(m\)個元素,可重地組合為\(n\)個整體,要求每個元素都被選到。
遞推關系
組合一樣非常明顯,要么自己新建一個集合,要么隨便加入某個已有的集合中。
容斥關系
不再贅述。
反演關系
證明在這里!【總結】容斥原理與反演
特殊值和性質
-
\(\begin{Bmatrix}n\\ \\ 2\end{Bmatrix}=2^n-1,n>0\)
-
\(\begin{Bmatrix}n\\ \\ 3\end{Bmatrix}=\dfrac 1 {3!}(3^n-3\times 2^n+3)=\dfrac {3^{n-1}+1-2^n} {2}\)
-
\(\begin{Bmatrix}n\\ \\ n-1\end{Bmatrix}=\begin{pmatrix}n\\ \\ 2\end{pmatrix}\)
-
\(\begin{Bmatrix}n\\ \\ n-2\end{Bmatrix}=\begin{pmatrix}n\\ \\ 3\end{pmatrix}+3\begin{pmatrix}n\\ \\ 4\end{pmatrix}\)
(雞賊口中的)超級卡特蘭數
歐拉數
調和數
伯努利數
還有些自己也不會。To be continued...