n个球放入m个盒子里,8中形式(个人认为盒子有标志的问题相对简单,放在前面写):
比较好的学习资料:
https://blog.csdn.net/Jaster_wisdom/article/details/78506831
https://wenku.baidu.com/view/f981a9b625c52cc58ad6bede.html
第二类斯特林数,S(i,j) 表示i个有标志球放入j个无标注盒子且盒子不为空的方案数。
方案数就为: S(n,m)∗m! S ( n , m ) ∗ m !
递推式: S(i,j)=S(i−1,j−1)+S(i−1,j)∗j S ( i , j ) = S ( i − 1 , j − 1 ) + S ( i − 1 , j ) ∗ j
表达式:
可以用母函数求解后用泰勒展开式得到。或者用容斥原理,用T(i) 表示至少有i个空盒子的方案数,那么没有任何一个空盒的方案数就是 T(0)−T(1)+T(2)+...T(m) T ( 0 ) − T ( 1 ) + T ( 2 ) + . . . T ( m )
T(i)=C(m,i)∗n T ( i ) = C ( m , i ) ∗ n ^ (m−i) ( m − i ) ,代入上式即得等价表达式。
对于每个球有m中决策方案,所以方案数为 nm n m
那方案数就是上述所说的S(n,m) (第二类Stirling数)
就是枚举放几个盒子,然后固定盒子数后转化为问题3
就是 (S(n,1)+S(n,2)+...+S(n,m)) ( S ( n , 1 ) + S ( n , 2 ) + . . . + S ( n , m ) )
隔板法解决,板可以插在(n-1)个球之间,因为分成m份,所以只有m-1个插板,方案数为 C(n−1,m−1) C ( n − 1 , m − 1 )
也是插板法,添加m-1个位置进去,方案数就是 C(n+m−1,m−1) C ( n + m − 1 , m − 1 )
递推式: dp[n][m]=dp[n−m][m]+dp[n−1][m−1] d p [ n ] [ m ] = d p [ n − m ] [ m ] + d p [ n − 1 ] [ m − 1 ]
对于递推式,可以理解为一个单调不递增序列,每次给全部的数加上1,或者在后面新添一个1.
用母函数求出的表达式: 中 xm x m 的系数。
递推式: dp[n][m]=∑(dp[n][i])|i<=m d p [ n ] [ m ] = ∑ ( d p [ n ] [ i ] ) | i <= m
用母函数求出的表达式: 中 xm x m 的系数