【高等代数】05 - 线性变换

  线性变换是线性代数的核心概念,包含的内容和结论十分丰富。之前的讨论其实已经比较完备了,但这里我还是想把它的主要脉络再梳理一遍,然后再补充一些重要的问题和结论。

1. 线性变换和不变子空间

1.1 线性变换

  线性变换Aα(或线性映射)的概念自无需多说,它是线性空间V之间的一种映射关系。而映射最重要的概念就是象和原象,尤其是变换的象AV与核KerA,通过关系式(1)搭建起了变换A的基本机构。它直观地描述了线性变换在维度上的意义,你可以轻松说出V,KerA,AV三者之间的关系。更甚地,可以把V表示成某个直交和KerAU,而这里U必定与AV同构。这个简单的关系很容易被忽略,但它在复合变换的论证中起到了核心的作用,比如关于复合变换的秩(象的维数)的估算,再比如后面关于幂零变换的归纳法证明。

(1)V/KerAAV

  式(1)说明,变换使得V的维数减少了dim(KerA),这个角度非常便于讨论复合变换的秩。对于复合变换AB,它的秩显然有上界max{rankA,rankB}。从维度减少的角度,不难有式(2)的上界式,从而轻松得到复合变换秩的下界式(3)。使用这个角度,你可以尝试一下下面的两个问题。

(2)dim(KerAB)dim(KerA)+dim(KerB)

(3)rank(AB)rankA+rankBdim(V)

  • 如果rank(AB)=rank(B),则对任意变换C都有rank(ABC)=rank(BC)

  • Frobenius不等式:rank(ABC)rank(AB)+rank(BC)rank(B)

  我们知道,任何一个线性变换AHom(V,V),都可以由某组基{αi}以及它们的象完全确定,并由此得到了这组基下的变换矩阵A。为了让矩阵运算和变换运算的格式保持一致,把aij定义成Aαjαi上的坐标。如果再把所有向量α映射成坐标列向量aAα的象就是Aa,而变换AB的矩阵也正好是AB,这样使用起来就方便多了(后面将不加区分地写成A)。值得提醒的是,变换矩阵是线性变换的一种表示形式,可以更方便地讨论变换的性质;但其并不能完全替代后者,有时反而会让叙述变得繁琐(比如矩阵秩的讨论)。

1.2 不变子空间和最小多项式

  线性变换没有线性映射那样简单的标准式(基于式(1)),因为它的原象和象纠缠在一起(在一个空间)。我们能做的就是找到合适的基,让它们的象和原象划分到尽量多的子空间中,这就是不变子空间的概念(简称A-子空间)。为了能将V划分成多个不变子空间,需要用到两个关键的结论。第一个是如果有AB=BA,那么BV,KerB都是A-子空间。特别地,任何多项式f(A)F[A]都与A可交换,因此Kerf(A)都是A-子空间。如果有式(4)左的互质分解,根据多项式的欧几里得定理,不难有式(4)右的分割。

(4)f(x)=g(x)h(x),(g,h)=1Kerf(A)=Kerg(A)Kerh(A)

  第二个是Hamilton-Caylay定理A的特征多项式φ(λ)满足φ(A)=0,即它是一个零化多项式。零化多项式的存在,使得式(4)右的分割可以从整个线性空间V开始。也就是说,如果零化多项式有互质分解gi(x),那么V可以拆分为线性无关的子空间和Kergi(A)。为了让问题更简单,我们一般用次数最小的首1零化多项式,即最小多项式m(x)。根据多项式理论不难证明,m(x)能整除所有零化多项式。

  另外,零化(最小)多项式的概念也可以定义在单个向量、向量集或子空间上,而且显然V的零化多项式一定是它(们)的零化多项式。特别地,特征值λi的特征子空间Vi(λλi)为其最小多项式mi(x),而m(x)Vi的零化多项式,故而mi(x)|m(x),这说明m(x)含有(复数域上)所有特征项(λλi)因子。得到零化多项式最直接的方法,当然是求解以多项式系数为未知数的线性方程组。这个方法没有多大实际意义,但却可以间接说明,一定存在V的域F上的解(如果有复数解),从而扩张域F并不会带来新的最小多项式。

  假设m(x)有式(5)左的互质分解,则线性空间可以有右式的直和分解,V的任何向量α都可以分解为其在Kerpi(x)中的投影Pi(α)的直和。但要注意对一个子空间U而言,却不能说可以分解为Pi(U)的直和,直和包含但往往大于U。当UA-子空间时,利用多项式的互质化1性质,不难构造出PiA的一个多项式。这时U也是Pi的不变子空间,Pi(U)的直和又包含于U,故而两者是相等的。另外不难看出Pi(U)就是UWi,故而不变子空间都有式(6)的直和分解,这就得到结论:Wi不变子空间的直和构成了全部A-子空间。

  特别地,如果最小多项式m(x)=(λλi)都是一阶一次的,由核分解法(5)知V可以被分解为特征空间之和,从而A可对角化。反之亦成立,故有A可对角化等价于m(x)由一次一阶因式组成,这是个极其有效的判断可对角化工具。另外,结合式(6)的结论可知:可对角化变换A的任意特征向量的直和,构成了全部A-子空间。

(5)m(x)=p1(x)pr(x)V=Kerp1(x)Kerpr(x)

(6)U=(UW1)(UWr),Wi=Kerpi(x)

  在得到更深入的结论之前,我们先来开个脑洞。假设变换A的最小多项式p(λ)r阶不可约的,根据多项式的理论,F[A]是一个以p(A)为0元的域。而回顾线性空间的定义,它可以建立在任何域上(不限定是数域),如果把f(A)α视为域F(A)上的纯量乘法,则V也可以看成域F(A)上的线性空间!只是要注意,F[A]在原始域上的维度是r,所以V在域F[A]上是nr维的。这个神奇的角度可以让变换f(A)如纯量一样自由使用,带来许多意想不到的效果,以下先举一例,本篇的最后会再次用到。

  任何子空间都有补空间,但任何A-子空间却不一定有A-补空间。比如幂次为r>1的幂零变换A,它有非平凡的A-子空间U=Ker(Ar1),任何子空间的象都是探索到U里。所以UA-补空间W0必须满足AW=0,故WU,导致矛盾。这个结论能扩展到更一般都情况,对于满足gr(A)=0,(r>1)的变换,非平凡A-子空间g(A)V没有A-补空间。如果要求所有A-子空间都有A-不空间(称为半单变换),则最小多项式所有项的幂次必须为1(否则可以构造出如上的g(λ))。

  反之,对于m(λ)=pi(λ)的变换(pi(λ)互质不可约),先将V分解为Wi=Kerpi(A)的直和,并记Ai=AWi。根据式(6)有任意A-子空间U都由Ui=UWi直交而成,为了找到UiWi上的A-补空间,把Wi看成域F[Ai]上的线性空间。由于Wi,U都是f(A)F[A]的不变子空间,故Ui也是Wi在域F[Ai]上的子空间,取它的补空间Gi,它显然是个A-子空间。所以在原始域上,Ui总有A-补空间Gi,这时G=Gi就是UA-补空间。总结便有:半单变换的充要条件是最小多项式的不可约项都是1次的。

2. 线性空间的分解

2.1 复数域上的分解

  复数域上的特征多项式都可以分解为一阶多项式幂(λλi)li的乘积(liλi代数重数), 从而V可以先被分解为若干A-子空间Wi=Ker(AλiI)li的直和。为了方便深入讨论(分解)这样的A-子空间,记AλiIWi上的变换为A0。显然A0-子空间也是A-子空间,而且A0是幂零变换(A0s=0,sli)(取最小的s叫做λi几何重数)),下面只需集中讨论WiA0上的分解。

  对于任何αWi,都存在A0tα=0,(ts),由此生成强循环子空间α,,A0t1α。显然,它的特征多项式和最小多项式都是λt,而且不能再分割为两个不变子空间。幂零变换下的不可再分割的不变子空间,想必都是这样的强循环子空间,而Wi应当可以被分解为若干强循环子空间。但简单尝试后发现,从局部开始分割出这些链条是不太可能的(无法解决链条缠绕问题)。另外注意到,每个链条的最后一环A0t1α都是0特征向量,它们组成了核空间K0=KerA0。接下来可以在K0上使用式(1)降维处理,并通过递归论证找到分解的方法,以下具体讨论。

  考察A0Wi/K0上的诱导变换A1,它也是一个幂等变换A1s1=0,但幂次少1,且KerA1(的代表元)都是强循环链条的倒数第二环。以此类推,构造出不同维度的变换A0,,As1=0,以及它们的核空间K0,,Ks1。这时,强循环链条的每一环(从A0t1αα),依次是Wi/K0,的代表元。另外根据诱导变换的结论,这些核空间的代表元(都是Wi的子空间)是互不相关的,且它们的正交和就是Wi

  现在根据这个结构,分解出独立的链条。先从Ks1的代表元中选出一组基{αj},它们都能生成最长的强循环链条。由于{αj}Ks2的代表元不相关,通过反证法可以有{AαjKs2}也不相关,递归可知这些链条的所有元素都是不相关的。接下来再在{αj}Ks2上的补集就行类似的讨论,最终递归构造出互相独立的链条,而链条的所有元素便是Wi的一组基。需要注意的是,不管基如何选取,不同长度链条(不同维度的强循环子空间)的个数都是确定的。

  回顾整个构造过程,并结合式(1)可知,Ai+1的原象与Ai的象同构,递推得到Ai的象同构于A0i+1,即有rank(Ai)=rank(A0i+1)。重新记A0的原象Wi的维度为n,它就是所有链条的长度和,而Ai原象的维度则是所有链条截断后i节后的长度和。首先不难看出链条的个数就是K0的维数nrank(A0),然后记长度为r的链条的个数是nr,不难有关系式(7),解此方程组便能得到每个链条的长度。从变换矩阵的角度看,A0以链条为基的变换矩阵是一个分块对角矩阵D。每一个分块对应一个链条,是一个次对角矩阵,且分块的个数和大小也跟链条一致。

(7)1nk+1+2nk+2+(sk)ns=rank(A0k),(k=0,1,,s1)

  现在回到Wi上的变换A=A0+λiI,它还是可以按上述链条分割为若干不变子空间,以链条为基的变换矩阵是D+λiI。最终不难推导,空间V上的变换A也能这样分割,以及有对应的变换矩阵。形如式(8)的矩阵称为Jordan块,由若干Jordan块组成的变换矩阵称为Jordan标准型。以上论证则说明了:任何特征多项式可以分解为一阶因式的线性变换A(不一定是复数域),都有唯一的Jordan标准型。反过来,也可以用Jordan标准型直观地理解链条分解的论述。

(8)Jn(λ)=[λ11λ]n×n

  Jordan标准型将线性变换“正交分解”,使得问题的讨论可以分化到更小更简单的不变子空间(链条)上,是极其有效的分析工具。比如通过式(9)可知,有Jordan标准型的变换,与其转置变换相似。如果要具体构造标准型,首先从特征多项式得到特征值和重数,然后把式(7)稍作修改,得到每个特征值下的Jordan块。后一步要基于这样的事实:从标准型可以看出,AλiI在其它特征值的链条下都是满秩的。

(9)CJn(λ)C=[λ11λ];C=[1...1],C2=I

2.2 一般域上的分解

  复数域上递归分解的方法可以套用到一般数域,基本思想还是降维递归、提取不相关的循环链条,下面就照着再说一遍。假定An维线性空间V上的线性变换,它有最小多项式pisi(λ),其中pisi(λ)是互不相同的不可约因式。先将A分解为若干A-子空间Wi=Kerpisi(A)的直和,然后在每个子空间上继续分解。不失一般性,记这个空间为W,维度为nA在其上的变换为A0,最小多项式ps(λ)的次数为r。下面对s使用第二归纳法递归论证。

  当s=1时,对所有元素都有p(A0)α=0。先构造出循环子空间U=α,,A0r1α,然后对A0W/U上的诱导变换进行归纳递归的构造。最终便能得到W的一组基,它由n/r个循环链条组成,这就是我们要的最终分解。注意这里的一个链条只相当于复数域场景的一个元素,这就是一般域上的不同之处,也是造成复杂的主要原因。

  当s>1时,类似地构造出K0=Ker(p(A0)),以及A0W/K0上的诱导变换A1A1的最小多项式是ps1(λ),按归纳法它可以分解为若干无关的链条,取其一α+K0,,A0t1α+K0。记α+K0的最小多项式为q(λ)=pe(λ),则有β=q(A0)αK0,取其循环链条β,,A0r1β。不难证明β链条与α+K0链条的代表元互不相关,且合并后等价于α链条α,,A0sr1α,每个这样的α+K0链条都能找到对应的β链条,并扩展为更长的α链条。

  根据所有α链条的不相关性,用反证法可知它们的β链条也是不相关的。这相当于所有的β链条将K0进行了局部分割,而剩下的部分也不难分割为若干长度为rα链条。所有α的元素互不相关,正好构成了W的一组基,这就是我们要找的最终分解。每个链条下的变换矩阵有形式(10),它称为Frobinus矩阵,也叫有理块,而有理块组成的变换矩阵叫有理标准型。每个有理块的特征多项式和最小多项式都是pe(λ),其中er=taipe(λ)λi的系数。另外如果构造过程中不展开链条,每个分块将是式(11)右的形式(Hr只有右上角为1),它也被称为广义Jordan块,对应也有广义Jordan标准型

(10)C(p(λ))=[00a010a101at1]t×t

(11)C(pr(λ))[C(p(λ))HrHrC(p(λ))]

  最后根据构造链条的过程易知,链条的个数为1rdimK0=1r(nrank[p(A0)])。若记长度为ir的链条的个数为ni,还有式(12)方程组,求解便得到每种链条的个数,从而得到有理标准型。放到一般的变换A和空间V中,由于p(λ)与其它pj(λ)互质,利用多项式化一理论可知,pk(A)在其它Wj上是满秩的,故而rank[pk(A0)]=rank[pk(A)]。也就是说,可以直接用rank[pik(A)]计算Wi上每种链条的数量。

(12)1nk+1+2nk+2+(sk)ns=1rrank[pk(A0)],(k=0,1,,s1)

2.3 λ矩阵

  标准型是特殊的相似矩阵,它保留了线性变换的核心元素(全系不变量),并以更简单的形式方便了理论推导。但从讨论中看出,具体计算、构造这些全系不变量并不轻松,我们需要一个更好的获取它们的方法。但鉴于这个方法和矩阵相似的跨度实在太大,我一直苦于寻找到一个过渡更顺滑的讲法,但不知从何说起。勉强来说,是要从相似矩阵AB的特征矩阵矩阵λIA,λIB中寻找共同点,一是因为特征矩阵原生地保留了变换的所有信息,二是这种表达在HC定理中有一个不容忽视的性质。

  首先把元素为λ多项式的矩阵称为λ矩阵,如果允许使用矩阵的数乘运算,每个λ矩阵可以表示为式(13)。式(13)把λ矩阵看成了矩阵系数的λ多项式,而这里的λ仅限定在空间的域上。刚才提到的重要性质是指,如果F(λ)能表示成式(14)左,那么把λ换成矩阵A时仍然成立。这个性质依赖一个很简单的道理:要想这种替换成立,只需λ,A可交换,故而取λ=A一定成立。当然,λ可以替换为任何与A可交换的矩阵。

(13)F(λ)=λsAs++λA1+A0

(14)F(λ)=(λIA)(λs1Bs1++B0)F(A)=0

  然后在λ矩阵上扩展初等变换和相抵的概念,但要限定初等变换也是λ矩阵且可逆,故必须是格式P(i,j),P(i,j(f(λ))),P(i(k))之一。在这样的定义下,显然λIA,λIB是相抵的,反之如果有P(λ)(λIA)=(λIB)Q(λ),由式(14)也能得到AB。这就是说矩阵相似与特征矩阵相抵是等价的,而相抵的每一步初等变换都可逆,故可以探索特征矩阵的相抵矩阵而不惧丢失信息。

  初等变换开始出现于行列式当中,那么来考虑A(λ)的所有k阶子式的行列式,它们是一个多项式集合。初等变换对它们施加的无非是交换、倍数差、纯量乘,由多项式的理论,这些并不改变多项式集的首1最大公因式Dk(λ)。它也被称为A(λ)k阶行列式因子,它们是相抵意义下的不变量。为了更快地解析出行列式因子,可以先找到d1(λ)=D1(λ)放在1行1列,并将1行1列其它元素零化,然后递推得到相抵对角矩阵(15)。其中di(λ)=Di(λ)/Di1(λ),这保证了di(λ)的唯一性,它称为M(λ)不变因子,这样的相抵λ矩阵也叫M(λ)Smith标准型

(15)F(λ)=P(λ)[d1(λ)dn(λ)]Q(λ),di(λ)=Di(λ)Di1(λ)

  λ矩阵相抵只涉及到多项式的运算,不管在计算还是理论推导上,都有其独有的优势。比如解析过程中发现,Smith标准型并不受数域的影响,所以λ矩阵的相抵关系不因数域而改变,进而证明矩阵相似也不因数域而改变。再比如转置特征矩阵的行列式因子不变,再次证明总有AA。另外由于递归中di(λ)总是选的公因式,因此还有性质di(λ)di+1(λ)(最后几个可能为0)。

  di(λ)的不可分解因式mr(λ)被称为λ矩阵的初等因子,它和不变因子都是λ矩阵的不变量。如果给定非平凡的初等因子或不变因子,以及矩阵的秩(必需),便能很容易地恢复出它的Smith标准型。有趣的是,只要能找到一个对角型的相抵矩阵,对角元的所有不可分解因式便是所有的初等因子,只需简单调整位置便得到了Smith标准型。原因在于,如果只改变(交换)某个因式的位置,行列式因子不变,从而改变后仍与原矩阵相抵。这就说明,分块对角矩阵的初等因子,就是所有分块的初等因子之合。

  现在回到特征矩阵λIA,它的不变因子(行列式因子、初等因子)也被称为A的不变因子(行列式因子、初等因子)。由于特征矩阵总是满秩的,加上相抵和相似的等价性,则有不变因子和初等因子都是矩阵相似的全系不变量。容易验证有理块C(pr(λ))的初等因子只有pr(λ),从而有理标准型的有理块和初等因子一一对应,这就能更方便地得到有理标准型。特别地,Jordan块Jn(λ0)也与初等因子(λλ0)n一一对应,而且在Jordan标准型中容易看出,不变因子dn(λ)其实就是最小多项式,故而再次证明:最小多项式不因数域而变化。

3. 可交换矩阵

  最后,我们借助一个课题综合运用本章的知识点。记域Fn维线性空间V的线性变换A,现在考虑所有与A可交换的变换组成的集合C[A]={X|XA=AX},我们希望能得知C[A]更多的信息。首先我们知道,A的多项式f(A)都与A可交换,从而多项式域F[A]C[A]的一个下界。假设A的最小多项式m(λ)s阶的,易知I,A,,As1线性无关且是F[A]的一组基,即F[A]s维线性空间。

  Pi为分解V=Ui下在Ui上的投影,证明PiC[A]的充要条件是:PiA-不变子空间。

  以上一直在讨论线性变换的不变子空间分割,这可以将问题分化到维度更小的独立子空间中分析。在可交换问题上,不变子空间分割表现为(分块)对角矩阵,直接利用矩阵乘法的性质能方便问题的讨论。为简单起见,设A可对角化为[A1A2],同时也将X按对应子空间分割为[X11X12X21X22],由AX=XA得到式(16)。这个等式的对角线就是在不变子空间的讨论,而非对角线又引出了新问题AiX=XAj

(16)[A1X11A1X12A2X21A2X22]=[X11A1X12A2X21A1X22A2]

  对于特殊的变换,继续推导下去比较容易。比如假设A可对角化为diag{λ1In1,,λsIns},对比式(16)可知:X的对角分块为任意矩阵,而其它分块皆为0。也就是说C[A]的维度是Σns2,它一般大于F[A]。更特殊地,如果A的特征值互不相同,则ni=1,这时C[A]=F[A]

  对于一般的情况,我们先把注意力放在AiX=XAj上,其中Ai,Aj分别是ni,nj维方阵,Xni,nj的矩阵。设X的秩为r,则它可以表示为P[Ir0]Q。带入等式并整理对比后可知,P1AiPQAjQ1左上角r阶子矩阵相同,从而Ai,Aj在复数域有r个(算重数)相同的特征值。反之如果Ai,Ajr个(算重数)相同的特征值,分别取对应r个线性无关的特征值组成列矩阵Ri和行矩阵Rj,验证X=RiRj可知,它是方程AiX=XAj秩为r的一个解。综合以上便有结论:方程AiX=XAj有秩为r的解的充要条件是,Ai,Aj在复数域有r个(算重数)相同的特征值。

  以上结论能推推演至r成立的最大值,特别地,当r=0时方程只有零解,这时Ai,Aj在复数域没有相同的特征值。由多项式的结论知,Ai,Aj的特征多项式互质(在任何数域)。这时既有,AiX=XAj只有零解的充要条件是,Ai,Aj的特征多项式互质。所以如果按式(5)分割不变子空间,方程总是只有零解,可交换问题就只需在不变子空间Wi中讨论。但要注意Wi中可能有多个有理块或Jordan块,此时C[Ai]还没有一般性的结论,我们只能讨论一些特殊情况。简单起见,以下还是记WiV,记A|WiA

  首先假定Wi中只有一个有理块(或Jordan块),也就是说标准型的每个有理块是互素的,这时就能单独讨论有理块了。记有理块的基是ξ,Aξ,,Ar1ξ,并设BC[Wi]满足Bξ=aiAiξ。对任意向量α,将其展开并根据A,B的可交换性,容易证得Bα=aiAiα。从而有B=aiAiF[A],再次得到C[A]=F[A]

  再看Wi的最小多项式是p(λ)r阶一次的情形。我们把V看成是域F(A)上的线性空间,并定义这个空间上的线性变换集H[A]=HomF[A](V,V),这个神奇的角度可以让f(A)如纯量一样自由穿梭,从而带来所需的“交换”效果。比如对任何BH[A],总有B(Aα)=A(Bα),从而BC[A]H[A]C[A]。反之对任何BC[A],总有B(f(A)α)=f(A)(Bα),所以B可以看成域F[A]上线性变换,即有BH[A]C[A]H[A]。综合便得到C[A]=H[A],进一步还可以计算H[A]的维度:H[A]在域F[A]上是n2r2维、在原始域上是n2r维的。

  更一般的Wi就不太好分析C[Wi]了,但还有一个漂亮的性质值得介绍一下。这里先定义符号C2[A]=C[C[A]],它表示与C[A]所有元素都可交换的变换集,首先因为AC[A],故有C2[A]C[A]。如果C[A]没有达到下限F[A],更多的元素其实会对C2[A]造成较大的限制,很有可能会有C2[A]=F[A]。即对任意B=∈C2[A],我们希望构造出B=g(A)F[A]。为此先将V分解成有理块(或Jordan块)Ui,记循环子空间Ui的生成元为ξi,以及最小多项式为pi(λ)=psi(λ),其中sis

  因为BA=AB,所以Ui也是B-子空间,这里记变换Bi=B|Ui,前面已经证明了存在Bi=gi(Ai)。那么希望构造的g(A)必须满足g(Ai)gi(Ai)=0,即mi(λ)g(λ)gi(λ)。不难看出,如果方程有特解,必然是阶数最高的gi(λ),记对应的生成元为ξ。再记α=pssi(A)ξ,要使等式对每个i成立,等价于要求g(A)α=gi(A)α。为了出现gi(A),只需把α看成ξi在某个变换下的象,而这个变换要与B可交换。对任意q(A)ξi,构造变换Hi(q(A)ξi)=q(A)α,而在UjUi上是单位映射。易证这个映射是良性定义的(如果q1(A)ξi=q2(A)ξi则象也相同),且有HiC[A],则它满足刚才的条件。构造成功后,逆推整个过程便有式(17)成立。

(17)C2[A]=C[C[A]]=F[A]

  最后来看可交换变换的一个性质。假设复数域上有AB=BA,先取A的一个特征子空间V(λ),那么它也是B的不变子空间。现在在V(λ)中取B的特征向量α1,它是A,B的共同特征向量。易知A,Bα1生成空间下的诱导变换仍然可交换,继续这样的讨论,便能得到一组基{αi},其中Aαi,Bαi都可由α1,,αi1表示。从变换矩阵的角度,就是存在P使得P1APP1BP都是上三角矩阵,且对角线都是特征值。这个结论能扩展到任意多可交换变换。特别地,如果{Ai}都可以对角化、且互相可交换。先选择基将A1对角化。从本段开始的讨论可知,这时其它变换的矩阵都是对角分块矩阵,利用可对角化的条件(最小多项式),可递推地将所有矩阵都对角化。也就是说,存在P使得P1AiP都是对角矩阵,而刚才的结论就是该结论的扩展。

posted on   卞爱华  阅读(2924)  评论(3编辑  收藏  举报

导航

点击右上角即可分享
微信分享提示