若无特殊说明,本文中提到的排列指的是1~n的全排列
先定义一些东西:
- 若\(P_i\)为一个排列,那么定义\(RP_i\)为它的逆排列,即\(RP_{P_i}=i\);
- 定义\(\lambda(P_i)\)为\(P_i\)的逆序对数;
- 若\(P_i,Q_i\)是两个排列,那么定义它们的复合排列为 \(P_{Q_i}\) ,即复合排列的第i个位置上的数是\(P_{Q_i}\) 。(注意\(P_{Q_i}\)与\(Q_{P_i}\)是不同的)
性质1:\(\lambda(P_i)=\lambda(RP_i)\)
性质2: \(\lambda(P_{Q_i})\)与\(\lambda(P_i)+\lambda(Q_i)\)的奇偶性相同
以上两点感性理解吧,这里就不证了。
Binet-Cauchy定理:
其中\(A\)是一个m×n的矩阵,\(B\)是一个n×m的矩阵,\(C\)是一个n×n的矩阵,满足\(C=B*A\)
\(S\)是集合\(\{1,2,...,m\}\)的一个大小为n的子集,\(A_S\)表示由\(A\)保留\(S\)中的行得到的n×n的矩阵,\(B_S\)表示由\(B\)保留\(S\)中的列得到的矩阵。
我们下面就来证明这个定理:
P,Q是长度为n的排列
等式左边等于
简单变换得到:
注意B下标中\(i\)和\(Q_i\)互换了位置,可以证明这样是正确的。
等式右边:
又因为\(C_{i,j}=\sum_{k=1}^m B_{ik}A_{kj}\)
所以\(det(C)=\sum_{P}(-1)^{\lambda(P)}\prod(\sum_{k=1}^m B_{i,k}A_{k,P_i})\)
将连乘拆开,设\(R\)是一个从1~m中选n个数的可重排列,那么上式等于
又因为如果R中存在两个不同的i,j使得\(R_i=R_j\),那么将\(P\)中\(P_i\)和\(P_j\)交换得到\(P'\),在第二个求和符枚举到\(P\)和\(P'\)时后面式子的值会发生抵消(因为\((-1)^{\lambda(P)}\)与\((-1)^{\lambda(P')}\)互为相反数),所以我们可以把R看成一个无重排列,再将R的枚举方式变为先枚举一个大小为n的集合\(S\),再枚举这个集合的排列\(Q\),上式就变成了:
将枚举\(P_i\)变为枚举\(P'=P_{Q_i}\),结合之前排列的性质,上式等于
整理得
这样就和等式右边一模一样了,于是定理得证。