记录CS2304:计算机科学中的数学基础课程中的组合数学部分。
Review
教材:
An invitation to discrete mathematic
Inclusion-Exclusion Principle
通用公式:
proved by induction.
完全错排
记 D(n) 为 n 个元素的完全错排数。
递推公式
D(n) = (n-1)[D(n-1) + D(n-2)]
initial condition: D(1) = 0, D(2) = 1
通项公式
or written as:
容斥原理推导过程
设 A_i 表示”第 i 个元素在原位置上”的排列集合。则完全错排数就是 ,即所有元素都不在原位置的排列数。
补集转化
- $|A{i_1} \cap A{i2} \cap … \cap A{i_k}|$ 表示恰好有 k 个元素在原位置的排列数
- 选择这 k 个位置的方法有
种 - 剩下的 n-k 个位置可以任意排列,有
种方法 - 因此
当 n → ∞ 时,
欧拉函数
欧拉函数
计算方法
乘法性质:若 a, b 互质,则
质数的欧拉函数:若 p 为质数,则
质数幂的欧拉函数:若 p 为质数,k ≥ 1,则
通用公式:对于任意正整数 n,若 n 的质因数分解为:
由容斥原理:
Generation Function
生成函数是将一个序列
其中,
用于排列组合问题:
用于离散随机变量的概率分布:
3. 生成函数的应用
3.1 求解递推关系
1 | # 示例:使用生成函数求解斐波那契数列 |
3.2 计数问题
例:有多少种方式将
- 生成函数:
- 展开后
的系数就是答案
3.3 概率论应用
1 | # 使用生成函数计算两个骰子和的概率分布 |
4. 生成函数的性质
- 加法:序列加法对应生成函数加法
- 乘法:序列卷积对应生成函数乘法
- 微分:
- 积分:
5. 常见生成函数
序列 | 生成函数 |
---|---|
斐波那契数列 |
6. 示例:计算组合数
1 | # 使用生成函数计算组合数 C(n,k) |