在離散數學裡面,組合數是乙個重點。下面就對常見的幾個小球盒子模型進行總結
參考了chengni的這篇文章,在此表示感謝。
注意:
很經典的隔板法模型,相同的物品劃分為幾個不同的集合。設球為n,盒子為m,方案數為
\[ans= \binom
\]這和上面唯一的區別就是允許空盒。不妨假設每個空盒已經被我們放了乙個球,那麼問題就變成了上面的情況,。所以我們可以看做自己有 n+m 個小球,然後我們在排列完之後在每一組都刪去乙個小球,這樣就能列舉出有空盒的情況了。n個球分成m個集合等價於n+m個球分成m個非空集合。
於是答案為
\[ans= \binom
\](在這裡把盒子想成集合會好想一些)
對於每乙個球,你都可以放到1~m的任意位置,所以方案數為
\[ans= m^n
\]對於這個問題有個東西叫做第二類斯特林數。
在數學上,斯特林數有兩類,本文只介紹第二類。
第二類斯特林數(\(s2[n][m]\))的含義:n 個不同的小球放入m個相同的盒子中(且盒子不能為空)的方案數 。它有個遞推公式\(s2[i][j]=s2[i-1][j]\times j+s2[i-1][j-1]\)
我們可以這樣理解:
如果\(i-1\)個元素已經構成了\(j-1\)個集合,那麼第\(i\)個元素單獨構成乙個集合的方案數為\(s2[i-1][j-1]\times 1\)(空的集合都是無序相同的,任選乙個即可);
如果\(i-1\)個元素已經構成了\(j\)個集合,將第\(i\)個元素插入到任乙個集合中的方案數為\(s2[i-1][j]\times j\)(選擇\(j\)個集合中的乙個有\(j\)種選法)。
(在這裡把盒子想成集合會好想一些)
當然,第二類斯特林數還有另乙個公式,需要用到容斥。
\[s2[n][m]=\frac\times \sum^_(-1)^k \binom \times (m-k)^n
\]證明:
為了方便,不妨假設\(a_i\)表示第\(i\)個盒子為空的情況。總方案數為\(s\),則有
\[s=m^n \\
a_i=(m-1)^n
\]\(a_i\):對於每個球,都只有\(m-1\)種選擇。所以是\((m-1)^n\)。
\[a_1+a_2+a_3+a_4+\cdots+a_m=\sum_^a_i=m(m-1)^n=\binom\cdot(m-1)^n
\]這乙個盒子為空的情況,但同時也包含了兩個盒子為空的。兩個盒子為空的方案數如下
\[\sum_^\sum_(a_i\cap a_j)=\binom\cdot(m-1)^n
\]如此推導下去,就可以得出所求第二類斯特林數:
\[s2[i][j]=|\bar\cap\bar\cap\cdots\cap\bar|\\=m^n-\sum_^|a_i|+\sum_^\sum_(a_i\cap a_j)-\cdots+(-1)^|a_1\cap a_2\cap\cdots\cap a_m|\\
=m^n+(-1)\cdot\binom\cdot(m-1)^n+(-1)^2\cdot\binom\cdot (m-2)^n+\cdots+(-1)^k\binom\cdot(m-k)^n\cdots\\
=\sum_^\binom(m-k)
\]最後除乙個 \(m!\) 消掉有序性,如果不除就是有序的
其實就是上乙個問題的最後一句話,「如果不除就是有序的。」
\[ans=m!\cdot s2[n][m];
\]我們可以列舉每次有幾個盒子非空,最後加起來就好了
\[ans=\sum_^s2[n][i]
\]設\(f[i][j]\)表示將\(i\)個球放到\(j\)個盒子的方案數
然後就可以\(n^2\)遞推了。
先假設每個盒子裡都有乙個球,所求即\(ans=f[n-m][m]\)
組合數學 基本計數
計數問題研究的都是有限集合,本文介紹基本的計數方法,並應用它們解決常見的排列與組合問題。首先,回顧下幾個基本的概念及計數的兩個重要法則。概念1 集合元素的 m 元排列 集合a 有n個元素,從這n個元素中取乙個元素,不放回 連續取 m 次,得到序列 a1,a2,am,則稱 該序列為這n個元素的乙個 m...
經典組合數學模型 盒子與球問題
組合數學 盒子與球問題 給定 n 個不同的球,放進 m 個不同的盒子,盒子允許為空,有多少種方案?a 給定 n 個不同的球,放進 m 個不同的盒子,盒子不允許為空,有多少種方案?b 給定 n 個不同的球,放進 m 個相同的盒子,盒子允許為空,有多少種方案?c 給定 n 個不同的球,放進 m 個相同的...
CCA的小球 組合數學 容斥原理
給定 n 個小球,每個小球有顏色,要將它們擺成一行 兩個方案不同,當且僅當存在某個位置,兩種方案擺在這個位置的小球顏色不同。乙個方案合法,當且僅當不存在任意兩個位置相鄰的小球顏色相同,求合法方案數對 10 9 7 取模後的值 首先考慮取反面計算。考慮 兩個方案不同,當且僅當存在某個位置,兩種方案擺在...