奇排列与偶排列的个数¶
本页面回答对换与奇偶排列开头提出的问题:\(n\) 阶排列中奇排列与偶排列各有多少个? 答案是各占一半,即各有 \(\dfrac{n!}{2}\) 个。
证明的工具是双射:只要在两个有限集之间建立一个双射,就能断定它们元素个数相等。这也是本课程第一次用"数个数"的方式(而不是逐个去数)比较两个集合。
问题的提出¶
设 \(n \ge 2\)。由逆序数的定义,每个 \(n\) 阶排列的逆序数非奇即偶,所以每个排列要么是奇排列,要么是偶排列,二者必居其一。于是
若还能知道两者相等,就得到各为 \(\dfrac{n!}{2}\)。直观上它们"应该一样多",但"直观"不是证明——需要一套工具。
准备工作:用映射比较两个有限集的元素个数¶
定义(映射、单射、满射、双射)
设 \(X, Y\) 是集合。一个从 \(X\) 到 \(Y\) 的映射 \(\varphi: X \to Y\) 是指:对每个 \(x \in X\),都指定了唯一的 \(y \in Y\) 与之对应,记作 \(y = \varphi(x)\)。
- 若 \(x_1 \ne x_2\) 必有 \(\varphi(x_1) \ne \varphi(x_2)\),即"不同的元素像不同",称 \(\varphi\) 是单射;
- 若对每个 \(y \in Y\) 都存在 \(x \in X\) 使 \(\varphi(x) = y\),即"\(Y\) 中每个元素都被打到",称 \(\varphi\) 是满射;
- 若 \(\varphi\) 既是单射又是满射,称它是双射(也叫一一对应、可逆映射)。
命题(用映射比较元素个数)
设 \(X, Y\) 是有限集,\(\varphi: X \to Y\) 是映射。
- 若 \(\varphi\) 是单射,则 \(\#X \le \#Y\);
- 若 \(\varphi\) 是满射,则 \(\#X \ge \#Y\);
- 若 \(\varphi\) 是双射,则 \(\#X = \#Y\)。
证明
1. \(\varphi\) 是单射,说明 \(X\) 中不同的元素在 \(Y\) 中有不同的像。于是映射 \(x \mapsto \varphi(x)\) 把 \(X\) 与它在 \(Y\) 中的像集 \(\varphi(X)\) 一一对应,故 \(\#X = \#\varphi(X)\)。又 \(\varphi(X) \subseteq Y\),所以 \(\#X = \#\varphi(X) \le \#Y\)。
2. \(\varphi\) 是满射,说明 \(Y\) 中每个元素都至少是 \(X\) 中一个元素的像,即 \(Y = \varphi(X)\)。把 \(X\) 按"像等于谁"分组,每组非空,组数恰为 \(\#Y\);每组至少含 \(1\) 个元素,故 \(\#X \ge \#Y\)。
3. 由 1 得 \(\#X \le \#Y\),由 2 得 \(\#X \ge \#Y\),故 \(\#X = \#Y\)。
第 3 条才是我们真正要用的
第 1、2 条只是陪衬,实际做题几乎只用第 3 条:想证明两个有限集元素个数相等,就造一个双射。 这也是后面处理"两个集合一样大""两种东西一样多"这类命题的标准套路。
定理与证明¶
定理(奇排列与偶排列的个数相等)
设 \(n \ge 2\) 是正整数。则 \(n\) 阶奇排列与 \(n\) 阶偶排列的个数相等,均为
证明
记号。 设
- \(S_n\) 为所有 \(n\) 阶排列构成的集合,\(\#S_n = n!\);
- \(A_n\) 为所有 \(n\) 阶偶排列构成的集合;
- \(B_n\) 为所有 \(n\) 阶奇排列构成的集合。
第一步:\(S_n\) 是 \(A_n\) 与 \(B_n\) 的不交并。 每个排列非奇即偶,且不能既是奇又是偶,所以 \(A_n \cap B_n = \varnothing\) 且 \(S_n = A_n \cup B_n\)。因此
第二步:造一个从 \(A_n\) 到 \(B_n\) 的映射。 规定
即"把前两个位置上的数互换"。这一步是一次对换,所以由对换改变奇偶性,偶排列经过它变成奇排列,\(\varphi\) 确实落在 \(B_n\) 中,定义合理。
同样规定
第三步:\(\varphi\) 与 \(\psi\) 互逆。 对任意 \((i_1 i_2 \cdots i_n) \in A_n\),
因为"互换前两个位置"再做一次就还原了。同理 \(\varphi \circ \psi\) 也是恒等映射。故 \(\varphi\) 与 \(\psi\) 互逆,\(\varphi\) 是双射。
第四步:结论。 由准备工作的第 3 条,\(\#A_n = \#B_n\)。结合第一步,
也可以直接验单射与满射
不想用"互逆 ⟹ 双射"这条路,也可以分别验证:
- 单射:若 \(\varphi(i_1 i_2 \cdots i_n) = \varphi(i'_1 i'_2 \cdots i'_n)\),即互换前两位后的排列相同,那么互换回去也相同,故 \((i_1 i_2 \cdots i_n) = (i'_1 i'_2 \cdots i'_n)\);
- 满射:任取 \((j_1 j_2 \cdots j_n) \in B_n\),互换它的前两位得到 \((j_2 j_1 j_3 \cdots j_n) \in A_n\),它的像正是 \((j_1 j_2 \cdots j_n)\)。
两条都成立,故 \(\varphi\) 是双射。两种写法等价,选顺手的即可。
为什么要求 \(n \ge 2\)
\(n = 1\) 时只有排列 \(1\),它是偶排列,没有奇排列,\(\dfrac{1!}{2}\) 也不是整数。上面证明中"互换前两个位置"在 \(n = 1\) 时无从谈起,所以定理必须要求 \(n \ge 2\)。
\(n = 0\) 或规定 \(0! = 1\) 的情形同样要单独处理,本课程只讨论 \(n \ge 2\)。
这个证明的范式¶
把上面的证明抽出来看,它做的是三件事:
- 把要数的对象写成集合(\(A_n\)、\(B_n\)),把已知的计数写成方程(\(\#A_n + \#B_n = n!\));
- 在两个集合之间造一个映射,并验证它落在目标集合里(用的是刚证过的定理);
- 验证这个映射是双射(通过"互逆"或"单射 + 满射"),从而得到两个集合一样大。
以后遇到"证明两类对象一样多""证明两个集合等势"的问题,都可以照这个范式走。本课程后面(例如矩阵的秩、线性空间的维数)会反复出现"造双射 / 造一一对应"的思想。
参见¶
- 对换与奇偶排列:上一页,本页定理所依赖的对换定理
- 数学建模:数字华容道:下一页,奇偶性的一个具体应用
- 导论 · 关系与等价类:划分与"不交并"的说法
- 数学分析 · 映射:单射、满射、双射的系统讲法(另一分册)
- 首页:全站记号约定