若無特殊說明,本文中提到的排列指的是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}\),結合之前排列的性質,上式等於
整理得
這樣就和等式右邊一模一樣了,於是定理得證。