一般地, 在以组合定义定义行列式的教材里, 排列 (或置换) 的一些基本的性质是必要的, 因为它们对论证行列式的性质有用 (通俗地, 这些教材用排列研究行列式). 我想在本节用行列式研究排列 (通俗地, 我要反过来作).
研究排列时, 有一个行为是重要的.
设 a1, a2, …, an 是一个排列. 设 i, j 是不超过 n 的二个不等的正整数. 交换此排列的第 i 个文字与第 j 个文字 (也就是, 交换文字 ai, aj), 且不改变其他的文字, 则, 我们得到一个新的排列 e b1, b2, …, bn, 其中bk=⎩⎨⎧aj,ai,ak,k=i;k=j;其他.我们说, 变 a1, a2, …, an 为 b1, b2, …, bn 的行为是一次对换. 特别地, 若 j=i+1 或 j=i−1 (通俗地, ai, aj, 或 aj, ai, 在 a1, a2, …, an 里, 是相邻的二个文字), 我们说, 这一次对换是一次相邻对换.
考虑排列 I: 3, 2, 5, 1, 4. 交换 3 与 1 的位置, 得排列 II: 1, 2, 5, 3, 4. 我们说, 变 I 为 II 的行为是一次对换.
还是考虑排列 I. 交换 1 与 4 的位置, 得排列 III: 3, 2, 5, 4, 1. 变 I 为 III 的行为当然也是一次对换. 不过, 因为 1, 4 在 I 里是相邻的二个文字, 故我们也可说, 变 I 为 III 的行为是一次相邻对换.
注意, 一次对换的结果可以跟多次相邻对换的结果一样. 比如, 为了变 I 为 II, 我们可以这么作:
交换 3 与 2 的位置, 得排列 IV: 2, 3, 5, 1, 4;
交换 3 与 5 的位置, 得排列 V: 2, 5, 3, 1, 4;
交换 3 与 1 的位置, 得排列 VI: 2, 5, 1, 3, 4;
交换 5 与 1 的位置, 得排列 VII: 2, 1, 5, 3, 4;
交换 2 与 1 的位置, 得排列 VIII: 1, 2, 5, 3, 4.
可以看到, 我们利用 5 次相邻对换实现了一次 (不是相邻的) 对换. 注意, 这是一个奇数.
其实, 不难看出这么一件事. 设 a1, a2, …, an 是一个排列, i, j 是不超过 n 的二个不等的正整数, 且 i<j. 则, 我们可作 2(j−i)−1 次相邻对换以交换此排列的第 i 个文字与第 j 个文字.
相邻对换与逆序数有如下关系.
设 a1, a2, …, an 是互不相同的 n 个整数. 设排列 I: a1, a2, …, an 的逆序数 τ(a1,a2,…,an)=T. 那么, 我们可作 T 次相邻对换变排列 I 为其自然排列.
证. 我们先设 a1, a2, …, an 是 1, 2, …, n 的排列. 作命题 P(n):
对任何 1, 2, …, n 的一个排列 a1, a2, …, an, 我们可作 τ(a1,a2,…,an) 次相邻对换变其为自然排列 1, 2, …, n.
我们用数学归纳法证明, 对任何正整数
n,
P(n) 成立.
P(1) 是对的. 毕竟, 1 只有 1 个排列: 1. 我们不必作任何对换, 它已是自然排列. 排列 1 的逆序数自然是 0.
现在, 我们设 P(m−1) 是对的. 我们证 P(m) 也是对的. 任取 1, 2, …, m 的一个排列 a1, a2, …, am. 那么, 恰存在一个不超过 m 的正整数 k, 使 ak=m. 交换 m 与 ak+1, 再交换 m 与 ak+2, ……, 再交换 m 与 am, 从而可变 a1, a2, …, am 为 a1, …, ak−1, ak+1, …, am, m. 这 m−k 次相邻对换使 m 是最后一个数 (若 am=m, 则不必作对换了, 故此关系仍成立), 且新排列的前 m−1 个整数 a1, …, ak−1, ak+1, …, am 是 1, 2, …, m−1 的排列. 由假定, 我们可作 Tm−1=τ(a1,…,ak−1,ak+1,…,am) 次相邻对换, 变 a1, …, ak−1, ak+1, …, am 为其自然排列 1, 2, …, m−1. 所以, 我们可作 Tm−1+(m−k) 次相邻对换变 a1, a2, …, am 为其自然排列 1, 2, …, m.
注意, 每一个适合条件 1⩽i<j⩽m 的有序整数对 (i,j) 恰适合以下三个条件的一个: (a) i=k 且 j=k; (b) i=k 且 k<j⩽m; (c) 1⩽i<k 且 j=k. 再注意, 对每一个不等于 k, 且不超过 m 的正整数 ℓ, 必有 aℓ<m. 故====τ(a1,a2,…,am)1⩽i<j⩽m∑ρ(ai,aj)1⩽i<j⩽mi,j=k∑ρ(ai,aj)+k<j⩽m∑ρ(ak,aj)+1⩽i<k∑ρ(ai,ak)τ(a1,…,ak−1,ak+1,…,am)+k<j⩽m∑1+1⩽i<k∑0Tm−1+(m−k).从而, 我们可作 τ(a1,a2,…,am) 次相邻对换变 a1, a2, …, am 为其自然排列 1, 2, …, m.
所以, P(m) 是对的. 由数学归纳法, 对任何正整数 n, P(n) 成立.
最后, 我们看一般的情形.
设
a1,
a2,
…,
an 的自然排列是
c1,
c2,
…,
cn. 我们记
f(ci)=i (
i=1,
2,
…,
n). (所以, 在
a1,
a2,
…,
an 中,
ai 是第
f(ai) 小的数.) 那么, 不难看出, 若
d1,
d2,
…,
dn 是
c1,
c2,
…,
cn 的一个排列, 则
f(d1),
f(d2),
…,
f(dn) 是
1,
2,
…,
n 的一个排列; 反过来, 若
v1,
v2,
…,
vn 是
1,
2,
…,
n 的一个排列, 则
cv1,
cv2,
…,
cvn 是
c1,
c2,
…,
cn 的一个排列. 也不难看出, 若
dt<dv, 必有
f(dt)<f(dv). 反过来, 若
f(dt)<f(dv), 必有
dt<dv. 从而,
f(a1),
f(a2),
…,
f(an) 的逆序数等于
a1,
a2,
…,
an 的逆序数. 我们分别为
a1,
a2,
…,
an 取别名
f(a1),
f(a2),
…,
f(an), 即可用老方法, 作跟
a1,
a2,
…,
an 的逆序数一样多的次数的相邻对换, 变
a1,
a2,
…,
an 为其自然排列
c1,
c2,
…,
cn. (注意, 我们总可用类似的方法, 变一般的排列的研究为
1,
2,
…,
n 的排列的研究. 所以, 当我们得到
1,
2,
…,
n 的排列的只跟逆序有关的性质后, 我们总可译其为一般的排列的性质.)
设排列 I: a1, a2, …, an. 施一次对换于排列 I, 得排列 II: b1, b2, …, bn. 则s(b1,b2,…,bn)=−s(a1,a2,…,an).(通俗地, 一次对换变排列的号.)
证. 无妨设排列 I, II 都是 1, 2, …, n 的排列; 可用我在前面提到的方法推广此事于任何的排列.
设
n 级单位阵
I=[e1,e2,…,en]. 作二个
n 级阵
A=[ea1,ea2,…,ean],
B=[eb1,eb2,…,ebn]. 那么,
B 可被认为是交换了
A 的二列, 且不改变其他的列得到的阵. 从而,
s(b1,b2,…,bn)=====s(b1,b2,…,bn)det(I)det(B)−det(A)−s(a1,a2,…,an)det(I)−s(a1,a2,…,an). 设 n⩾2. 设 a1, a2, …, an 是 n 个互不相同的整数. 那么, 在 a1, a2, …, an 的全部排列中, 符号为 1 的排列跟符号为 −1 的排列的数目相等.
证. 设 a1, a2, …, an 的自然排列是 c1, c2, …, cn. 不难看出, 每一个 a1, a2, …, an 的排列都是 c1, c2, …, cn 的排列, 且每一个 c1, c2, …, cn 的排列都是 a1, a2, …, an 的排列,
无妨设 c1, c2, …, cn 分别为 1, 2, …, n; 可用我在前面提到的方法推广此事于任何的排列.
作
n 级阵
U, 其中
[U]i,j=1 (通俗地,
U 的每一个元都是
1). 根据交错性,
det(U)=0. 根据完全展开,
0===det(U)1⩽i1,i2,…,in⩽ni1,i2,…,in互不相同∑s(i1,i2,…,in)[U]i1,1[U]i2,2…[U]in,n1⩽i1,i2,…,in⩽ni1,i2,…,in互不相同∑s(i1,i2,…,in).我问一个简单的问题: 设有
k 个数, 每一个都是
1 或
−1. 若它们的和为
0, 请问, 有几个
1, 有几个
−1? 我想, 您能答出,
1 跟
−1 的个数都是
k/2.
由此可见, 完全展开 n 级阵 (n⩾2) 的行列式的公式里, 符号为 + 的项的数目与符号为 − 的项的数目都是 (n⋅(n−1)⋅⋯⋅2⋅1)/2.
最后, 我想说公理定义的事.
或许, 您还记得, 我在第一章, 节 14, “用行列式的性质确定行列式” 里说过, 行列式的规范性、多线性、交错性可确定行列式:
设定义在全体 n 级阵上的函数 f 适合:
(1) (多线性) 对任何不超过 n 的正整数 j, 任何 n−1 个 n×1 阵 a1, …, aj−1, aj+1, …, an, 任何二个 n×1 阵 x, y, 任何二个数 s, t, 有=f([a1,…,aj−1,sx+ty,aj+1,…,an])sf([a1,…,aj−1,x,aj+1,…,an])+tf([a1,…,aj−1,y,aj+1,…,an]).
(2) (交错性) 若 n 级阵 A 有二列相同, 则 f(A)=0.
那么, 对任何 n 级阵 A, f(A)=f(I)det(A).
特别地, 若 f(I)=1 (规范性), 则 f 就是行列式.
还记得我如何证此事吗? 我作了一个辅助函数g(A)=f(A)−f(I)det(A).可以验证, g 是多线性的、交错性的, 且 g(I)=0. 于是, 设法证对任何 n 级阵 A, g(A)=0 即可. 我为什么要作这个 g?
为解释此事, 我们看, 若我不作此 g, 会如何. 首先, 因为 f 的多线性与交错性, 我们可类似地写出f(A)=1⩽i1,i2,…,in⩽ni1,i2,…,in互不相同∑[A]i1,1[A]i2,2…[A]in,nf([ei1,ei2,…,ein]),其中 ek 是 n 级单位阵 I 的列 k.
然后, 我们要确定 f([ei1,ei2,…,ein]). 由多线性与交错性, 我们可推出反称性. 则我们可以适当地交换 [ei1,ei2,…,ein] 的列, 变其为 [e1,e2,…,en], 即 n 级单位阵 I. 从而, 存在一个由 i1, i2, …, in 确定的数 σ(i1,i2,…,in), 其等于 1 或 −1, 使f([ei1,ei2,…,ein])=σ(i1,i2,…,in)f(I).故f(A)=f(I)1⩽i1,i2,…,in⩽ni1,i2,…,in互不相同∑σ(i1,i2,…,in)[A]i1,1[A]i2,2…[A]in,n.问题来了: σ(i1,i2,…,in) 究竟是什么?
我们回想, 任给 1, 2, …, n 的一个排列 i1, i2, …, in, 我们总可作 τ(i1,i2,…,in) 次相邻对换变其为自然排列. 所以, 我们可作 τ(i1,i2,…,in) 次列的交换 (每次交换二列), 变 [ei1,ei2,…,ein] 为 I. 由反称性,f([ei1,ei2,…,ein])==(−1)τ(i1,i2,…,in)f([e1,e2,…,en])s(i1,i2,…,in)f(I).所以, σ(i1,i2,…,in)=s(i1,i2,…,in). 再根据完全展开det(A)=1⩽i1,i2,…,in⩽ni1,i2,…,in互不相同∑s(i1,i2,…,in)[A]i1,1[A]i2,2…[A]in,n,知 f(A)=f(I)det(A).
由此可见, 理论地, 不作辅助函数 g 也是可证此事的. 不过, 跟作辅助函数 g 的论证相比, 这个试直接计算 f(A) 的论证至少用到了二件事:
(1) 作跟逆序数一样多的次数的相邻对换, 可变一个排列为其自然排列;
(2) 完全展开行列式的公式.
注意, (1) 是我在本节提到的, 而 (2) (在我的教学里) 是选学的内容. 所以, 为了使论证更好地被理解, 也为了使论证简单, 我作了辅助函数. g 的一个特点是 g(I)=0. 所以, 利用反称性变 g([ei1,ei2,…,ein]) 为 g(I) 时, 我们既不必关注变了几次号, 也不必关注如何变 i1, i2, …, in 为 1, 2, …, n (比如, 要变 3, 2, 5, 1, 4 为 1, 2, 3, 4, 5, 可以从后向前看, 交换 5, 4 的位置, 再交换 4, 1 的位置, 再交换 3, 1 的位置); 我们知道, 可适当地交换文字的位置, 变 i1, i2, …, in 为 1, 2, …, n, 即可. “0 跟任何数的积都是 0” 起了大的作用.
用同样的方法, 可证
设 c 是常数. 设定义在全体 n 级阵上的函数 f 适合:
(1) (多线性) 对任何不超过 n 的正整数 j, 任何 n−1 个 n×1 阵 a1, …, aj−1, aj+1, …, an, 任何二个 n×1 阵 x, y, 任何二个数 s, t, 有=f([a1,…,aj−1,sx+ty,aj+1,…,an])sf([a1,…,aj−1,x,aj+1,…,an])+tf([a1,…,aj−1,y,aj+1,…,an]).
(2) (交错性) 若 n 级阵 A 有二列相同, 则 f(A)=0.
(3) f(I)=c.
设定义在全体 n 级阵上的函数 h 也适合这三条性质. 则对任何 n 级阵 A, f(A)=h(A).
证. 作辅助函数
g(A)=f(A)−h(A). 此
g 也有多线性与交错性, 且
g(I)=0. 然后, 用我 (在第一章, 节
14) 用过的方法即可. (注意, 此事甚至没提到 “行列式” “det”.)