zoukankan      html  css  js  c++  java
  • 组合数学入门

    对于有的计数类问题,因为方案数巨大,我们不能通过爆搜来搜索答案(你愿意也可以,神威•太湖之光跑$800$年,但是你发现你活不了那么长时间),那么就需要对这类计数问题作出优化。

    我现在就引入这个名词:组合数学

    组合数学所研究的内容就是对这类问题的优化。


    引入

    首先引入组合数学的两个基础原理:加法原理乘法原理

    1.加法原理:

    来看这样一个例题:

    如图,从甲地到乙地,可以乘火车,也可以乘汽车;在一天中,火车有三班,汽车有两班,那么一天中乘坐这些交通工具从甲地到乙地共有多少种不同的走法?

    题解:

    从甲地到乙地有两种方式可以选:

    $1.$乘火车:$3$种方法。

    $2.$乘汽车:$2$种方法。

    那么总的方案数即为$3 imes$(火车)$+2 imes$(汽车)$=5$(种)。

    总结:

    若完成一件事的方法有$n$类,其中第$i$类方法包括$a_i$种不同的方法,且这些方法互不重合,则完成这件事共有$a_1+a_2+…+a_n$种不同的方法。

    2.乘法原理:

    再来看一道例题:

    如图,由$A$市去$B$市的道路有$3$条,由$B$市去$C$市的道路有$2$条。从$A$市经$B$市去$C$市,共有多少种不同的走法?

    题解:

    从$A$市经$B$市去$C$市可分为两步:

    $1.$从$A$市去$B$市:$3$种方法。

    $2.$从$B$市去$C$市:$2$种方法。

    那么总的方案数即为$3 imes$($A ightarrow B$)$ imes 2$($B ightarrow C$)$=5$(种)。

    总结:

    若完成一件事需要$n$个步骤,其中第$i$个步骤有$a_i$种不同的完成方法,且这些步骤互不干扰,则完成这件事共有$a_1 imes a_2 imes … imes a_n$种不同的方法。


    两个概念

    介绍完两个原理之后,我再引入两个概念:排列数组合数

    $1.$排列数:

    从n个不同的元素中依次取出m个元素组成一列,产生的不同排列的数量为:

    $A_n^m=n imes (n-1) imes … imes (n-m+1)=frac{n!}{(n-m)!}$

    注:$A_n^m$也可记作$P_n^m$。

    $2.$组合数:

    从n个不同的元素中取出m个组成一个集合(不考虑顺序),产生不同集合数量为:

    $C_n^m=frac{n imes(n-1) imes … imes (n-m+1)}{m imes(m-1) imes … imes 2 imes 1}=frac{n!}{m! imes (n-m)!}$。

    显然,排列数和组合数的区别在于,排列数不考虑每一个集合中的顺序,而组合数则考虑。

    所以,公式也可以这样理解:$C_n^m=frac{A_n^m}{A_m^m}=frac{n!}{m! imes (n-m)!}$$frac{1}{A_m^m}$可理解为这$m$个数按不同顺序所能组成的方案数)。


    计数方法策略

    介绍完两个概念,现在我来介绍$10$个计数方法策略

    $1.$特殊元素和特殊位置优先策略

    例题:

    由$0$,$1$,$2$,$3$,$4$,$5$可以组成多少个没有重复数字的五位奇数。

    题解:

    由于末位和首位有特殊要求,应该优先安排,以免不合要求的元素占了这两个位置。

    首先考虑末位:$1$,$3$,$5$为奇数,我们要从中选出来一个方案数为$C_3^1$。

    然后考虑首位:$0$不能作为首位,所以首位的方案数为$C_4^1$。

    最后考虑中间三位:已经拿走了$2$个数,还有$4$个数,从这$4$个数中选出$3$个数,方案数为$A_4^3$。

    根据乘法原理统计答案为:$C_3^1 imes C_4^1 imes A_4^3=288$。

    练习题:

    用$0$到$9$这$10$个数字,可以组成多少个没有重复数字的三位偶数?

    题解:

    共有$C_5^1 imes A_9^2$种偶数,再减去首位为$0$的情况,为$C_4^1 imes C_4^1$,注意$0$在首位,末尾就不能为$0$,所以为$C_4^1$。

    根据乘法原理统计答案为:$C_5^1 imes A_9^2 - C_4^1 imes C_8^1=328$。

    $2.$相邻元素捆绑策略

    例题:

    $7$人站成一排,其中甲乙相邻且丙丁相邻,共有多少种不同的排法。

    题解:

    我们可以先将甲乙,丙丁分别看成是一个人,这时候的方案数为$A_5^5$。

    然后在考虑甲乙,丙丁内部的方案数,各为$A_2^2$。

    根据乘法原理统计答案为:${(A_5^5 imes A_2^2)}^2=480$。

    练习题:

    记者要为$5$名志愿者和他们帮助的$2$位老人拍照,要求排成一排,$2$位老人相邻但不排在两端,求不同排法的数量。

    题解:

    还是将这两个老人捆绑在一起。

    先考虑五名志愿者所能组成的排列数为$A_5^5$。

    考虑老人不排能在两端,那么我们可以看成将这$2$个老人所组成的整体插入这$5$名志愿者所组成的$4$个间隙,方案数为$C_4^1$。

    然后再考虑这两个老人内部的方案数为$A_2^2$。

    根据乘法原理统计答案为:$A_5^5 imes C_4^1 imes A_2^2=960$

    $3.$不相邻插空策略

    例题:

    一个晚会的节目有$4$个舞蹈,$2$个相声,$3$个独唱,舞蹈节目不能连续出场,则节目的出场顺序有多少种?

    题解:

    分两步计算:

    首先,$2$个相声和$3$个独唱共有$A_5^5$种方案数。

    然后我们可以将这$4$个舞蹈不能连续出场看成将它们插入$2$个相声和$3$个独唱所产生的$6$个间隙中,方案数为$A_6^4$。

    根据乘法原理统计答案为:$A_5^5 imes A_6^4=43200$

    提示:不相邻计数通常使用插空法。

    $4.$定序问题倍缩空位插入策略(倍缩法)

    例题:

    $7$人排队,其中甲乙丙$3$人顺序一定,共有多少不同的排法。

    解释一下题意,“甲乙丙$3$人顺序一定”表示甲在乙前,乙在丙前,不需要连续。

    题解:

    先不考虑这三个人的顺序则有$A_7^7$种排法。

    然后考虑我们再除这三个人所能组成的$A_3^3$种排法。

    根据乘法原理统计答案为:$frac{A_7^7}{A_3^3}=A_7^4=840$

    $5.$排列问题求幂策略

    例题:

    把$6$名实习生分配到$7$个车间实习,共有多少种不同的分法。

    题解:

    这道题的特点为:每个实习生的分配对下一个实习生的分配没有任何影响,每个人都有$7$个车间可选,答案即为$7^6$。

    $6.$环排问题线排策略

    例题:

    $8$人围桌而坐,共有多少种坐法?

    题解:

    这道题与坐成一排的区别在于坐成一圈没有首尾之分。

    那么我们可以将这道题理解为:先固定一个人,然后让剩下的$7$个人随便坐即可。

    答案为$A_7^7=5040$。

    提示$1$:一般地,$n$个不同元素作圆形排列,共有$(n-1)!$种排法。

    提示$2$:如果从$n$个不同元素中取出$m$个元素作圆形排列,共有$frac{A_n^m}{m}$种排法。

    $7.$多排问题直排策略

    例题:

    $8$人排成前后两排,每排$4$人,其中甲乙在前排,丙在后排,共有多少排法。

    题解:

    我们现将这个问题转化为$8$个人做成一排,甲乙坐在前四个座位,丙坐在后四个座位。

    前排有两个特殊元素,方案数为$A_4^2$。

    后排有一个特殊位置,方案数为$A_4^1$。

    剩下$5$个人坐在剩下$5$个座位,方案数位$A_5^5$。

    根据乘法原理统计答案为:$A_4^2 imes A_4^1 imes A_5^5=5760$。

    $8.$排列组合混合问题先选后排策略

    例题:

    有$5$个不同的小球,装入$4$个不同的盒内,每盒至少装一个球,求共有多少不同的装法。

    题解:

    依然是分两步处理:

    $1.$从$5$个球中选出$2$个组成复合元共有$C_5^2$种方法。

    $2.$把$4$个元素(包含一个复合元素)装入$4$个不同的盒内有$A_4^4$种方法。

    根据乘法原理统计答案为:$C_5^2 imes A_4^4=240$。

    那么,有的同学可能会有这样的思路:

    首先,从$5$个球中选取$4$个共有$A_5^4$种方法。

    然后将最后一个球放进这四个盒中的其中一个,共有$C_4^1$

    然后根据乘法原理统计答案为:$A_5^4 imes C_4^1=480$。

    为什么答案会是$2$倍呢?

    这么考虑一下,我们先将$1$,$2$,$3$,$4$这$4$个球依次放进$1$,$2$,$3$,$4$这四个盒子,然后再将$5$号球放进$1$号盒子;然后下次再将$5$,$2$,$3$,$4$这$4$个球依次放进$1$,$2$,$3$,$4$这四个盒子,然后将$1$号球放进$1$号盒子,这两种情况是一样的,但是我们重复统计了,所以再将答案除$2$即为得数。

    $9.$平均分组问题除法策略

    例题:

    $6$本不同的书平均分成$3$堆,每堆$2$本共有多少分法。

    题解:

    分三步拿书:

    先从$6$本书中拿出$2$本,共有$C_6^2$种方法。

    然后从剩下$4$本书中拿出$2$本,共有$C_4^2$种方法。

    最后拿走剩下两本,共有$C_2^2$种方法。

    然而每种方案又被计算了$A_3^3$次,所以要除掉。

    根据乘法原理统计答案为:$frac{C_6^2 imes C_4^2 imes C_2^2}{A_3^3}=15$

    $10.$重排列

    例题:

    由四面红旗,三面蓝旗,二面黄旗,五面绿旗排成的一排彩旗有多少种?

    题解:

    首先,不去考虑旗子的颜色,单纯去考虑$14$面彩旗所能组成的方案数共有$A_{14}^{14}$种。

    然后依次考虑四面红旗会被重复统计$A_4^4$次,三面蓝旗会被重复统计$A_3^3$次,二面黄旗会被重复统计$A_2^2$次,五面绿旗会被重复统计$A_5^5$次。

    根据乘法原理统计答案为:$frac{A_{14}^{14}}{A_4^4 imes A_3^3 imes A_2^2 imes A_5^5}=2522520$


    常用结论

    现在介绍完了这$10$种技术方法策略,我们在来介绍两个比较常用的结论:

    $1.$将一个长度为$n$的序列划分成$m$段非空子串的方案数为$C_{n-1}^{m-1}$。

     相当于在$n-1$个空位中选择$m-1$个插入隔板的方案数 。

    $2.$将一个长度为$n$个序列划分成$m$段可空子串的方案数为$C_{m+n-1}^{m-1}$。

     相当于在$m+n-1$个位置中选择$m-1$个作为隔板的方案。


    那么,现在我的讲解就结束了,希望各位大佬可以理解。

    注:上面的计算过程为本人纯手动完成,如有错误请谅解,并在评论区回复。


     rp++

  • 相关阅读:
    什么是内存泄漏?
    将博客搬至CSDN
    jQuery基础事件处理
    vue的特殊指令 v-if v-once v-bind v-for v-on v-model
    svg 直线水平渐变为什么没有效果,必须得是一条倾斜的不水平的直线才有渐变效果呢??
    jQuery基础
    Html 对象的常用事件列举
    javascript应该嵌入到html中的什么位置
    javascript document.createElement() document.createTextNode() appendChild()
    html canvas
  • 原文地址:https://www.cnblogs.com/wzc521/p/11096302.html
Copyright © 2011-2022 走看看