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
作者:newcode 更多资源请关注纽扣编程微信公众号

从事机器人比赛、机器人等级考试、少儿scratch编程、信息学奥赛等研究学习

浙公网安备 33010602011771号