• 组合数


    从 $n$ 个不同元素中,任取 $m(m leq n)$ 个元素并成一组,叫做从 $n$ 个不同元素中取出 $m$ 个元素的一个组合

    从 $n$ 个不同元素中取出 $m(m leq n)$ 个元素的所有组合的个数,叫做从 $n$ 个不同元素中取出 $m$ 个元素的组合数,用符号 $C_{n}^{m}$ 或 $C(n,m)$ 表示。

    每个组合中的元素不管其排列顺序。

    那怎么计算这个 $C_{n}^{m}$ 呢?

    先来了解一下分步计数原理:完成一件事,需要分成 $n$ 个步骤,做第 $1$ 步有 $m_{1}$ 种不同的方法,做第 $2$ 步有 $m_{2}$ 种不同的方法,做第 $n$

    步有 $m_{n}$ 种不同的方法,这 $n$ 个步骤做完之后便得到一种方法,那么完成这件事方法共有

    $$N = m_{1}cdot m_{2}cdot ...cdot m_{n}$$

    通过下面这张图,可明白为啥每一步需要相乘。

      

    所以,从 $n$ 个不同元素中取出 $m$ 个元素的方法共有:$n(n-1)(n-2)cdot cdot cdot (n-m+1)$。

    这样计算的话,每个组合中,不同的顺序也算一种不同的方法,为了去掉顺序的影响,需要除以每个组合内部排序的数量 $m!$,所以

    $$C_{n}^{m} = frac{n(n-1)(n-2)cdot cdot cdot (n-m+1)}{m!} = frac{n!}{(n-m)!m!}$$

    组合数性质

        1)$C_{n}^{m} = C_{n}^{n-m}$将原本的每个组合都反转,把原来没选的选上,原来选了的去掉,即互相替换,这样就变成从 $n$ 个元素种取出 $n−m$ 个元素,

           显然方案数是相等的。

        2)$C_{n}^{m} = C_{n-1}^{m} + C_{n-1}^{m-1}$可理解为

           a. 含特定元素的组合有 $C_{n-1}^{m-1}$,把那个元素算在里面了,然后从剩下的 $n - 1$ 个元素中再选出 $m-1$ 个元素;

           b. 不含特定元素的组合 $C_{n-1}^{m}$,把那个元素排除掉,从剩下 $n - 1$ 个元素里选出全部 $m$ 个元素。

    组合数求和公式

    $$C_{n}^{0} + C_{n}^{1} + C_{n}^{2} +...+C_{n}^{n} = 2^{n}$$

    把从 $n$ 个球中抽出 $0$ 个球的组合数、抽出 $1$ 个球的组合数、抽出 $2$ 个球的组合数、……、抽出 $n$ 个球的组合数相加。

    换句话说,就是从 $n$ 个球中随便抽出一些不定个数球,问一共有多少种组合。

    完成这一件事情,可以分为 $n$ 个步骤:

    对于第 $1$ 个球,可以选,也可以不选,有 $2$ 种情况。

    对于第 $2$ 个球,可以选,也可以不选,有 $2$ 种情况。

    对于任意一个球,可以选,也可以不选,有 $2$ 种情况。

    根据乘法原理,共有 $2^{n}$ 种选择。

    杨辉三角(帕斯卡三角)

      

      1)索引从 $1$ 开始,则第 $n$ 行第 $m$ 个数可以表示为 $C_{n-1}^{m-1}$,即为从 $n−1$ 个不同元素中取 $m−1$ 个元素的组合数。

      2)第 $n$ 行的数字有 $n$ 项。

      3)每行数字左右对称,即 $C_{n}^{m} = C_{n}^{n-m}$

      4)每个数等于它上方两数之和,即 $C_{n}^{m} = C_{n-1}^{m} + C_{n-1}^{m-1}$

      5)$(a+b)^{n}$ 的展开式中的各项系数依次对应杨辉三角的第 $n+1$ 行中的每一项。可以看成组合问题。

  • 相关阅读:
    sql server 数据查询基础
    sqlserver 用SQL语句操作数据
    sql server 用表组织数据
    sql server 程序的集散地 数据库
    JAVA 面向对象 File I/O
    JAVA 面向对象 多线程
    JAVA 面向对象 集合框架
    JAVA 面向对象 异常
    js内置对象、定时函数、document对象
    DOM
  • 原文地址:https://www.cnblogs.com/yanghh/p/13385366.html
Copyright © 2020-2023  润新知