分步乘法计数原理

乘法原理是组合计数的基本计数原理。简而言之,“若有aa种方法做某事,bb种方法做另一事,则合共有ab{a \cdot b}种方法做此两件事。”

例子

有一个集合A={a1,a2,a3}A= \{a_1,a_2,a_3\},一个集合B={b1,b2}B= \{b_1,b_2\},现从分别从集合A,BA,B中取一个元素,形成一个新的集合CC,问CC有多少种可能性?

    ┌───► a1
    │
a ──┼───► a2
    │
    └───► a3

    ┌───► b1
b ──┤
    └───► b3

注意前提条件: 集合AB=A \cap B = \varnothing 即两次选择中,没有选项重复出现

整个问题可以等同于选取一个有序对(a,b)(a,b),其中aA,bBa \in A,b \in B,aa33种取法,bb22种取法,则共有3×2=63 \times 2 = 6

使用集合来描述这个种问题

C={(a,b)aA,bB}AB=}C=A×B \left. \begin{array} {c} C = \{(a,b) \mid a \in A , b \in B \} \\ A \cap B = \varnothing \\ \end{array} \right\} \Rightarrow |C| = |A| \times |B|

问题2

nn个不同球,编号为1,2,,n1,2,\cdots,n,放到nn个不同的盒子里,有多少种不同的放法?

f(n)f(n)表示n个数据时的方案数.f(n)=n×f(n1)f(n) = n \times f(n-1)

核心:

  1. 放的顺序不影响结果(需要证明).
    • 所以可以先放第n个球.
    • 这说明这是一个面对集合的问题,而不是面对一个序列的问题!
  2. 第n个球放完后,相当于减少了一个位置,问题就变成了f(n1)f(n-1).这说明:无论第n个球放哪个位置,所形成的子问题的答案都是一样的,所以一定是把这些子问题加起来(加法原理),也就是N×f(n1)N \times f(n-1)

证明:放的顺序不影响结果, 本质是一种映射关系. 顺序放法put1put_1 与放法put2put_2,都可以得到答案集合里的任意一个元素. 也就是说put1put_1,put2put_2都可以得到所有的答案.

总结: 第一步有n种可能性(放法),第二步放编号为n-1的球,有n-1个可能性,… 最后答案就把这些可能性乘以起来

f(n)=n!=n×(n1)×(n2)×1 f(n) = n! = n \times (n-1) \times (n-2) \times \cdots 1

练习题目

TODO

参考