返回课程大厅
第5章建设中建议学习 3 学时

组合计数

学习排列组合、抽屉原理、容斥原理和递推关系,提升离散对象计数能力。

61%
学习进度
5 个
重点概念
3 题
检测任务
学习目标
1

区分排列与组合的适用场景

2

理解容斥原理处理重叠计数的方式

3

能够建立简单递推关系描述计数过程

在线教材正文

组合计数研究“有多少种可能”。它不一定要求列出所有结果,而是通过结构分析得到数量。密码设计、测试用例生成、概率计算和算法复杂度分析都离不开计数思想。

排列强调顺序,组合不强调顺序。判断一个问题使用排列还是组合,关键是看交换对象位置后结果是否发生变化。若位置变化产生新的结果,通常使用排列;若只是选出对象集合,则使用组合。

容斥原理用于处理多个条件之间存在重叠的计数问题。直接相加会重复计算交集,因此需要加减交替修正。它体现了离散数学中“先放宽条件,再逐步校正”的典型思维。

递推关系通过前后项之间的联系描述数量变化。许多算法问题都可以转化为递推形式,例如斐波那契数列、汉诺塔问题、动态规划状态转移等。

教材例题

统计至少选修一门实践课的学生人数时,如果直接把各实践课人数相加,会重复计算选修多门课程的学生,需要使用容斥原理修正。

讨论提示

为什么很多算法设计问题最终会转化为递推关系或状态转移?

章节自测
题目 1

判断一个问题应使用排列还是组合。

题目 2

用容斥原理计算至少满足一个条件的对象数量。

题目 3

为简单台阶问题建立递推关系。