組合數學 8種盒子放球問題

2021-09-25 14:23:14 字數 2426 閱讀 4436

這篇部落格總結一下下邊8種問題:

1. 有n個相同的球,k個不同的盒子,把n個球放到盒子裡,盒子不允許為空,有多少種方案。

2. 有n個相同的球,k個不同的盒子,把n個球放到盒子裡,盒子允許為空,有多少種方案。

3. 有n個相同的球,k個相同的盒子,把n個球放到盒子裡,盒子允許為空,有多少種方案。

4. 有n個相同的球,k個相同的盒子,把n個球放到盒子裡,盒子不允許為空,有多少種方案。

5. 有n個不同的球,k個相同的盒子,把n個球放到盒子裡,盒子不允許為空,有多少種方案。

6. 有n個不同的球,k個相同的盒子,把n個球放到盒子裡,盒子允許為空,有多少種方案。

7. 有n個不同的球,k個不同的盒子,把n個球放到盒子裡,盒子不允許為空,有多少種方案。

8. 有n個不同的球,k個不同的盒子,把n個球放到盒子裡,盒子允許為空,有多少種方案。

1. 有n個相同的球,k個不同的盒子,把n個球放到盒子裡,盒子不允許為空,有多少種方案。

這個問題等價於求n=a1+a2+a3+...ak ,ai不能為0的方案數。隔板法,插空法。

把n個相同的球放在一行,那麼這n個球中間有n-1個空,那麼在這n-1個空中選k-1個空,放k-1個隔板,就把這n個球分成了k份。

所以方案數為c(n-1,k-1)  , 組合數公式,表示從n-1個取k-1個的方案數。

例題: 牛客網 

2. 有n個相同的球,k個不同的盒子,把n個球放到盒子裡,盒子允許為空,有多少種方案。

和問題1方法一樣,這個允許盒子為空。n=a1+a2+a3+...ak ,ai可以為0的方案數。

這個題等價於 有n+k個相同的球,k個不同盒子,盒子不許為空的方案數。因為:把這n+k個球分到k個盒子之後,把每個盒子裡的球的數量都減一,那麼球的總數就是n個了,盒子裡的球就可能是空的了。

所以方案數為 c(n+k-1,k-1).

例題: 牛客網 

3. 有n個相同的球,k個相同的盒子,把n個球放到盒子裡,盒子允許為空,有多少種方案。

這是一道動態規劃題,用dp[i][j]表示把n個球放到不超過k個盒子裡的方案數。

我們可以根據有沒有空盒子列出下面這個轉移方程:

dp[i][j]=dp[i][j-1]+dp[i-j][j]   ,解釋一下:

dp[i][j-1] 表示有空盒子,那麼就是i個球放到不超過j-1個盒子的方案數

dp[i-j][j] 表示沒有空盒子,那麼每個盒子最少要有1個球,那麼先把每個盒子放乙個球,還剩下i-j個球,把剩下的i-j個球分到不超過j個盒子。

dp[n][k]就是答案。

4. 有n個相同的球,k個相同的盒子,把n個球放到盒子裡,盒子不允許為空,有多少種方案。

和第3個方法一樣,也是動態規劃,dp[i][j]表示的意義和第3題一樣。

答案應該是 dp[n][k]-dp[n][k-1].

顯然,(n個球放到k個相同的盒子,盒子允許為空的方案數)減去(n個球放到k-1個盒子,盒子允許為空的方案數)就是 (n個球放到k個盒子,盒子不允許為空的方案數)。

5. 有n個不同的球,k個相同的盒子,把n個球放到盒子裡,盒子不允許為空,有多少種方案。

用s(n,k)表示n個不同的球,放到k個不同的盒子,盒子不允許為空的方案數。

那麼 s(n,k)=s(n-1,k-1)+k*s(n-1,k)    1<=k<=n  s(0,0)=1,s(i,0)=0

解釋一下怎麼理解這個狀態轉移方程,第n個球可以有兩種狀態,第n個球單獨在乙個盒子裡,第n個球所在盒子至少有兩個。

s(n-1,k-1) 就是第n個球單獨在乙個盒子裡,那麼就剩n-1個不同球,分到剩下的k-1個盒子裡。

k*s(n-1,k) :先把前i-1個分配到k個盒子裡,方案數是s(n-1,k) ,第n個球然後就有k種方法,總方案數就是k*s(n-1,k)

dp打出乙個二維陣列的表,就能算出答案

6. 有n個不同的球,k個相同的盒子,把n個球放到盒子裡,盒子允許為空,有多少種方案。

和第5題方法一樣,答案就是 s(n,1)+s(n,2)+.....s(n,k)

顯然是這樣的,不解釋。

7. 有n個不同的球,k個不同的盒子,把n個球放到盒子裡,盒子不允許為空,有多少種方案。

和第5題的區別是盒子不同,那麼答案就是 s(n,k)*k!

8. 有n個不同的球,k個不同的盒子,把n個球放到盒子裡,盒子允許為空,有多少種方案。

k的n次方,每個球都有k中選擇。

組合數學放球模型

n個球無區別,m個盒有區別,可有空盒 c n m 1,m 1 n個球無區別,m個盒無區別,可有空盒 c n m 1,m 1 m 在n m 1個球中選m 1個變成板 n個球無區別,m個盒有區別,沒有空盒 c n 1,m 1 n個球無區別,m個盒無區別,沒有空盒 c n 1,m 1 m 在n 1個空隔中...

經典組合數學模型 盒子與球問題

組合數學 盒子與球問題 給定 n 個不同的球,放進 m 個不同的盒子,盒子允許為空,有多少種方案?a 給定 n 個不同的球,放進 m 個不同的盒子,盒子不允許為空,有多少種方案?b 給定 n 個不同的球,放進 m 個相同的盒子,盒子允許為空,有多少種方案?c 給定 n 個不同的球,放進 m 個相同的...

組合數學之放球問題 附斯特林數

放球問題在組合數學中是乙個經典問題,在acm比賽中也經常會出現類似的題目,這裡做乙個歸納。我們假定現在有n個球,要放到m個盒子中,根據情況的不同主要可以分為一下8類 這裡確保n m 編號n個球是否有區別 m個盒子是否有區別 是否允許空盒1否 否是2否 否否3否 是否4否 是是5是 否否6是 否是7是...