部分内容转自:https://www.cnblogs.com/1024th/p/10623541.html。
加法原理、乘法原理
分类计数原理:做一件事,有n类办法,在第1类办法中有m1种不同的方法,在第2类办法中有m2种不同的方法,…,在第n类办法中有mn种不同的方法,那么完成这件事共有N=m1+m2+…+mn种不同的方法。
分步计数原理:完成一件事,需要分成n个步骤,做第1步有m1种不同的方法,做第2步有m2种不同的方法,…,做第n步有mn种不同的方法,那么完成这件事共有N=m1×m2×⋯×mn种不同的方法。
区别:分类计数原理是加法原理,不同的类加起来就是我要得到的总数;分步计数原理是乘法原理,是同一事件分成若干步骤,每个步骤的方法数相乘才是总数。
排列问题
排列数
从n个不同元素种取出m(m≤n)个元素的所有不同排列的个数,叫做从n个不同元素种取出m个元素的排列数,用A(n, m)表示。
排列数公式
推导:把n个不同的元素任选m个排序,按计数原理分步进行:
取第一个:有n种取法;
取第二个:有(n−1)种取法;
取第三个:有(n−2)种取法;
……
取第m个:有(n−m+1)种取法;
根据分步乘法原理,得出上述公式。
排列数性质
组合问题
组合数
从n个不同元素种取出m(m≤n)个元素的所有不同组合的个数,叫做从n个不同元素种取出m个元素的组合数,用C(n, m)表示。
组合数公式
证明:利用排列和组合之间的关系以及排列的公式来推导证明。
将部分排列问题A(n, m)分解为两个步骤:
第一步,就是从n个球中抽m个出来,先不排序,此即组合数问题C(n, m);
第二步,则是把这m个被抽出来的球排序,即全排列A(m, m)。
根据乘法原理,则有:C(n, m) = A(n, m) / A(m, m)。
组合数的性质
C(n, m) = C(n, n - m)。可以理解为:将原本的每个组合都反转,把原来没选的选上,原来选了的去掉,这样就变成从n个元素种取出n−m个元素,显然方案数是相等的。
递推公式:C(n, m) = C(n - 1, m) + C(n - 1, m - 1),可以理解为,含有特定元素的组合有C(n - 1, m - 1),不含有特定元素的组合有C(n - 1, m)。
组合数求和公式
我们感性认知一下,上面这个式子的左边表示什么呢?
把从n个球中抽出0个球的组合数(值为1)、抽出1个球的组合数、抽出2个球的组合数、……、抽出n个球的组合数相加。
换句话说,就是从n个球中随便抽出一些不定个数球,问一共有多少种组合。
对于第1个球,可以选,也可以不选,有2种情况。
对于第2个球,可以选,也可以不选,有2种情况。
对于任意一个球,可以选,也可以不选,有2种情况。
根据乘法原理,则一共有2 * 2 * 2... *2(n个2) = 2^n种组合。