1. 程式人生 > >將球放入盒中的方法數總結(球盒模型問題)

將球放入盒中的方法數總結(球盒模型問題)

本篇部落格主要講解球盒模型問題中所有情況,因為該問題是組合數學中的最常見的一類問題,所以有必要在這裡詳細地說一說。

該類問題涉及到三個因素,分別是球、盒子、盒子是否可以為空。所以大概可以將該問題分為以下八種情況:

1.將r個無區別的球放入n個有標誌的盒中,盒內數目無限制,有多少種情況?

2.將r個有區別的球放入n個有標誌的盒中,沒有一個盒子為空,有多少種情況?

3.將r個無區別的球放入n個有標誌的盒中,沒有一個盒子為空,有多少種情況?

4.將r個有區別的球放入n個無標誌的盒中,沒有一個盒子為空,有多少種情況?

5.將r個有區別的球放入n個有標誌的盒中,盒內數目不限制,有多少種情況?

6.將r個有區別的球放入n個無標誌的盒中,盒內數目不限制,有多少種情況?

7.將r個無區別的球放入n個無標誌的盒中,盒內數目不限制,有多少種情況?

8.將r個無區別的球放入n個無標誌的盒中,沒有一個盒子為空,有多少種情況?

總的來說,分為以下8種情況:

盒子 盒子內數目限制
無區別 有標誌 數目不限
無區別 有標誌 無一空盒
無區別 無標誌 數目不限
無區別 無標誌 無一空盒
有區別 有標誌 數目不限
有區別 有標誌 無一空盒
有區別 無標誌 數目不限
有區別 無標誌 無一空盒

下面開始詳細講解:

1.將r個無區別的球放入n個有標誌的盒中,盒內數目無限制,有多少種情況?

方法數目為:F(n,r)=Crn+r1=(n+r1)!r!(n1)!

本質上是多重組合問題,也就是從n個不同的元素中可重複地選取r個不考慮順序的組合數為F(n,r)

2.將r個有區別的球放入n個有標誌的盒中,沒有一個盒子為空,有多少種情況?

方法數目為:ni=0(1)iCin(ni)r

可以用容斥原理來解答,設Ai表示盒子i為空的情況,那麼方法數就是|A1A2...A
n
|=nrC1n(n1)r+C2n(n2)r+...
+(1)nCnn(nn)r

或者可以從第二類Stirling數的角度來思考,方法數為n!S(r,n),結果和上面的一致。

3.將r個無區別的球放入n個有標誌的盒中,沒有一個盒子為空,有多少種情況?

可以用母函式或者多重組合來解決,方法數為Crnr1=Cn1r1

4.將r個有區別的球放入n個無標誌的盒中,沒有一個盒子為空,有多少種情況?

方法數為第二類Stirling數,S(r,n)=1n!ni=0(1)iCin(ni)r

這裡說明一下,第二類Stirling數S(r,n)就是將r個元素的集合劃分為n個不相交非空子集的方案數。

5.將r個有區別的球放入n個有標誌的盒中,盒內數目不限制,有多少種情況?

這種情況最簡單了,方案數目為nr

也就是每次放一個球,都有n种放法。

6.將r個有區別的球放入n個無標誌的盒中,盒內數目不限制,有多少種情況?

這種情況也是用第二類Stirling數來解決,可以理解為有0個盒子為空,有1個盒子為空,有兩個盒子為空……

方案數目為S(r,1)+S(r,2)+...+S(r,n)

其中,S(r,n)表示劃分成n個子集,也就是沒有一個為空,S(r,n-1)劃分為n-1個子集,也就是有一個盒子為空。

7.將r個無區別的球放入n個無標誌的盒中,盒內數目不限制,有多少種情況?

方法數目為1(1x)(1x2)...(1xn)xr的係數

8.將r個無區別的球放入n個無標誌的盒中,沒有一個盒子為空,有多少種情況?

方法數目為xn(1x)(1x2)...(1xn)xr的係數

第7、8兩種情況較為複雜,在此不做解釋。