CSP初赛复习-20-组合数学基础

组合数学又被称为离散数学,但有时人们也把组合数学和图论加在一起算成是离散数学,是数学中的一个重要分支。

在信息学领域,主要用到的内容为排列、组合、容斥原理等

两个基本原理

加法原理

加法原理是分类计数原理

做一件事情,完成它有n类方式,第一类方式有M1种方法,第二类方式有M2种方法,……,第n类方式有Mn种方法,

那么完成这件事情共有M1+M2+……+Mn种方法

每类都可以独立完成一件事

例如

从甲地到乙地,可以乘火车,也可以乘汽车,还可以乘轮船。一天中火车有4班,汽车有3班,轮船有2班。

问:一天中乘坐这些交通工具从甲地到乙地,共有多少种不同走法?

分析

乘坐火车有4种走法,可以完成从甲地到乙地,可以独立完成

乘坐汽车有3种走法,可以完成从甲地到乙地,可以独立完成

乘坐轮船有2种走法,可以完成从甲地到乙地,可以独立完成

所以一天中从甲地到乙地共有:4+3+2=9(种)不同走法

乘法原理

做一件事,完成它需要分成n个步骤,做第一 步有m1种不同的方法,做第二步有m2种不同的方法,……,做第n步有mn种不同的方法。

那么完成这件事共有 N=m1×m2×m3×…×mn 种不同的方法

每个步骤没有完成一件事,只是完成了其中一个步骤

例如

马戏团的小丑有红、黄、蓝三顶帽子和黑、白两双鞋,他每次出场演出都要戴一顶帽子、穿一双鞋。问:小丑的帽子和鞋共有几种不同搭配?

分析

演出前着装需要2步

第1步 选1顶帽子 ,有3种选法

第2步 选1双鞋子 ,有2种选法

分2步适合乘法原理,总共搭配数 3 * 2 =6 种

阶乘

阶乘是基斯顿·卡曼(Christian Kramp,1760~1826)于 1808 年发明的运算符号,是数学术语。

一个正整数的阶乘(factorial)是所有小于及等于该数的正整数的积,并且0的阶乘为1。

自然数n的阶乘写作n!。1808年,基斯顿·卡曼引进这个表示法

阶乘递归定义

1 0!=1 递归的出口
2 n!=n(n-1)!

例如

5!= 5 * 4 * 3 * 2 * 1;
n! = n * (n-1) * (n-2)... * 2 * 1;

排列

从n个不同元素中,任取m个元素,按照一定的顺序排成一 列,叫做从n个不同元素中取出m个元素的一个排列

排列公式

\(A^m_n = n * (n-1) * (n-2) ... (n-m+1) = \frac{n!}{(n-m)!}\)

全排列

n个不同的元素排成一排,排列方法有

\(A^n_n = n * (n-1) * (n-2) ... 2 * 1 = n!\)

例题1

用数字 1、2、3、4可以排成多少个没有重复数字的4位数?

分析

思路1

把4个数填入4位数的每个位置,每填1个位置完成一个步骤,总共需要4步,如下图

千位 有4种数字可以选择

百位有3种数字可以选择(千位用去1个数字)

十位有2种数字可以选择(千位用去1个数字,百位用去1个数字)

个位有1种数字可以选择(千位用去1个数字,百位用去1个数字,十位用去1个数字)

分步骤适合乘法原理

4 * 3 * 2 * 1=24 种

思路2

排列问题

从1、2、3、4这4个不同数字中,任意选4个,放到4个位置上

A(4,4)=4!=4 * 3 * 2 * 1=24

例题2

用1,2,3,4 这4个数字组成没有重复数字的自然数?

分析

组成的没有重复的自然有4类,每一种类似例题1,是一个排列问题

1 可以组成1位没有重复的自然数

A(4,4)=4 =4

2 可以组成2位没有重复的自然数

A(4,2)=4 * 3 =12

3 可以组成3位没有重复的自然数

A(4,3)=4 * 3 * 2 =24

4 可以组成4位没有重复的自然数

A(4,4)=4!=4 * 3 * 2 * 1=24

分类可以使用加法原理

总共有:4+12+24+24=64种

组合

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

组合数公式

\(C^m_n= \frac{A^m_n}{A^m_m}= \frac {n * (n-1) * (n-2) ... (n-m+1)}{m!}\)

排列与组合的区别与联系:与顺序有关的为排列问题,与顺序 无关的为组合问题

例题

有10个人,规定相互通话一次,共通话多少次?

分析

组合问题

2人通过,A与B通话1次,也是B与A通话1次,没有顺序区别

从10个里面任意选2人进行通话

C(10,2)=10*9/2=45

组合的性质

性质1

\(C^m_n =C^{n-m}_n\) , (m<=n)

例如

\(C^3_5 =C^2_5\)

\(C^3_5=5 * 4 * 3/(3*2*1)=10\)

\(C^2_5=5 * 4/(2*1)=10\)

性质2

\(C^m_n =C^m_{n-1} + C^{m-1}_{n-1}\) , (m<=n)

例如

\(C^3_5=C^3_4 + C^2_4\)

\(C^3_5=5 * 4 * 3/(3*2*1)=10\)

\(C^3_4=4 * 3 * 2/(3*2*1)=4\)

\(C^2_4=4 * 3 /(2*1)=6\)

10 = 6 +4

圆排列

线排列

n个不同的元素排成一排,排列方法有

\(A^n_n = n * (n-1) * (n-2) ... 2 * 1 = n!\)

圆排列

n个人围成一圈,有多少种排法?

(n-1)!

分析

因为圆排列中,每个元素位置都是一样的,需要先确定一个开始位置

开始位置确定后,结束位置也就确定了

位置确定后,其余n-1个位置有了先后顺序,相当于是n-1个元素的线排列

例如

四个人围成一圈,有几种不同的排列方式?

(4-1)!=3!=6

posted @ 2023-07-31 22:29  new-code  阅读(220)  评论(0)    收藏  举报