n个球放k个盒子问题归纳
问题描述:有n个球,放进k个盒子,有多少种不同的放法?(球必须全部放在盒子中,不能丢弃)
球可能相同,也可能不相同,盒子亦然。另外,盒子可以没有限定,可以最多一个球,可以最少一个球,所以有12种情况。
情况 | 球是否相同 | 盒子是否相同 | 盒子的限制 | 答案 |
---|---|---|---|---|
1 | 不同 | 不同 | 不限制 | k n k^n kn |
2 | 不同 | 不同 | 最多1个 | A k n A_{k}^{n} Akn |
3 | 不同 | 不同 | 最少1个 | k ! ⋅ S ( n , k ) k!\cdot S\left(n,k\right) k!⋅S(n,k) |
4 | 相同 | 不同 | 不限制 | C n + k − 1 k − 1 C_{n+k-1}^{k-1} Cn+k−1k−1 |
5 | 相同 | 不同 | 最多1个 | C k n C_k^n Ckn |
6 | 相同 | 不同 | 最少1个 | C n − 1 k − 1 C_{n-1}^{k-1} Cn−1k−1 |
7 | 不同 | 相同 | 不限制 | ∑ i = 1 k S ( n , i ) \sum_{i=1}^{k}S\left(n,i\right) ∑i=1kS(n,i) |
8 | 不同 | 相同 | 最多1个 | 1 1 1 |
9 | 不同 | 相同 | 最少1个 | S ( n , k ) S\left(n,k\right) S(n,k) |
10 | 相同 | 相同 | 不限制 | D ( n , k ) D\left(n,k\right) D(n,k) |
11 | 相同 | 相同 | 最多1个 | 1 1 1 |
12 | 相同 | 相同 | 最少1个 | D ( n − k , k ) D\left(n-k,k\right) D(n−k,k) |
如果盒子的限制是最多一个,那么要求
n
≤
k
n \le k
n≤k
如果盒子的限制是最少一个,那么要求
n
≥
k
n \ge k
n≥k
否则答案为0
各种情况详解
1.每个球都有 k k k 种盒子可以放,乘法原理得答案为 k n k^n kn 。
2.每个盒子最多一个球,那么盒子只有两种状态,没有球或者有一个球,先用组合数 C k n C_k^n Ckn 选出有球的盒子,球各不相同,所以再乘 n ! n! n! 。最终答案为 A k n A_{k}^{n} Akn 。
3.
S
(
n
,
k
)
S\left( n,k \right)
S(n,k):第二类斯特林数,将n个不同元素划分为k个非空集合的划分方法数。递推公式:
S
(
n
,
k
)
=
S
(
n
−
1
,
k
−
1
)
+
k
⋅
S
(
n
−
1
,
k
)
S\left( n,k \right)=S\left( n-1,k-1 \right)+k\cdot S\left( n-1,k \right)
S(n,k)=S(n−1,k−1)+k⋅S(n−1,k) 。
由于盒子各不相同,所以需要再乘盒子的排列
k
!
k!
k! 。
4.隔板法,由于每个部分可以为空,所以相当于 k − 1 k-1 k−1 个隔板与这 n n n 个球任意排列,也就是组合数 C n + k − 1 k − 1 C_{n+k-1}^{k-1} Cn+k−1k−1 。
5.每个盒子最多一个球,那么盒子只有两种状态,没有球或者有一个球.用组合数 C k n C_k^n Ckn 选出有球的盒子即可.
6.隔板法,由于每个部分不能为空,所以 n n n 个球有 n − 1 n-1 n−1 个位置,用组合数 C n − 1 k − 1 C_{n-1}^{k-1} Cn−1k−1 选择 k − 1 k-1 k−1 个位置插入隔板即可。
7.和第3种情况类似,由于盒子可以为空,所以可以看成将 n n n 个不同的元素划分为 1 ∼ k 1\sim k 1∼k 个非空集合,答案为 ∑ i = 1 k S ( n , i ) \sum_{i=1}^{k}S\left(n,i\right) ∑i=1kS(n,i) 。
8.每个盒子最多一个球,那么盒子只有两种状态,没有球或者有一个球。不区分盒子,每个球都找一个盒子就可以了。
9.和第7种情况类似,盒子不能为空,所以可以看成将 n n n 个不同的元素划分为 k k k 个非空集合,答案为 S ( n , k ) S\left(n,k\right) S(n,k) 。
10.划分数。总划分数
D
(
n
,
k
)
D\left( n,k \right)
D(n,k) 是指将正整数
n
n
n 划分为不超过
k
k
k 个正整数的划分总数。考虑
D
(
n
,
k
)
D\left( n,k \right)
D(n,k) ,如果至少一个盒子不放球,就有
D
(
n
,
k
−
1
)
D\left( n,k-1 \right)
D(n,k−1) 种方法,如果所有盒子都放球,那么从每个盒子中拿出一个球,剩余
n
−
k
n-k
n−k 个球,相当于把这
n
−
k
n-k
n−k 个球放到
k
k
k 个盒子中,即
D
(
n
−
k
,
k
)
D\left( n-k,k \right)
D(n−k,k) 。可得递推公式
D
(
n
,
k
)
=
{
D
(
n
,
k
−
1
)
+
D
(
n
−
k
,
k
)
,
n
≥
k
D
(
n
,
k
−
1
)
,
n
<
k
D\left( n,k \right)=\left\{\begin{matrix} D\left( n,k-1 \right) +D\left( n-k,k \right),n\ge k\\ D\left( n,k-1 \right) ,n < k \end{matrix}\right.
D(n,k)={D(n,k−1)+D(n−k,k),n≥kD(n,k−1),n<k
11.每个盒子最多一个球,那么盒子只有两种状态,没有球或者有一个球。不区分盒子,每个球都找一个盒子就可以了。
12.即第10种情况每个盒子都放球, D ( n − k , k ) D\left(n-k,k\right) D(n−k,k)