OI中的线代学习笔记
排列和逆序对
定义
-
以任意一种顺序将相异的 n 个数重排,每个顺序都称作一个排列。
-
在排列 a1a2..an 中,如果每有一个二元组 (i,j) 满足 i<j 且 ai>aj ,则称 ai,aj 组成了一个逆序对。
-
排列 a1a2...an 的逆序数表示为 τ(a1a2...an) 。
-
定义:如果一个排列的逆序数为偶数,则称此排列为偶排列,否则称为奇排列。
-
定义:在一个排列中,对换其中某两个数,其余的数不动,得到另一个排列,这种操作称为一个对换。
定理
证明:
对于排列 aiai+1...aj−1aj 将 ai 与 ai+1 对换时,逆序对一定增加或者减少一个,所以将 ai 与 aj 调换可以视作:将 ai 逐位对换到 aj 的位置,易得到排列变为 ai+1...aj−1ajai 所需要的操作数为 j−i ;再将 aj 逐位对换到 ai 原先的位置,由于 aj 移动的位置显然比 ai 移动的位置少一个,易得到排列变为 ajai+1...aj−1ai 所需要的操作数为 j−i−1。由于每次相邻的元素对换均会改变排列的奇偶性,而相邻元素总对换数为 2j−2i−1,这显然是个奇数,所以对换会改变排列的奇偶性。
证明;
对于任意一个排列,通过对换可以改变排列的奇偶性,也就是实现奇排列与偶排列的双射,所以奇偶排列数量一样,各占一半。
- 定理:任意一个排列可以经过一系列对换操作变成自然排列,并且所做对换操作次数的奇偶性与这个排列的奇偶性相同。
行列式
定义
- N阶行列式是由 N2 个数 aij(i,j=1,2,...,n) 通过下式确定的一个数
a11a21...an1a12a22...an2...........a1na2n...ann=Σj1j2...jnsgn(j1j2...jn)a1j1a2j2...anjn
其中 Σj1j2...jn表示枚举 1 到 n 的每一种排列对后面的式子进行求和, sgn 函数是符号函数。
a1j1a1j2...anjn 表示从每行取出一个数乘起来,由于排列 j1j2...jn 是没有重复的,所以这里也是从每一行每一列取一个数乘起来。
- sgn(j1j2...jn)=(−1)τ(j1j2...jn)={1 −1 j1j2...jn是偶排列j1j2...jn是奇排列
引理
-
行列互换,值不变。
-
用一个数乘行列式的某行等于这个数乘此行列式。
-
如果行列式中某一行是两组数之和,则这个行列式等于两个行列式之和,这两个行列式分别以这两组数为该行,而其余各行与原行列式对应各行相同。
-
对换行列式中两行的位置,行列式反号。
-
如果行列式中有两行成比例,则行列式等于0。
-
把一行的某个倍数加到另一行,行列式的值不变。
矩阵
定义
- 由 mn 个数排成 m 行 n 列矩形的数表
a11a21⋮am1a12a22⋮am2⋯⋯⋱⋯a1na2n⋮amn
- 称为一个 m×n 的矩阵,记做 A ,其中 aij 称为第 i 行第 j 列的元素。
特殊矩阵种类
- 零矩阵 0:所有位置都为零的矩阵。
- 对角矩阵:只有左上到右下的对角线上的数非零的矩阵。
- 单位矩阵 I:特殊的对角矩阵,对角线上的数均为1。
- 纯量矩阵:A=diag(c,c,...,c)
- 上三角矩阵
- 下三角矩阵
- 对称矩阵
- 反对称矩阵
运算
条件:第一个矩阵的列数等于第二个矩阵的行数。
得到的矩阵的行数等于第一个矩阵的行数,列数等于第二个矩阵的列数。
计算得到的矩阵第 i 行第 j 列的方法为取出第一个矩阵的第 i 行与第二个矩阵的第 j 列对应位置相乘再求和。
矩阵乘法的性质
- 0A = 0, A0 = 0
- IA = A, AI = A
- A(BC) = (AB)C
- A(B + C) = AB + AC
- (B + C)A = BA + CA