关于组合数

Posted zengpeichen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于组合数相关的知识,希望对你有一定的参考价值。

定义

  $largeinom nk$ :$n$ 个不同物品选取其中 $k$ 个物品的不同方案数,也可以写成 $C_n^k$。

组合数的阶乘形式

  如果要知道求组合数的公式,那么要从排列数说起。

  排列数:从 $n$ 个不同物品中有顺序地选出 $k$ 个物品,那么不同方案数为:

$$prod_{i=n-k+1}^n i$$

  写成阶乘的形式:

$$frac{n!}{(n-k)!}$$

  这很好理解,就是先从 $n$ 个物品中挑选出一个物品,再从剩余 $n-1$ 个物品再挑选另一个,……,最后在所剩的 $n-k+1$ 个物品中再挑一个物品,利用乘法原理可以求出如上方案数。

  组合数与排列数的差异在于,组合数的选取方案是没有顺序的,所以组合数的计算方式就是排列数除以挑选 $k$ 个物品的不同排列个数 $k!$。

  所以组合数可以和阶乘展开式互相转换:

$$inom nk = frac{n!}{k!;(n-k)!}$$

以上是关于关于组合数的主要内容,如果未能解决你的问题,请参考以下文章

python第六讲:组合数类型

Secret Project Gym - 101972(组合数大数+思维)

python将两个数组合并成一个数组的两种方法的代码

关于组合 C(N, K) = C(N - 1, K) + C(N - 1, K - 1) 的理解

c++两个数组合并成一个新数组

BZOJ 3907网格 组合数学