組合數學(2)——盒子與球


組合數學(球和盒子)

將球是否相同,盒子是否相同,是否可以有空盒分為八種情況。
將球設為\(n\)個,盒子設為\(m\)個(有空盒指的是可以有空盒)。

1.球相同,盒子不同,無空盒

擋板法,相當於將\(n\)個球分成\(m\)組,相當於在\(n-1\)中插入\(m-1\)塊板子。
結論是:\(C_{n-1}^{m-1}\)

2.球相同,盒子不同,有空盒

在每個盒子里面先放\(1\)個球,一共\(m\)個球,現在就等價於(1)的這個問題。
結論是:\(C_{n+m-1}^{m-1}\)

3.球相同,盒子相同,有空盒

假設\(f[n][m]\)\(n\)個球放到\(m\)個盒子里的方案數。

如果\(n<m\),此時\(m\)個盒子必然裝不滿,\(可得f[n][m] = f[n][n]。\)

如果\(n>=m\),此時可以選擇將盒子放滿或者盒子不放滿。
\(~~~~~(1)\)如果沒放滿,那就減掉一個盒子,此時為\(f[i][j-1]\)
\(~~~~~(2)\)如果放滿了,那就在每個盒子上里放一個球。現在就是\(f[i-j][j]\)
\(f[i][j] = f[i][j-1]+f[i-j][j]\)
得到轉移方程之后考慮邊界條件。

如果沒有球或者只有一個盒子,此時方案數為1,即\(f[0][j] = f[i][1] = 1\)

for(ll i = 0;i <= n;i++){
  for(ll j = 1;j <= m;j++){
      if(j ==  1|| i == 0)f[i][j] = 1;
      else if(i < j) f[i][j] = f[i][i];
      else if(i >= j) f[i][j] = f[i-j][j]+f[i][j-1];
  }
}

4.球相同,盒子相同,無空盒

類比上面問題3的情況,我們發現答案就是\(f[n-m][m]\)的值。

5.球不同,盒子不同,有空盒

對於每一個球,我們可以放在任意一個位置,也就是說每一個球都有\(m\)種取法。
故一共有\(m^n\)種方案數。

6.球不同,盒子相同,無空盒

這個問題需要拓展第二類斯特林數
\(S_2(n,m)\)讀作關於\(n,m\)的第二類斯特林數。
兩種求法:
遞推:
\(S_2(n,m) = S_2(n-1,m-1)+mS_2(n-1,m)\)
單獨看第一個球,如果第一個球獨立存在於一個盒子里面。那么就是\(S_2(n-1,m-1)\)
如果不是如此,那么就是把這個球放在任意的盒子里面。也就是在\(S_2(n-1,m-1)\)的情況下,找一個盒子塞進去一個球,因為有\(m\)個盒子所以就乘\(m\)
容斥:
\(S_2(n,m)=\frac{1}{m!}∑_{k=0}^{m}(−1)^kC_m^k(m−k)^n\)
(說實話可能需要用到多項式的知識,所以完全不會)

聯系問題5,問題6還可以得到一個性質
\(n^k = ∑_{i=0}^{k}S_2(k,i)*i!*C_n^i\)
什么意思呢?
左邊指的是,\(k\)個球任意的放在\(i\)個盒子里(5)
右邊,我們枚舉有多少個非空的盒子數\(i\)(盒子不同,乘上\(i!\)),再乘上我們選盒子的方案數。

S[0][0]=1;
for(int i=1;i<=n;i++){
  for(int j=1;j<=i;j++){
    S[i][j]=S[i-1][j-1]+j*S[i-1][j];
  }
}

7.球不同,盒子不同,無空盒

與上面問題6基本相同,只需要乘\(m!\)即可
\(m!*S_2(n,m)\)

8.球不同,盒子相同,有空盒

也是對6的拓展,只需要枚舉非空盒子的對應的方案數量即可 。
\(\sum_{i=1}^{m}S_2(n,i)\)

對於這個問題我們再引入一個數列——貝爾數
貝爾數\(B_n\)更常見的定義為,將\(n\)個數的集合所有的划分方式,你可以認為這是問題8在盒子數與球數相同時的解。
它有一個遞推公式:
\(B_{n+1} = \sum_{k=0}^nC_n^kB_k\)
證明:
假設,\(B_{n+1}\)是含有\(n+1\)個元素集合的划分個數。
先單獨拿出一個一個元素。
這個元素分為一類,剩下\(n\)個元素,有\(C_n^nB_n\)
這個元素和某1個單獨元素分成一類,\(C_n^{n-1}B_n\)
這個元素和某2個單獨元素分成一類,\(C_n^{n-2}B_n\)
求和可得。

在關注問題8和貝爾數就可以得到貝爾數和第二類斯特林數的關系。
\(B_n = \sum_{k=0}^nS_2(n,k)\)

以上就是盒子和小球小小的總結。


免責聲明!

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



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