詳解組合數相關性質


淺談組合數相關性質

本篇隨筆簡單講解一下數學中組合數的相關性質。並且,因為博主是一名\(OIer\)(否則為啥要在高一學組合數),所以在本篇隨筆中還會側重組合數在信息學奧林匹克競賽中的應用。綜上所述,本篇隨筆乃是學數學的,學\(OI\)的,學玄學的,學哲學的同志們的學習佳選。(不要個臉)

組合數的概念

這個板塊是為對組合數毫無概念的同學留的。因為名字叫做組合數,所以肯定是和組合有關系的。

我們定義:\(C_n^m\)為在\(n\)個元素中選擇\(m\)個元素的不同組合數量,即組合數。

啥叫組合呢?

簡單來講,對於一個集合來講,從中隨便拿出任意個元素所構成的一個子集就是組合。需要注意的是,組合和排列不一樣,排列的數量還取決於取出的順序,但是組合的數量只取決於這個組合中有什么元素。

比如,\((1,2,3)\)\((3,2,1)\)是同一個組合。

附錄:

如果還不是很明白的小伙伴,可以參考蒟蒻的這篇博客:

排列組合相關知識

組合數公式:

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

組合數的基本性質

規定

硬性規定,沒有為什么。就像規定\(0!=1\)一樣,不講道理。

\(C_n^0=1\)\(C_n^n=1\)\(C_0^0=1\)

互補性

\[C_n^m=C_n^{n-m} \]

這個性質口胡起來就是,在含有\(n\)個元素的集合中選中\(m\)個元素的組合數等於在這個集合中選中\(n-m\)個元素的組合數。

這個性質很好理解和想象。我們每一次搞出一個還沒有選過並合法的組合時,總會對應着一個這個組合的補集,而這些補集湊在一起就是\(C_n^{n-m}\)

這個性質很重要!

組合恆等式

除了互補性,還有一個前導公式:

\[C_{n+1}^m=C_n^m+C_n^{m-1} \]

對於這個公式的理解,可以抽象一下:我們可以把\(C_{n+1}^m\)看成原本的\(n\)個元素中加入了一個新元素,那么根據分類計數原理,我們之前已經求出的組合數\(C_n^m\)中顯然少了含有這種新元素的情況。那么就把它加上就好。因為選中這個新元素必定要把一種老元素剔除掉,所以應該加上\(C_n^{m-1}\)

組合數的求解

光知道這些數學知識,在\(OI\)中可是沒什么用。所以我們還要了解組合數的求法,在考場上熟練求解組合數,用它解決更大的問題。

首先,組合數可以用公式求(廢話)。我們暴力套用公式,可以求出不爆\(Longlong\)的組合數。但是這種方法在多次求解組合數的時候顯得比較雞肋。因為多次求解組合數,如果再套公式就會大大增加時間復雜度。這個時候我們可以考慮弄出一份階乘表,快速調用階乘答案,來降低時間復雜度。

然后,我就要介紹信競中最常用的組合數求法——

組合數遞推法

組合數是可以遞推求的。就是說,所有的組合數都可以由前面的組合數推導而來。

為什么呢?

就是因為上面證明過的那個公式:

\[C_{n+1}^m=C_n^m+C_n^{m-1} \]

我們令\(n=n-1\),那么就得出新公式:

\[C_n^m=C_{n-1}^m+C_{n-1}^{m-1} \]

那么,組合數\(C_n^m\)就可以通過遞推來求解了。

初值是組合數硬性規定:

\(C_0^0=0\)\(C_0^i=C_0^1=C_1^1=1\)

然后就可以開始遞推了。

遞推公式是:

\[f[i][j]=f[i-1][j]+f[i-1][j-1] \]

我們發現,這個遞推公式和另一個遞推公式差不多——

楊輝三角

關於楊輝三角,如有蒙圈的小可愛請觀摩我的這篇博客:

楊輝三角知識點詳解

總結:

掌握組合數的概念,知道組合互補性質和組合恆等式的推導過程和結論。掌握組合數求解的通項公式法和遞推公式法

對於組合數求解,有很多題目還卡遞推求解,這個時候要再學習一些優化和卡常技巧。希望同學們能夠在之后的題目中多多體會和掌握理解。


免責聲明!

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



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