数学杂谈:小球分装问题

  • 数学杂谈:小球分装问题
    • 1. 问题描述
    • 2. 题目解答
      • 1. n个相同的小球,分装到k个不同的盒子当中
        • 1. 不允许空盒的情况
        • 2. 允许空盒的情况
      • 2. n个相同的小球,分装到k个相同的盒子当中
        • 1. 不允许空盒的情况
        • 2. 允许空盒的情况
      • 3. n个不同的小球,分装到k个不同的盒子当中
        • 1. 允许空盒的情况
        • 2. 不允许空盒的情况
        • 3. 一个有趣的推论
      • 4. n个不同的小球,分装到k个相同的盒子当中
        • 1. 不允许空盒的情况
        • 2. 允许空盒的情况
    • 3. 结果整理
    • 4. 附录:组合数常见公式

1. 问题描述

n n n个小球分装到 k k k个盒子当中,问共有多少种分装方式?

这道题其实算是组合问题中最常见的问题形式之一了,以前应该做过很多次了,不过最近有偶然遇到了,就打算稍微整理一下。

2. 题目解答

这道题乍看其实挺简单的,不过其实按照小球以及盒子是否可以相互区分,可以进一步分为下述四个题目:

  1. n个相同的小球,分装到k个相同的盒子当中
  2. n个相同的小球,分装到k个不同的盒子当中
  3. n个不同的小球,分装到k个相同的盒子当中
  4. n个不同的小球,分装到k个不同的盒子当中

其中,相同也就意味着和顺序无关,即交换位置对结果不产生影响。而不同则代表着与顺序有关,也就是说交换顺序会产生新的分装。

更进一步地,其实对于分装还可以根据是否可以允许空盒的存在进行一下区分,不过这方面的情况其实相对要简单一些,我们假设不允许空盒的情况下答案为 f ( n , k ) f(n,k) f(n,k),而允许空盒的情况下答案为 g ( n , k ) g(n, k) g(n,k),则总有:

  1. 当盒子不可区分的情况下:

    g ( n , k ) = ∑ i = 1 k f ( n , i ) g(n,k) = \sum\limits_{i=1}^{k}f(n,i) g(n,k)=i=1kf(n,i)

  2. 当盒子可以区分的情况下:

    g ( n , k ) = ∑ i = 1 k C k i ⋅ f ( n , i ) g(n,k) = \sum\limits_{i=1}^{k}C_{k}^{i} \cdot f(n, i) g(n,k)=i=1kCkif(n,i)

下面,我们来分别考察一下上述四种情况下的具体答案。

1. n个相同的小球,分装到k个不同的盒子当中

这种情况就是我们在高中当中最常遇到的问题了,只要把 k k k个盒子视为 k − 1 k-1 k1个挡板,我们就能够秒算答案。

1. 不允许空盒的情况

在不允许空盒的情况下,挡板显然只能放在 n n n个小球构成的 n − 1 n-1 n1个间隔位置上,我们从中选择 k − 1 k-1 k1个位置即可。

因此,答案就是:

f ( n , k ) = C n − 1 k − 1 f(n, k) = C_{n-1}^{k-1} f(n,k)=Cn1k1

2. 允许空盒的情况

对于可以允许空盒的情况,我们就只要考察 n n n个小球与 k − 1 k-1 k1个挡板的排列数即可。

此时,我们也能够直接得到答案如下:

g ( n , k ) = C n + k − 1 k − 1 g(n, k) = C_{n+k-1}^{k-1} g(n,k)=Cn+k1k1

当然,我们也可以使用 g ( n , k ) g(n,k) g(n,k) f ( n , k ) f(n,k) f(n,k)的关系求得上述答案,即:

g ( n , k ) = ∑ i = 1 k C k i ⋅ f ( n , i ) = ∑ i = 1 k C k i ⋅ C n − 1 i − 1 = ∑ i = 1 k C k i ⋅ C n − 1 n − i = ∑ i = 0 n C k i ⋅ C n − 1 n − i = C n + k − 1 k − 1 \begin{aligned} g(n, k) &= \sum\limits_{i=1}^{k}C_{k}^{i} \cdot f(n, i) \\ &= \sum\limits_{i=1}^{k} C_{k}^{i} \cdot C_{n-1}^{i-1} \\ &= \sum\limits_{i=1}^{k} C_{k}^{i} \cdot C_{n-1}^{n-i} \\ &= \sum\limits_{i=0}^{n} C_{k}^{i} \cdot C_{n-1}^{n-i} \\ &= C_{n+k-1}^{k-1} \end{aligned} g(n,k)=i=1kCkif(n,i)=i=1kCkiCn1i1=i=1kCkiCn1ni=i=0nCkiCn1ni=Cn+k1k1

两者是完全相同的。

2. n个相同的小球,分装到k个相同的盒子当中

1. 不允许空盒的情况

对于相同的小球和相同的盒子的情况,我们不妨令盒子中的小球数目是按照从大到小排列的,此时,我们只需要不断地考察最后一个小盒当中的小球数量,我们就能够给出迭代公式:

f ( n , k ) = ∑ i = 1 i × k ≤ n ∑ j = 1 k − 1 f ( n − i × k , j ) f(n, k) = \sum\limits_{i=1}^{i \times k \leq n}\sum\limits_{j=1}^{k-1}f(n-i \times k, j) f(n,k)=i=1i×knj=1k1f(ni×k,j)

其中,满足条件:

  1. f ( n , n ) = 1 f(n, n) = 1 f(n,n)=1
  2. f ( n , 1 ) = 1 f(n, 1) = 1 f(n,1)=1
  3. f ( 0 , k ) = 1 f(0, k) = 1 f(0,k)=1(仅在迭代过程中成立)
  4. n < k nn<k,则有 f ( n , k ) = 0 f(n, k) = 0 f(n,k)=0

我们可以很轻易地给出python代码实现如下:

from functools import lru_cache

@lru_cache(None)
def _fn(n, k):
    if n == 0:
        return 1
    elif n < k:
        return 0
    elif n == k or k == 1:
        return 1
    
    res = 0
    for i in range(k, n+1, k):
        for j in range(1, k):
            res += _fn(n-i, j)
    return res

def fn(n, k):
    if n < k:
        return 0
    return _fn(n, k)

不过暂时没有求出来这迭代式的通项公式,也是有点蛋疼……

2. 允许空盒的情况

对于允许空盒的情况,由于这里的小球和盒子都是不可区分的,因此,事实上我们只需要先在每一个盒子当中放一个隐藏小球,那么问题就自然地回到了上述不允许空盒的情况,因此,我们可以直接给出:

g ( n , k ) = f ( n + k , k ) \begin{aligned} g(n, k) &= f(n+k, k) \end{aligned} g(n,k)=f(n+k,k)

3. n个不同的小球,分装到k个不同的盒子当中

1. 允许空盒的情况

对于小球和盒子均互异的情况,如果允许空盒,那么显然每一个小球都可以有 k k k种选择,因此,我们可以直接写出答案如下:

g ( n , k ) = k n g(n,k) = k^n g(n,k)=kn

2. 不允许空盒的情况

对于不允许空盒的情况,由我们之前给出的关系表达式:

g ( n , k ) = ∑ i = 1 k C k i ⋅ f ( n , i ) g(n,k) = \sum_{i=1}^{k}C_{k}^{i} \cdot f(n, i) g(n,k)=i=1kCkif(n,i)

带入上一小节给出的 g ( n , k ) = k n g(n, k) = k^n g(n,k)=kn,我们即可快速得到:

∑ i = 1 k C k i ⋅ f ( n , i ) = k n \sum_{i=1}^{k}C_{k}^{i} \cdot f(n, i) = k^n i=1kCkif(n,i)=kn

且显然我们有以下两种特殊情况:

  1. f ( n , 1 ) = 1 f(n, 1) = 1 f(n,1)=1
  2. f ( n , n ) = n ! f(n, n) = n! f(n,n)=n!

简单写几项之后,我们不难发现 f ( n , k ) f(n,k) f(n,k)满足如下表达式:

f ( n , k ) = ∑ i = 0 k − 1 ( − 1 ) i ⋅ C k i ⋅ ( k − i ) n f(n, k) = \sum\limits_{i=0}^{k-1} (-1)^i \cdot C_{k}^{i} \cdot (k-i)^n f(n,k)=i=0k1(1)iCki(ki)n

下面,我们只需要使用数学归纳法对这一猜想进行证明即可。

假设当 k k k不大于 k − 1 k-1 k1时, f ( n , k ) f(n, k) f(n,k)均满足上述上述表达式,我们考察 k = k k=k k=k时的情况,可以得到:

f ( n , k ) = k n − ∑ i = 1 k − 1 C k i ⋅ f ( n , i ) = k n − ∑ i = 1 k − 1 C k i ⋅ ( ∑ j = 0 i − 1 ( − 1 ) j ⋅ C i j ⋅ ( i − j ) n ) = k n − ∑ i = 1 k − 1 C k i ⋅ ( ∑ d = 1 i ( − 1 ) i − d ⋅ C i d ⋅ d n ) = k n − ∑ i = 1 k − 1 ∑ d = 1 i ( − 1 ) i − d ⋅ C k i ⋅ C i d ⋅ d n = k n − ∑ d = 1 k − 1 ∑ i = d k − 1 ( − 1 ) i − d ⋅ C k i ⋅ C i d ⋅ d n = k n − ∑ d = 1 k − 1 ∑ i = d k − 1 ( − 1 ) i − d ⋅ C k d ⋅ C k − d i − d ⋅ d n = k n − ∑ d = 1 k − 1 d n ⋅ C k d ( ∑ i = d k − 1 ( − 1 ) i − d ⋅ C k − d i − d ) = k n − ∑ d = 1 k − 1 d n ⋅ C k d ( ∑ t = 0 k − d − 1 ( − 1 ) t ⋅ C k − d t ) = k n − ∑ d = 1 k − 1 d n ⋅ C k d ( ∑ t = 0 k − d ( − 1 ) t ⋅ C k − d t − ( − 1 ) k − d ⋅ C k − d k − d ) \begin{aligned} f(n, k) &= k^n - \sum\limits_{i=1}^{k-1}C_k^i \cdot f(n, i) \\ &= k^n - \sum\limits_{i=1}^{k-1}C_k^i \cdot (\sum\limits_{j=0}^{i-1}(-1)^j\cdot C_i^j \cdot (i-j)^n) \\ &= k^n - \sum\limits_{i=1}^{k-1}C_k^i \cdot (\sum\limits_{d=1}^{i} (-1)^{i-d} \cdot C_i^d \cdot d^n) \\ &= k^n - \sum\limits_{i=1}^{k-1}\sum\limits_{d=1}^{i}(-1)^{i-d} \cdot C_k^i \cdot C_i^d \cdot d^n \\ &= k^n - \sum\limits_{d=1}^{k-1}\sum\limits_{i=d}^{k-1} (-1)^{i-d} \cdot C_k^i \cdot C_i^d \cdot d^n \\ &= k^n - \sum\limits_{d=1}^{k-1}\sum\limits_{i=d}^{k-1} (-1)^{i-d} \cdot C_{k}^{d} \cdot C_{k-d}^{i-d} \cdot d^n \\ &= k^n - \sum\limits_{d=1}^{k-1} d^n \cdot C_k^d (\sum\limits_{i=d}^{k-1}(-1)^{i-d} \cdot C_{k-d}^{i-d}) \\ &= k^n - \sum\limits_{d=1}^{k-1} d^n \cdot C_k^d (\sum\limits_{t=0}^{k-d-1}(-1)^{t} \cdot C_{k-d}^{t}) \\ &= k^n - \sum\limits_{d=1}^{k-1} d^n \cdot C_k^d (\sum\limits_{t=0}^{k-d}(-1)^{t} \cdot C_{k-d}^{t} - (-1)^{k-d}\cdot C_{k-d}^{k-d}) \end{aligned} f(n,k)=kni=1k1Ckif(n,i)=kni=1k1Cki(j=0i1(1)jCij(ij)n)=kni=1k1Cki(d=1i(1)idCiddn)=kni=1k1d=1i(1)idCkiCiddn=knd=1k1i=dk1(1)idCkiCiddn=knd=1k1i=dk1(1)idCkdCkdiddn=knd=1k1dnCkd(i=dk1(1)idCkdid)=knd=1k1dnCkd(t=0kd1(1)tCkdt)=knd=1k1dnCkd(t=0kd(1)tCkdt(1)kdCkdkd)

我们给出引理(证明详见附录):

∑ i = 0 n ( − 1 ) i ⋅ C n i = 0 \sum_{i=0}^{n} (-1)^i \cdot C_n^i = 0 i=0n(1)iCni=0

由此,我们可以进一步推导得到:

f ( n , k ) = k n − ∑ d = 1 k − 1 d n ⋅ C k d ( ∑ t = 0 k − d ( − 1 ) t ⋅ C k − d t − ( − 1 ) k − d ⋅ C k − d k − d ) = k n − ∑ d = 1 k − 1 d n ⋅ C k d ( 0 − ( − 1 ) k − d ) = k n + ∑ d = 1 k − 1 ( − 1 ) k − d ⋅ C k d ⋅ d n = ∑ i = 0 k − 1 ( − 1 ) i ⋅ C k i ⋅ ( k − i ) n \begin{aligned} f(n, k) &= k^n - \sum\limits_{d=1}^{k-1} d^n \cdot C_k^d (\sum\limits_{t=0}^{k-d}(-1)^{t} \cdot C_{k-d}^{t} - (-1)^{k-d}\cdot C_{k-d}^{k-d})\\ &= k^n - \sum\limits_{d=1}^{k-1} d^n \cdot C_k^d (0 - (-1)^{k-d}) \\ &= k^n + \sum\limits_{d=1}^{k-1} (-1)^{k-d} \cdot C_k^d \cdot d^n \\ &= \sum\limits_{i=0}^{k-1} (-1)^i \cdot C_{k}^{i} \cdot (k-i)^n \end{aligned} f(n,k)=knd=1k1dnCkd(t=0kd(1)tCkdt(1)kdCkdkd)=knd=1k1dnCkd(0(1)kd)=kn+d=1k1(1)kdCkddn=i=0k1(1)iCki(ki)n

综上,命题即可得证。

调整一下上式,我们事实上可以将其写的更加规则一些:

f ( n , k ) = ∑ i = 0 k ( − 1 ) k − i ⋅ C k i ⋅ i n f(n, k) = \sum\limits_{i=0}^{k} (-1)^{k-i} \cdot C_{k}^{i} \cdot i^n f(n,k)=i=0k(1)kiCkiin

当然,我们也可以通过下述迭代关系式来通过数学归纳法进行证明:

f ( n , k ) = C k 1 ⋅ f ( n − 1 , k ) + C k 1 ⋅ f ( n − 1 , k − 1 ) f(n, k) = C_k^1 \cdot f(n-1, k) + C_k^1 \cdot f(n-1, k-1) f(n,k)=Ck1f(n1,k)+Ck1f(n1,k1)

本质上和上述方法是完全相同的,这里就不进行展开了。

3. 一个有趣的推论

我们考察当 n = k n=k n=k时的情况,此时易知 f ( n , n ) = n ! f(n, n) = n! f(n,n)=n!

我们将其带入到上述 f ( n , k ) f(n,k) f(n,k)的表达式当中,即可得到以下推论:

f ( n , n ) = ∑ i = 1 n ( − 1 ) n − i ⋅ C n i ⋅ i n = n ! f(n, n) = \sum\limits_{i=1}^{n}(-1)^{n-i} \cdot C_n^i \cdot i^n = n! f(n,n)=i=1n(1)niCniin=n!

亦即:

∑ i = 0 n ( − 1 ) n − i ⋅ C n i ⋅ i n = n ! \sum\limits_{i=0}^{n}(-1)^{n-i} \cdot C_n^i \cdot i^n = n! i=0n(1)niCniin=n!

或者展开有:

∑ i = 0 n ( − 1 ) n − i ⋅ i n i ! ⋅ ( n − i ) ! = 1 \sum\limits_{i=0}^{n}(-1)^{n-i} \cdot \frac{i^n}{i! \cdot (n-i)!} = 1 i=0n(1)nii!(ni)!in=1

这个结果还是非常有意思的。

事实上,这个问题事实上在第二类Stirling Numbers当中已经被研究过了,具体可以参考WikiPedia:

  • Stirling numbers of the second kind

这里算是误打误撞重新折腾了一遍吧。

4. n个不同的小球,分装到k个相同的盒子当中

1. 不允许空盒的情况

对于小球互异,但是盒子不可区分的情况,我们同样可以快速写出迭代公式:

f ( n , k ) = C k 1 ⋅ f ( n − 1 , k ) + f ( n − 1 , k − 1 ) f(n, k) = C_k^1 \cdot f(n-1, k) + f(n-1, k-1) f(n,k)=Ck1f(n1,k)+f(n1,k1)

我们完全可以仿照上述对于互异小球和互异盒子的问题,先猜出一个答案之后使用数学归纳法进行证明。

不过,一个更快的方式是直接采用上述小球和盒子均互异情况下的答案进行求解。

我们已经求得,对于小球和盒子均互异的情况,我们有:

f ( n , k ) = ∑ i = 1 k ( − 1 ) k − i ⋅ C k i ⋅ i n f(n, k) = \sum\limits_{i=1}^{k} (-1)^{k-i} \cdot C_{k}^{i} \cdot i^n f(n,k)=i=1k(1)kiCkiin

我们只需要考虑如果在盒子无法区分的情况下,将会有多少种情况需要进行合并即可。

我们假设某一个划分当中,有 k 1 k_1 k1个盒子当中包含 n 1 n_1 n1个球,有 k 2 k_2 k2个盒子当中包含 n 2 n_2 n2个球,一直到有 k m k_m km个盒子当中包含 n m n_m nm个球。

此时,我们考察如果盒子不可区分,那么有多少种情况需要合并。

不难计算,需要合并的情况数目为:

s = Π i = 1 m C k − ∑ j = 1 i − 1 k j k i ⋅ k i ! = Π i = 1 m ( k − ∑ j = 1 i − 1 k j ) ! k i ! ⋅ ( k − ∑ j = 1 i k j ) ! ⋅ k i ! = k ! 0 ! = k ! \begin{aligned} s &= \mathop{\Pi}\limits_{i=1}^{m}C_{k - \sum\limits_{j=1}^{i-1}k_j}^{k_i}\cdot k_i! \\ &= \mathop{\Pi}\limits_{i=1}^{m}\frac{(k - \sum\limits_{j=1}^{i-1}k_j)!}{k_i! \cdot (k - \sum\limits_{j=1}^{i}k_j)!}\cdot k_i! \\ &= \frac{k!}{0!} = k! \end{aligned} s=i=1ΠmCkj=1i1kjkiki!=i=1Πmki!(kj=1ikj)!(kj=1i1kj)!ki!=0!k!=k!

上述值为一个常数,也就是说,当盒子不可区分时,每一种情况都可以映射到盒子可以区分的情况下的 k ! k! k!种情况。

故而,我们就可以快速地求得在盒子不可区分情况下的 f ( n , k ) f(n, k) f(n,k)的表达式为:

f ( n , k ) = 1 k ! ⋅ ∑ i = 0 k ( − 1 ) k − i ⋅ C k i ⋅ i n f(n, k) = \frac{1}{k!} \cdot \sum\limits_{i=0}^{k} (-1)^{k-i} \cdot C_{k}^{i} \cdot i^n f(n,k)=k!1i=0k(1)kiCkiin

而这个解事实上就是上一小节推论中给出的第二类Stirling数(Stirling numbers of the second kind)。

2. 允许空盒的情况

对于允许空盒的情况,我们由之前的讨论,可以得到:

g ( n , k ) = ∑ i = 1 k f ( n , k ) g(n, k) = \sum\limits_{i=1}^{k} f(n, k) g(n,k)=i=1kf(n,k)

带入 f ( n , k ) f(n, k) f(n,k)的表达式,我们可以得到:

g ( n , k ) = ∑ i = 1 k f ( n , k ) = ∑ i = 1 k ( 1 i ! ∑ j = 0 i ( − 1 ) i − j C i j ⋅ j n ) = ∑ i = 1 k ∑ j = 0 i ( − 1 ) i − j j n j ! ⋅ ( i − j ) ! = ∑ j = 0 k j n j ! ∑ i = j k ( − 1 ) i − j ⋅ 1 ( i − j ) ! = ∑ j = 0 k j n j ! ∑ i = 0 k − j ( − 1 ) i ⋅ 1 i ! = ∑ i = 0 k i n i ! ∑ j = 0 k − i ( − 1 ) j ⋅ 1 j ! \begin{aligned} g(n, k) &= \sum_{i=1}^{k} f(n, k) \\ &= \sum\limits_{i=1}^{k}(\frac{1}{i!} \sum\limits_{j=0}^{i}(-1)^{i-j}C_{i}^{j}\cdot j^n) \\ &= \sum\limits_{i=1}^{k}\sum\limits_{j=0}^{i}(-1)^{i-j}\frac{j^n}{j! \cdot (i-j)!} \\ &= \sum\limits_{j=0}^{k} \frac{j^n}{j!}\sum\limits_{i=j}^{k} (-1)^{i-j} \cdot \frac{1}{(i-j)!} \\ &= \sum\limits_{j=0}^{k} \frac{j^n}{j!}\sum\limits_{i=0}^{k-j} (-1)^{i} \cdot \frac{1}{i!} \\ &= \sum\limits_{i=0}^{k} \frac{i^n}{i!}\sum\limits_{j=0}^{k-i} (-1)^{j} \cdot \frac{1}{j!} \end{aligned} g(n,k)=i=1kf(n,k)=i=1k(i!1j=0i(1)ijCijjn)=i=1kj=0i(1)ijj!(ij)!jn=j=0kj!jni=jk(1)ij(ij)!1=j=0kj!jni=0kj(1)ii!1=i=0ki!inj=0ki(1)jj!1

不过上式倒是没想到什么化简的手段,只能全部保留了,还是多少有些复杂的。

3. 结果整理

我们将上述结果整理到如下表格当中:

球( n n n 盒子( k k k 不允许存在空盒 允许存在空盒
不可区分 不可区分 f ( n , k ) = ∑ i = 1 i × k ≤ n ∑ j = 1 k − 1 f ( n − i × k , j ) f(n,k)=\sum\limits_{i=1}^{i \times k \leq n}\sum\limits_{j=1}^{k-1}f(n-i \times k, j) f(n,k)=i=1i×knj=1k1f(ni×k,j) g ( n , k ) = f ( n + k ) g(n,k)=f(n+k) g(n,k)=f(n+k)
不可区分 可区分 f ( n , k ) = C n − 1 k − 1 f(n,k)=C_{n-1}^{k-1} f(n,k)=Cn1k1 g ( n , k ) = C n + k − 1 k − 1 g(n,k)=C_{n+k-1}^{k-1} g(n,k)=Cn+k1k1
可区分 不可区分 f ( n , k ) = 1 k ! ⋅ ∑ i = 0 k ( − 1 ) k − i ⋅ C k i ⋅ i n f(n,k)=\frac{1}{k!} \cdot \sum\limits_{i=0}^{k} (-1)^{k-i} \cdot C_{k}^{i} \cdot i^n f(n,k)=k!1i=0k(1)kiCkiin g ( n , k ) = ∑ i = 0 k i n i ! ∑ j = 0 k − i ( − 1 ) j ⋅ 1 j ! g(n,k)=\sum\limits_{i=0}^{k} \frac{i^n}{i!}\sum\limits_{j=0}^{k-i} (-1)^{j} \cdot \frac{1}{j!} g(n,k)=i=0ki!inj=0ki(1)jj!1
可区分 可区分 f ( n , k ) = ∑ i = 0 k ( − 1 ) k − i ⋅ C k i ⋅ i n f(n,k)=\sum\limits_{i=0}^{k} (-1)^{k-i} \cdot C_{k}^{i} \cdot i^n f(n,k)=i=0k(1)kiCkiin g ( n , k ) = k n g(n,k)=k^n g(n,k)=kn

4. 附录:组合数常见公式

  1. C n m = C n n − m C_n^{m} = C_n^{n-m} Cnm=Cnnm

  2. C n r ⋅ C r m = C n m ⋅ C n − m r − m C_n^r \cdot C_r^m = C_n^m \cdot C_{n-m}^{r-m} CnrCrm=CnmCnmrm

    证明:

    C n r ⋅ C r m = n ! r ! ( n − r ) ! ⋅ r ! m ! ( r − m ) ! = n ! m ! ⋅ 1 ( n − r ) ! ( r − m ) ! = n ! m ! ( n − m ) ! ⋅ ( n − m ) ! ( n − r ) ! ( r − m ) ! = C n m ⋅ C n − m r − m \begin{aligned} C_n^r \cdot C_r^m &= \frac{n!}{r!(n-r)!} \cdot \frac{r!}{m!(r-m)!} \\ &= \frac{n!}{m!} \cdot \frac{1}{(n-r)!(r-m)!} \\ &= \frac{n!}{m!(n-m)!} \cdot \frac{(n-m)!}{(n-r)!(r-m)!} \\ &= C_n^m \cdot C_{n-m}^{r-m} \end{aligned} CnrCrm=r!(nr)!n!m!(rm)!r!=m!n!(nr)!(rm)!1=m!(nm)!n!(nr)!(rm)!(nm)!=CnmCnmrm

  3. C n + 1 m = C n m + C n m − 1 C_{n+1}^{m} = C_{n}^{m} + C_{n}^{m-1} Cn+1m=Cnm+Cnm1

  4. ∑ i = 0 n C n i = 2 n \sum\limits_{i=0}^{n}C_{n}^{i} = 2^{n} i=0nCni=2n

  5. ∑ i = 0 n ( − 1 ) i ⋅ C n i = 0 \sum\limits_{i=0}^{n}(-1)^i \cdot C_n^i = 0 i=0n(1)iCni=0

    证明,是用数学归纳法,显然当 n = 1 n=1 n=1时,上式成立,假设当 n n n不超过 n − 1 n-1 n1时,上式均成立,我们考察 n = n n=n n=n的情况,有:

    ∑ i = 0 n ( − 1 ) i ⋅ C n i = 1 + ( − 1 ) n + ∑ i = 1 n − 1 ( − 1 ) i ⋅ C n i = 1 + ( − 1 ) n + ∑ i = 1 n − 1 ( − 1 ) i ( C n − 1 i + C n − 1 i − 1 ) = 1 + ∑ i = 1 n − 1 ( − 1 ) i ⋅ C n − 1 i + ∑ i = 1 n − 1 ( − 1 ) i ⋅ C n − 1 i − 1 + ( − 1 ) n = ∑ i = 0 n − 1 ( − 1 ) i ⋅ C n − 1 i + ∑ i = 1 n ( − 1 ) i ⋅ C n − 1 i − 1 = 0 + ( − 1 ) ⋅ 0 = 0 \begin{aligned} \sum\limits_{i=0}^{n}(-1)^i \cdot C_n^i &= 1 + (-1)^n + \sum\limits_{i=1}^{n-1}(-1)^i \cdot C_n^i \\ &= 1 + (-1)^n + \sum\limits_{i=1}^{n-1}(-1)^i (C_{n-1}^{i} + C_{n-1}^{i-1}) \\ &= 1 + \sum\limits_{i=1}^{n-1}(-1)^i \cdot C_{n-1}^{i} + \sum\limits_{i=1}^{n-1}(-1)^i \cdot C_{n-1}^{i-1} + (-1)^n \\ &= \sum\limits_{i=0}^{n-1}(-1)^i \cdot C_{n-1}^{i} + \sum\limits_{i=1}^{n} (-1)^i \cdot C_{n-1}^{i-1} \\ &= 0 + (-1) \cdot 0 = 0 \end{aligned} i=0n(1)iCni=1+(1)n+i=1n1(1)iCni=1+(1)n+i=1n1(1)i(Cn1i+Cn1i1)=1+i=1n1(1)iCn1i+i=1n1(1)iCn1i1+(1)n=i=0n1(1)iCn1i+i=1n(1)iCn1i1=0+(1)0=0

  6. ∑ i = r n C i + 1 r = C n + 1 r + 1 \sum\limits_{i=r}^{n}C_{i+1}^{r} = C_{n+1}^{r+1} i=rnCi+1r=Cn+1r+1

  7. ∑ i = 0 k C n i C m k − i = C n + m k \sum\limits_{i=0}^{k}C_{n}^{i}C_{m}^{k-i} = C_{n+m}^{k} i=0kCniCmki=Cn+mk

    推论:当 n = m = k n=m=k n=m=k时,有:

    ∑ i = 0 n ( C n i ) 2 = ∑ i = 0 n C n i ⋅ C n n − i = C 2 n n \sum\limits_{i=0}^{n}(C_{n}^{i})^2 = \sum\limits_{i=0}^{n}C_{n}^{i} \cdot C_{n}^{n-i} = C_{2n}^{n} i=0n(Cni)2=i=0nCniCnni=C2nn

你可能感兴趣的:(基础数学,概率统计,小球分堆问题,组合问题,Stirling数)