淺談多重集排列組合


淺談多重集排列組合

本篇隨筆簡單講解一下數學中的多重集排列組合。


一、多重集概念

集合的概念是唯一性。

多重集的特點就是不唯一性。

也就是同一種元素可以在多重集里面多次出現。

也就是multiset。


二、多重集排列數

假設多重集一共有\(N\)個元素。那么對這\(N\)個元素全排列,除掉相同元素的全排列的積即可。

也就是:

\[A=\frac{N!}{n_1!n_2!\cdots n_k!} \]

很顯然,先把所有可能,也就是全排列處理出來,然后相同元素可以隨意互換位置,按乘法原理除下去就行。


三、多重集組合數

多重集組合數這里比較難想。好好理解。

如果正着想,反正蒟蒻智商沒有太通。

不妨反着來:對於有\(N\)種元素的多重集\(S\),選\(K\)個元素,注意是個不是種,的可行方案數。可以變成:現在有\(N\)個籃子,把\(K\)個元素扔進這些籃子里的方案數。

注意,這種是特殊情況,也就是說,每種元素無限多個可供挑選。

這樣的話,用隔板法解決問題。

容易得出,答案也就是\(C_{N+K-1}^{N-1}\)

解釋一下,現在有\(K\)個元素,分成\(N\)堆,也就是要往里插入\(N-1\)塊板。按理講應該是\(C_{K+1}^{N-1}\),但是因為允許有空集,也就是不插,那么就相當於每塊板子插進去之后又產生了新元素,所以是這個答案。

那么,根據多重集的限制,現在每種元素有一個數量上限,怎么辦呢?

很簡單,采用容斥原理。關於容斥原理,請見:

淺談容斥原理

上限是“至多放\(f[i]\)個”,那么如果我往這個里面放\(f[i]+1\)個,是不是就不合法了?

把不合法的減去即可。

式子就不寫了,大家知道這么回事就行。

推薦例題:

CF451E


免責聲明!

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



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