「筆記」組合數學


組合數學

寫在前面

題做不動了,來寫點筆記

計數原理

抽屜原理

\(n + 1\) 件物品放入 \(n\) 個抽屜里,至少有一個抽屜放了 \(2\) 個物品

這不是很顯然?

容斥原理

在計數時,必須注意沒有重復,沒有遺漏。為了使重疊部分不被重復計算,人們研究出一種新的計數方法,這種方法的基本思想是:先不考慮重疊的情況,把包含於某內容中的所有對象的數目先計算出來,然后再把計數時重復計算的數目排斥出去,使得計算的結果既無遺漏又無重復,這種計數的方法稱為容斥原理。——百度百科

類似於去交集並集之類的。功能很明確,計數時沒有重復沒有遺漏,結合實際問題可能要復雜些,腦子不夠用

組合問題分類

具體分為四種:

  • 存在性問題:判斷滿足某種條件的情況或狀態是否存在
  • 計數性問題:存在多少種滿足某種條件的情況或狀態
  • 構造性問題:如果以判斷出滿足某種條件的狀態是存在的,那么如何構造出來
  • 最優化問題:找出某種評價標准下的最佳(或較佳)構造方案

排列

\(n\) 個物品中選 \(k\) 個物品的方案數,(先后順序不同為兩種方案)

\[P(n, k) = \frac{n!}{(n - k)!} \]

圓排列

\(n\) 個物品中選 \(k\) 個不分首尾的圍成一個圓圈

方案數為:

\[\frac{P(n, k)}{k} = \frac{n!}{(n - k)! \times k} \]

組合

\(n\) 個物品中選 \(k\) 個,(先后順序不同為一種方案)

定義式:

\[\binom{n}{m} = \frac{n!}{m!(n - m)!} \]

或者

\[C_n^m = \frac{n!}{m!(n - m)!} \]

Lucas 定理

就是一個公式:

\[C^m_n = C_{n/p}^{m/p} \times C_{n \ mod \ p}^{m \ mod \ p} \]

也可以寫作:

\[Lucas(n, m) = Lucas(n / p, m / p) \times C_{n \ mod \ p}^{m \ mod \ p} \]

其中 \(Lucas(n, 0) = 1\) ,利用這個在遞歸的時候返回即可

一般應用於 \(n\)\(m\) 很大的時候,可以大大簡化運算,但要注意 \(p\) 必須是質數

如果模數不是很大,可以預處理出 \(1 \sim mod - 1\) 的階乘和逆元進行優化

例題P3807【模板】盧卡斯定理

組合數學的一些思想方法

插板法

一個典型的例子

\(n\) 個小球放進 \(k\) 個箱子里,求有多少種放法

  • 空隙間必須有值的情況(每個箱子里至少有一個球):

考慮將 \(n\) 個小球排成一列,每兩個小球間會有一個空隙,一共有 \(n - 1\) 個空隙。把箱子看成板子,插入空隙里,顯然只要插 \(k - 1\) 個板子就能把小球分成 \(n\) 份,所以答案為

\[C_{n - 1}^{k - 1} \]

  • 空隙間可以為空的情況(箱子里可以不放球):

與上面不同的是,兩個板子可以同時插在一個地方,所以相當於多了 \(k\) 個可以插的地方,所以答案為:

\[C_{n + k - 1}^{k - 1} \]

幾個問題

Question 1

\(n\) 個不同元素,選 \(r\) 個,可重復選,求方案數
求證: \(ans = C_{n + r - 1}^{r}\)

思路:

設當 \(n\) 個元素中選 \(r\) 個不重復的元素時

\[1 \le x_1 < x_2 < ... < x_r \le n \]

那么當從 \(n\) 個元素中選 \(r\) 個可重復的元素時

\[1 \le x_1 \le x_2 \le ... \le x_r \le n \]

\(y_i = x_i + i - 1\)

那么上式可表示為

\[1 \le y_1 < y_2 < y_3 < ... < y_r \le n + r - 1 \]

發現與第一個不等式形式相同,所以答案類似是 \(C_{n + r - 1}^{r}\)

因為對於每個 \(x_i\) 都有唯一的 \(y_i\) 與之對應,所以問題的答案也為 \(C_{n + r - 1}^{r}\)

證畢。

Question 2

\(n\) 個元素,從中選 \(r\) 個不相鄰的元素,求方案數
求證: \(ans = C_{n - r + 1}^{r}\)

思路同 Question 1, 把 \(y_i = x_i + i - 1\) 改為 \(y_i = x_i - i + 1\),用相同的思路去推導即可

Question 3

\[\sum_{k=1}^{n}(C_{n}^{k})^2 \]

解:

\[\begin{alignedat}{3} \sum_{k=1}^{n}(C_n^k)^2 & = \sum_{k=1}^{n}C_{n}^{k} \times C_{n}^{k} \\ & = \sum_{k=1}^{n}C_{n}^{k} \times C_{n}^{n - k} \\ & = C_{2n}^{n} \\ \end{alignedat} \]

然后就做完了。

這樣做的意義是啥?
這就是在前 \(n\) 個元素中選 \(k\) 個,在后 \(n\) 個元素中選 \(n - k\) 個(選 \(k\) 個和選 \(n -k\) 個是一個意思)的方案數

為什么 \(C_{2n}^{2k}\) 不對?
因為這樣你無法確定在前 \(n\) 個元素中選擇了幾個,在后 \(n\) 個元素中選擇了幾個

組合數及其相關性質

\(C_{n+m}^{n} = C_{n+m}^m\)

實際意義:從 \(n+m\) 個元素中選 \(n\) 個元素的方案數與選 \(m\) 個元素 剩下 \(n\) 個元素的方案數相同

\(C_{n}^{m} = C_{n - 1}^{m - 1} + C_{n - 1}^{m}\)

暴力推導

\[\frac{(n - 1)!}{(m-1)! (n - m)!} + \frac{(n - 1)!}{m! (n - m - 1)!} = \frac{n!}{m!(n - m)!} \]

對左式進行通分合並就可以得到右式了

過程也很簡單,在這里就不贅述了

實際意義:從 \(n\) 個里面選 \(m\) 個,對於最后一個元素,我們考慮兩種情況:選或不選。如果選,那么還要在剩下的 \(n - 1\) 個元素中選擇 \(m - 1\) 個元素;如果不選,那么還要在剩下的 \(n - 1\) 個元素中選擇 \(m\) 個元素。
兩種情況是並列的,因此把兩種情況的方案數加起來即可。

其實這個式子還有另外一個名字:組合數的遞推式。
也就是你可以從 \(C_{1}^{1}\) 采用遞推的方式推到 \(C_{n}^{m}\)
如果你把整個遞推出來的三角形列出來的話,會發現這是一個楊輝三角
各位有興趣的話可以稍微在打草紙上一划,就很容易看出

\(C_{n+r+1}^{r} = C_{n+r}^{r} + C_{n + r-1}^{r-1} + ... + C_{n}^{0}\)

這個式子其實可以從上面那個式子進行更進一步的推導推出來

即來考慮更多的元素是否選擇的情況

\(C_{n}^{l}C_{l}^{r} = C_{n}^{r}C_{n-r}^{l-r}\)

實際意義:在 \(n\) 個元素中先選 \(l\) 個元素,再在這 \(l\) 個元素中選 \(r\) 個元素的方案 等於 在 \(n\) 個元素中先選 \(r\) 個元素,再在剩下的 \(n - r\) 個元素中選擇 \(l - r\) 個元素的方案。因為兩次操作是遞進的(或者說有先后的),所以計算的時候是相乘的形式,也就是上面的捏個等式

\(C_{n}^{0} + C_{n}^{1} + ... + C_{n}^{n} = 2^n\)

含義\(n\) 個元素,從中選任意個元素的方案數。

考慮對每個元素選或不選,對於每個元素都有兩條路可走,所以 \(n\) 個元素隨便選或不選的方案數為 \(2^n\)

另一個含義:把 \(n\) 個元素看做一個長度為 \(n\) 的 01 串,那么這個串中的 \(1\) 的個數對應着每種方案(或是 \(0\) 的個數),又因為這個 01 串能表示的數有 \(0 \to 2^n - 1\)\(2^n\) 個數,所以上式的方案數為 \(2^n\).

\(C_{n}^{0} - C_{n}^{1} + C_{n}^{2} - ... = 0\)

一種理解方式:上面的式子可以看做從 \(n\) 個元素中選 偶數 個和選 奇數 個的方案是一樣的。考慮一個新加的東西選或不選,如果選的話,肯定會由原來的 奇數個 變成 偶數個 (或者 偶數個 變成 奇數個);如果不選的話,就不發生改變。因為兩種情況是等概率出現的,因此從 \(n\) 個元素中選 奇數個 和選 偶數個 的方案數相同

\(C_{r}^{r} + C_{r+1}^{r} + ... + C_{n}^{r} = C_{n + 1}^{r + 1}\)

好像和上面某個式子的推導思想一樣來

二項式定理

\[(x+y)^n = \sum_{i = 0}^{n}C_{n}^{i} x^i y^{n-i} = \sum_{i = 0}^{n}C_{n}^{i} x^{n-i} y^i \]


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM