對於小球放盒子問題,可分為以下的八種情況。
\(1、\)盒子相同,球相同,不允許空。
這個其實就相當於整數划分問題,就是把球看做數字,把盒子看做每一份。設\(f[i][j]\)為考慮了前\(i\)個,分成了\(j\)份,轉移方程為:
\[f[i][j]=f[i-1][j-1]+f[i-j][j] \]
\(2、\)盒子相同,球相同,允許空。
這個東西就是剛剛求的那個整數划分的前綴和。
\(3、\)盒子相同,球不同,不允許空。
第二類斯特林數,設\(f[i][j]\)表示處理了前\(i\)個球 ,用了\(j\)個盒子,轉移方程為:
\[f[i][j]=f[i-1][j-1]+f[i-1][j]*j \]
這個東西的含義就是討論當前新加入的球要放哪,第一種放法就是再開一個盒子:\(f[i][j]+=f[i-1][j-1]\),第二種方法就是在前面的\(j\)個盒子里隨便挑一個放進去,因為有\(j\)個盒子,所以\(f[i][j]+=f[i-1][j]*j\)。
\(4、\)盒子相同,球不同,允許空。
第二類斯特林數的前綴和。其實就是看最后放了幾個盒子,剩下的都是空的,加起來即可。
\(5、\)盒子不同,球相同,不允許空。
比較經典的隔板法,把\(m\)盒子看做\(m-1\)個木板,然后要插入到\(n-1\)個空隙里,所以答案就是\(\large C_{n-1}^{m-1}\)。
\(6、\)盒子不同,球相同,允許空。
這個就是上一個的變形,可以添加\(m\)個小球放到這\(m\)個盒子里,這樣就保證了盒子非空,答案就是\(\large C_{n+m-1}^{m-1}\)。
\(7、\)盒子不同,球不同,不允許空。
這個是第二類斯特林數\(*m!\),具體怎么證明不太會,好像就是把斯特林數換一種寫法 ,然后消掉有序性。
\(8、\)盒子不同,球不同,允許空。
對於每一個小球都可以放到\(m\)個盒子里,答案就是\(m^n\)。
