0
点赞
收藏
分享

微信扫一扫

信息学赛培 | 15 信息学必备组合数学知识总结

Raow1 2022-11-15 阅读 28


导读

信息学能够有助于孩子未来工作发展,提升孩子的综合能力。


这一节课是信息学赛培班的最后一节课,这节课我们讲解组合数学中一些比较基础的理论和方法,但是这些方法在信息学初赛中基本够用啦,让我们走进本文详细了解一下吧!


由于组合数学内容比较多,所以我们在以后会通过录视频的方式给大家分享更加细致全面的知识。


1 引入

我们看如下一个例子


某班上有10名学生,现在要给这10名学生排队,有多少种排队的方法!


我们可以使用枚举的方法,将所有的情况列举出来,但是太多了。我们只需要知道排队的种数,可以这样分析。


10名同学,就要10个位置,第1个位置能放10个同学,第二个位置只剩9个同学,以此类推,我们知道总的情况数为:


10*9*8*……*1 = 10!


这就是我们今天要讲的内容。


2 组合数学介绍

我们今天要讲关于组合数学的基本知识,这些知识要应用到信息学初赛和复赛中!

1 组合数学介绍

组合数学(Combinatorial mathematics),又称为离散数学。广义的组合数学就是离散数学,狭义的组合数学是离散数学除图论、代数结构、数理逻辑等的部分。


在我们信息学中,组合数学指的是狭义的离散数学,主要研究排列数和组合数的相关内容。

2 组合数学的作用

组合数学基本上每年都会考,绝大多数情况都是在初赛考到。


我们可以总结组合数学在信息学中的作用为如下几条:




奥赛初赛经常会考 
奥赛复赛可能会考
高中数学一定有用
竞赛逻辑必经之路


3 两个计数原理

排列组合是基于两个计数原理的,后面的应用都是计数原理和排列组合的结合,我们先来一起学习一下这两个计数原理:


分类加法计数原理
分步乘法计数原理


1 分类加法计数原理

举个例子,小明有5本语文书,有4本数学书,小明晚上带一本去上自习课,有几种选法?


我们都知道,小明可以从5本语文和4本数学书中选择1本,可以选择语文,也可以选择数学,那么选法的情况有5+4=9种。


这就是分类加法计数原理


分类加法计数原理是考虑要做一件事,要先将这件事分类,最后这件事是所有分类情况的汇总。

2 分步乘法计数原理

举个例子,小明有5本语文书,有4本数学书,小明晚上带一本语文书和一本数学书去上自习课,有几种选法?


我们都知道,小明可以从5本语文和4本数学书中各选择1本,那么选法的情况有5*4=20种。


这就是分步乘法计数原理


分步乘法计数原理是考虑要做一件事,这件事情要分成不同的阶段,最终完成这件事是不同阶段工作的任意地组合,所以要将不同阶段的乘起来。

4 排列与组合公式

接下来我们来看一下排列组合!

1 排列与组合

1、排列


前面我们引入的例子中,我们要给同学排序,我们修改一下,假设我们不是给10个同学排序,而是从10个同学中选择5个进行排序,那么一共的情况数为:


10*9*8*7*6


这就是我们要讲的排列。排列就是从n个元素中选择m个进行排列,第一个位置有n个选择,第二个位置有n-1个选择…,第m个位置有(n-m+1)个选择。


按照分步乘法计数原理,我们可以得到总的选择情况。并把这个记为: 

2、组合


我们举个例子:某班上有5名同学,选择两名同学参加比赛,有几种方法呢?


我们可以使用枚举,假设有A、B、C、D、E五名同学:枚举情况为:AB;AC;AD;AE;BC;BD;BE;CD;CE;DE,一共十种情况。


我们也可以这样分析,五名同学,还可以从剩下的四名同学中选出一名,也就是有5 × 4 = 20种,但是选择AB和选择BA是一样的,所以每种都计算了两次,我们再除以2,就得到有10种情况。


这个思想我们也可以这样想,我们先按照排列,从5个人中选两个,一共有  种,然后对于选中的两个人,不管有多少种排列,都是一种情况,所以要除去排列的情况,即要除以  。一共有:   种方法。


这个时候,我们只需要把同学进行分组,在组内,他们是没有顺序的。也就是说,我们只需要把学生进行组合,而不需要排列。


我们从n个同学中选择m个出来进行组合,把所有能组合的情况记为  ,具体公式如下:




此外,我们规定: 

2 常用公式

在信息学复赛中,我们最重要的不是上面的两个公式,而是上面两个公式的推导的公式:







这5个公式中,第一个、第三个和第四个非常重要,他们之所以重要,是因为,他们将排列组合本来的阶乘运算转换成了递推运算。极大地降低了算法的时间复杂度。


阶乘运算的时间复杂度是阶乘级的,递推运算的时间复杂度是幂级的(基本上是小于n²级),递推运算的复杂度是远小于阶乘运算的。


第二个是非常基础的公式,有了这个,我们求组合数就只需要求一半了。最后一个公式是二项式定理,它有一个非常重要的推导结论:



上面公式的推导,在文章中不好写,我会在后面为大家录制相关的课程视频。


从近几年来看,信息学复赛中很少会涉及排列组合相关知识。只在比较早的两年出过。一年是NOIP2016年组合数问题,一年是NOIP2011年计算系数。有兴趣大家可以去看一下,后面我也会专门录制相关的课程讲解。

5 一些常见情况

在信息学初赛中,最重要的是利用排列组合和两个计数原理解决实际的计数问题!在这些问题中,我们有如下一些比较常考的情况。

1 基本情况

基本情况主要有如下五种:


分类加法计数原理
分步乘法计数原理
排列
组合
枚举法


后面的一些情况,基本上都是要应用到上面的情况的。所以我们首先要熟练掌握上面的方法。

2 特优法

特优法的原则是:特殊位置特殊元素优先排列


例如下面的题目:


0,1,2,4,8能够组成多少个四位数?


在这个题目中,0是特殊元素,最高位是特殊位置,0不能放在最高位。所以我们优先考虑0,或者优先考虑最高位。我们有两种做法。


第一种做法,考虑特殊元素。如果考虑0,那就要分情况,即分类加法计数。一种情况是选择0,一种情况是不选择0。如果选择0,0有三个位置可以选择。然后剩下三个位置,从四个数中选3个随便排列,就是  。所以一共有  。另一种情况不选择0,那么四个数组成四位数  ,就是。最后我们将两种情况加起来为  。


第二种做法,考虑特殊位置。如果考虑最高位,最高位可以从4个非0数中选择1个,即4。然后剩下4个数,选出3个在3个位置随便排列,所以是 

3 间接法

首先我们先定义几个概念:


当前问题:我们要研究的问题;
全问题:当前问题去掉某些限制条件甚至全部限制条件的问题;
补问题:全问题中不属于当前问题的剩余问题的集合。


间接法是说当前问题的情况数 = 全问题的情况数 - 补问题的情况数,当我们直接求不好求的时候,我们找到要求的问题的全问题和补问题,问题的全问题和补问题特别好求,这样我们要求的问题就等于全问题-补问题;以上面的题目为例:


上面的问题的全问题是:


0、1、2、4、8选择四个数进行排列。


全问题的情况数就是从5个中选4个排列,有 


补问题是:


0放在最高位的排列


补问题的情况数就是从4个中选3个排列,有 


所以最终有 


注意,全问题理论上是去掉全部的限制条件。但是在实际应用中,如果全部去掉,全问题可能就是全排列。那么全问题的范围会很大,对应的补问题范围也很大。这样不一定利于求解,我们转换为全问题-补问题,是基于全问题和补问题的求法远比原问题简单。要不然就没有用间接法的必要了。

4 欧拉错位排列

欧拉错位排列是非常经典的题目。这个问题也被称为错放信封问题:


编号是1、2、…、n的n封信,装入编号为1、2、…、n的n个信封,
要求每封信和信封的编号不同,问有多少种装法?


这个问题也被称为互送贺卡问题:


有1、2、…、n的n个同学,他们要给其他的同学送贺卡。
不能送给自己,不能送给已经收到贺卡的人,有多少种送法?


不管什么描述方式,本质都是一样的,我们以信和信封为例说明。


当有1封信时,我们知道,只能放在同一个编号,所以n为1时有0种装法。


当有2封信时,我们可以交错放,即1放2, 2放1。所以n为2时有1种装法。


当有3封信时,可以的放法为:312、231。所以n为3时有2种装法。


当有4封信时,使用枚举就不太方便了,我们可以使用特优法。但是特优法不适用于5个以上的情况。


欧拉错位排列有通项公式,也有递推公式。当有4个及以上时,使用通项公式和递推公式会更方便。


递推公式用的是特优法。通项公式用的是容斥原理。


递推公式为:



通项公式为:



在竞赛中,我们最好使用通项公式计算所有的情况,前五个我们可以记住:


f(1)=0
f(2)=1
f(3)=2
f(4)=9
f(5)=44


具体的推导过程后面会通过录视频的方式讲解。

5 切蛋糕法(容斥原理)

切蛋糕法是我最开始研究欧拉错位排列时候用到的方法,后来学习了容斥原理,发现这种方法是有专业名词的。


容斥原理是说在计数过程中,先不考虑重叠的情况,把包含于某内容中的所有对象的数目先计算出来,然后再把计数时重复计算的数目排斥出去,但是排斥的过程会产生多排斥的情况,我们就要再把多排斥的添加进来,通过不断地排斥添加,使得计算的结果既无遗漏又无重复。


例如下面这个图:


信息学赛培 | 15 信息学必备组合数学知识总结_组合数学


一件事情有ABC三种情况,三种情况有重叠,那这三种情况发生其中一种的情况数如下:


A + B + C - AB - BC - AC + ABC


其中,AB指的是A和B同时发生,ABC指的是ABC同时发生。


容斥原理强调容不怕多,斥不怕少!容不怕多的意思是添加的时候不怕添加的多,斥不怕少的意思是排斥的时候,不怕剩下的少。这是因为,后面容斥的部分基本上都是前面容斥的部分的子集。


容的时候,最终结果必须是容的结果的子集。即容的结果外不能有最终结果之内的情况。因为后面的容是此次容的子集。此次没有容,以后就容不上,就会漏情况。


斥的时候,斥的结果必须是最终结果的子集。即斥的结果不能有最终结果之外的情况。因为后面的斥是此次斥的子集。此次没有斥,以后就斥不掉,就会多情况。

6 插空法

插空法是在有序的序列中,插入一些有序的数据。一般来说,插空要求空不能是两端的空,也不能是相邻的空。


例如,下面这道题目。


某班有10名同学,其中有3名女生,要求站队时女生不能相邻,不能站两端。问有多少种站法?


这道题目,女生是特殊情况,所以我们先给男生站队,7名男生没有限制,有  种站法。然后7名男生有6个空,从6个空中选择3个空排序,有种  放法。最后应用分步乘法计数原理,一共有  种。


插空法最一般的情况就是将m个不同的元素插入到n个已经有序的元素中。n个元素会形成n-1个空,所以情况数为:  。


如果允许在两端,那就是  。


7 隔板法

隔板法和插空法类似。隔板法是在有序的物品中,隔多个相同的板,也可以说,将n个有序的物体分成m份。


隔板法主要有两种情况,一种情况,是每一份必须至少有一个;另一种情况是可以有的份一个都没有。


例如将5个排好序的苹果分3份,如果是第一种情况,那就只能是如下几种方法:


1 1 3
1 3 1
3 1 1
1 2 2
2 2 1
2 1 2


如果是第二种情况,那就可以是如下这些情况:


0 0 5,0 5 0,5 0 0
0 1 4,0 4 1,1 0 4,1 4 0,4 0 1,4 1 0
0 2 3,0 3 2,2 0 3,2 3 0,3 0 2,3 2 0
1 1 3,1 3 1,3 1 1
1 2 2,2 1 2,2 2 1


对于第一种情况,5个苹果就有4个空,然后分3份就是隔2个板,所以是从4个空中选两个隔板,有 


对于第二种情况。我们可以相当于有5个真苹果,3个假苹果。如果隔得某一部分只有假苹果,那就说明这个部分没有苹果。所以有5+3-1个空,隔成3份有2个板,有  种情况。


总结一下,如果将n个有序的东西隔板隔成m份。如果每一份都要有,那就有  种情况。如果有些可以没有,那就有  种情况


第二种情况在2017年信息学提高组初赛有出:


将 7 个名额分给 4 个不同的班级,允许有的班级没有名额,有( )种不同的分配方案。‍


A. 60
B. 84
C. 96
D. 120


允许有的没有名额,那就是 

6 作业

本节课的作业,就是复习上面的所有知识,并完成下面两道题目!

1 NOIP2017普及组

甲、乙、丙三位同学选修课程,从 4 门课程中,甲选修 2 门,乙、丙各选修3 门,则不同的选修方案共有( )种。


A. 36 
B. 48
C. 96
D. 192


2 NOIP2016普及组

有 7 个一模一样的苹果,放到 3 个一样的盘子中,一共有( )种放法。


A. 7 
B. 8
C. 21
D. 3^7




AI与区块链技术

信息学赛培 | 15 信息学必备组合数学知识总结_排列组合_02

长按二维码关注

举报

相关推荐

0 条评论