线性变换概论

news2024/11/17 6:52:34

线性变换

定义

V V V W W W 都是在域 K K K上定义的向量空间, T : V → W T :V \rightarrow W T:VW 对任二向量 x , y ∈ V x,y \in V x,yV,与任何标量 a ∈ K a \in K aK,满足:

  • T ( x + y ) = T ( x ) + T ( y ) T(x+y)=T(x)+T(y) T(x+y)=T(x)+T(y)
  • T ( a x ) = a T ( x ) T(ax)=aT(x) T(ax)=aT(x)

T T T 被称为是线性变换

线性算子:从向量空间U映射到U的线性变换

0 0 0变换: 0 ( x ) = 0 0(x)=0 0(x)=0

自身算子: I ( x ) = x I(x)=x I(x)=x

对于 A ∈ R m × n , x ∈ R m × 1 A \in \mathcal{R}^{m \times n},x \in \mathcal{R}^{m \times 1} ARm×n,xRm×1,函数 T ( x ) = A x T(x)=Ax T(x)=Ax是一个从 R n \mathcal{R}^{n} Rn R m \mathcal{R}^{m} Rm线性变换,如果 A A A n × n n \times n n×n的话, T T T是一个线性算子。

B = { u 1 , u 2 , … , u n } \mathcal B =\{ u_1,u_2,\dots,u_n\} B={u1,u2,,un}是向量空间U的一组基,且 v = α 1 u 1 + α 2 u 2 + ⋯ + α n u n v=\alpha_1u_1+\alpha_2u_2+\dots+\alpha_nu_n v=α1u1+α2u2++αnun,则表示为 [ v ] B = ( α 1 , α 2 , … , α n ) T [v]_\mathcal{B}=(\alpha_1,\alpha_2,\dots,\alpha_n)^T [v]B=(α1,α2,,αn)T

A = { e 1 , e 2 , … , e n } \mathcal A =\{ e_1,e_2,\dots,e_n\} A={e1,e2,,en},则被称为向量空间的标准基

image-20231018203415535

image-20231018211846730

image-20231019094100687

B = { x 1 , x 2 , … , x n } \mathcal B=\{x_1,x_2,\dots,x_n\} B={x1,x2,,xn} B ′ = { y 1 , y 2 , … , y n } \mathcal B'=\{y_1,y_2,\dots,y_n\} B={y1,y2,,yn}分别为向量空间 V V V的两组基,其中存在一个变换 A A A在基 B \mathcal B B的表示,则 [ A ] B ′ = [ A [ x 1 ] B ′ , A [ x 2 ] B ′ , … , A [ x n ] B ′ ] [A]_\mathcal{B'}=[A[x_1]_{\mathcal{B'}},A[x_2]_\mathcal{B'},\dots,A[x_n]_\mathcal{B'}] [A]B=[A[x1]B,A[x2]B,,A[xn]B]表示

image-20231019095301042

其中 [ I ] B ′ B [I]_{\mathcal {B'B}} [I]BB为在向量空间上基向量 B ′ \mathcal B' B B \mathcal B B表示

image-20231019232927583

例题1

T T T R 3 R^3 R3 的一个线性算子,其定义为 T ( x , y , z ) = ( x − y , y − x , x − z ) T(x, y, z) = (x−y, y−x, x−z) T(x,y,z)=(xy,yx,xz) , B = { u 1 = ( 1 0 1 ) , u 2 = ( 0 1 1 ) , u 3 = ( 1 1 0 ) } \mathcal B=\left\{u_1=\begin{pmatrix}1\\0\\1\end{pmatrix},u_2=\begin{pmatrix}0\\1\\1\end{pmatrix},u_3=\begin{pmatrix}1\\1\\0\end{pmatrix} \right\} B= u1= 101 ,u2= 011 ,u3= 110 为其一组基, v = ( 1 1 0 ) v=\begin{pmatrix}1\\1\\0\end{pmatrix} v= 110 R 3 R^3 R3的一个向量。

1)分别计算 [ T ] B [T]_{\mathcal{B}} [T]B [ v ] B [v]_{\mathcal{B}} [v]B

2)计算 [ T ( v ) ] B [T(v)]_{\mathcal{B}} [T(v)]B,并验证 [ T ( v ) ] B = [ T ] B [ v ] B [T(v)]_{\mathcal{B}}=[T]_{\mathcal{B}}[v]_{\mathcal{B}} [T(v)]B=[T]B[v]B 成立。

1)

首先我们计算 [ T ] B [T]_{\mathcal{B}} [T]B,它是由 T T T作用在基向量上得到的各结果的坐标向量

[ T ( u i ) ] B [T(u_i)]_{\mathcal{B}} [T(ui)]B i = 1 , 2 , 3 i=1,2,3 i=1,2,3)组成。即 [ T ( u 1 ) ] B = [ T ( 1 , 0 , 1 ) ] B = [ ( 1 , − 1 , 0 ) ] B , [ T ( u 2 ) ] B = [ T ( 0 , 1 , 1 ) ] B = [ ( − 1 , 1 , − 1 ) ] B , [ T ( u 3 ) ] B = [ T ( 1 , 1 , 0 ) ] B = [ ( 0 , 0 , 1 ) ] B . \begin{align*} [T(u_1)]_{\mathcal{B}} &=[T(1,0,1)]_{\mathcal{B}}=[(1, -1, 0)]_{\mathcal{B}},\\ [T(u_2)]_{\mathcal{B}} &=[T(0,1,1)]_{\mathcal{B}}=[(-1, 1, -1)]_{\mathcal{B}},\\ [T(u_3)]_{\mathcal{B}} &=[T(1,1,0)]_{\mathcal{B}}=[(0, 0, 1)]_{\mathcal{B}}. \end{align*} [T(u1)]B[T(u2)]B[T(u3)]B=[T(1,0,1)]B=[(1,1,0)]B,=[T(0,1,1)]B=[(1,1,1)]B,=[T(1,1,0)]B=[(0,0,1)]B.

将以上各向量转化为 B \mathcal{B} B下的坐标向量需要解以下方程:

For [ T ( u 1 ) ] B [T(u_1)]_{\mathcal{B}} [T(u1)]B: ( 1 − 1 0 ) = a ( 1 0 1 ) + b ( 0 1 1 ) + c ( 1 1 0 ) . \begin{pmatrix}1\\-1\\0\end{pmatrix}=a\begin{pmatrix}1\\0\\1\end{pmatrix}+b\begin{pmatrix}0\\1\\1\end{pmatrix}+c\begin{pmatrix}1\\1\\0\end{pmatrix}. 110 =a 101 +b 011 +c 110 .

解得: a = 1 , b = − 1 , c = 0 a=1,b=-1,c=0 a=1,b=1,c=0

For [ T ( u 2 ) ] B [T(u_2)]_{\mathcal{B}} [T(u2)]B: ( − 1 1 − 1 ) = a ( 1 0 1 ) + b ( 0 1 1 ) + c ( 1 1 0 ) . \begin{pmatrix}-1\\1\\-1\end{pmatrix}=a\begin{pmatrix}1\\0\\1\end{pmatrix}+b\begin{pmatrix}0\\1\\1\end{pmatrix}+c\begin{pmatrix}1\\1\\0\end{pmatrix}. 111 =a 101 +b 011 +c 110 .

解得: a = − 3 2 , b = 1 2 , c = 1 2 a=-\frac{3}{2},b=\frac{1}{2},c=\frac{1}{2} a=23,b=21,c=21

For [ T ( u 3 ) ] B [T(u_3)]_{\mathcal{B}} [T(u3)]B: ( 0 0 1 ) = a ( 1 0 1 ) + b ( 0 1 1 ) + c ( 1 1 0 ) . \begin{pmatrix}0\\0\\1\end{pmatrix}=a\begin{pmatrix}1\\0\\1\end{pmatrix}+b\begin{pmatrix}0\\1\\1\end{pmatrix}+c\begin{pmatrix}1\\1\\0\end{pmatrix}. 001 =a 101 +b 011 +c 110 .

解得: a = 1 2 , b = 1 2 , c = − 1 2 a=\frac{1}{2},b=\frac{1}{2},c=-\frac{1}{2} a=21,b=21,c=21

解以上各方程,我们可以得到对应的坐标向量。

此外,我们还需要求 R 3 R^3 R3中的向量 v v v在基 B \mathcal{B} B上的坐标向量 [ v ] B [v]_{\mathcal{B}} [v]B, 它可通过解以下方程得出 ( 1 1 0 ) = a ( 1 0 1 ) + b ( 0 1 1 ) + c ( 1 1 0 ) = a u 1 + b u 2 + c u 3 \begin{pmatrix}1\\1\\0\end{pmatrix}=a\begin{pmatrix}1\\0\\1\end{pmatrix}+b\begin{pmatrix}0\\1\\1\end{pmatrix}+c\begin{pmatrix}1\\1\\0\end{pmatrix} = a u_1 + b u_2 + c u_3 110 =a 101 +b 011 +c 110 =au1+bu2+cu3

解得: a = 1 , b = 1 , c = 0 a=1,b=1,c=0 a=1,b=1,c=0

综上所述:

[ T ] B = [ 1 − 3 2 1 2 − 1 1 2 1 2 0 1 2 − 1 2 ] [T]_{\mathcal{B}}=\begin{bmatrix}1&-\frac{3}{2}& \frac{1}{2}\\-1&\frac{1}{2}&\frac{1}{2}\\0&\frac{1}{2}&-\frac{1}{2}\end{bmatrix} [T]B= 110232121212121

[ v ] B = [ 1 1 0 ] [v]_{\mathcal{B}}=\begin{bmatrix}1\\1\\0\end{bmatrix} [v]B= 110

2)

T ( v ) = ( 0 0 − 1 ) T(v)=\begin{pmatrix}0\\0\\-1\end{pmatrix} T(v)= 001

[ T ( v ) ] B = a ( 1 0 1 ) + b ( 0 1 1 ) + c ( 1 1 0 ) [T(v)]_{\mathcal{B}}=a\begin{pmatrix}1\\0\\1\end{pmatrix}+b\begin{pmatrix}0\\1\\1\end{pmatrix}+c\begin{pmatrix}1\\1\\0\end{pmatrix} [T(v)]B=a 101 +b 011 +c 110

解得 [ T ( v ) ] b = ( − 1 2 − 1 2 1 2 ) [T(v)]_\mathcal{b}=\begin{pmatrix}-\frac{1}{2}\\-\frac{1}{2}\\\frac{1}{2}\end{pmatrix} [T(v)]b= 212121

所以 [ T ( v ) ] B = [ T ] B [ v ] B [T(v)]_{\mathcal{B}}=[T]_{\mathcal{B}}[v]_{\mathcal{B}} [T(v)]B=[T]B[v]B

例题2

A ( x , y , z ) = ( x + 2 y − z , − y , x + 7 z ) A(x,y,z)=(x+2y-z,-y,x+7z) A(x,y,z)=(x+2yz,y,x+7z) R 3 R^3 R3 的一个线性算子,其定义为 T ( x , y , z ) = ( x − y , y − x , x − z ) T(x, y, z) = (x−y, y−x, x−z) T(x,y,z)=(xy,yx,xz) , B = { ( 1 0 0 ) , ( 0 1 0 ) , ( 0 0 1 ) } , B ′ = { ( 1 0 0 ) , ( 1 1 0 ) , ( 1 1 1 ) } \mathcal B=\left\{\begin{pmatrix}1\\0\\0\end{pmatrix},\begin{pmatrix}0\\1\\0\end{pmatrix},\begin{pmatrix}0\\0\\1\end{pmatrix} \right\},\mathcal B'=\left\{\begin{pmatrix}1\\0\\0\end{pmatrix},\begin{pmatrix}1\\1\\0\end{pmatrix},\begin{pmatrix}1\\1\\1\end{pmatrix} \right\} B= 100 , 010 , 001 ,B= 100 , 110 , 111 为其一组基, v = ( 1 1 0 ) v=\begin{pmatrix}1\\1\\0\end{pmatrix} v= 110 R 3 R^3 R3的一个向量。

1)分别计算 [ A ] B [A]_{\mathcal{B}} [A]B [ A ] B ′ [A]_{\mathcal{B'}} [A]B

2)求矩阵 Q Q Q,使得 [ A ] B ′ = Q − 1 [ A ] B Q [A]_\mathcal {B'}=Q^{-1}[A]_\mathcal {B}Q [A]B=Q1[A]BQ成立。

首先,我们需要找出在 B \mathcal{B} B B ′ \mathcal{B'} B基下的矩阵 A A A的表示即 [ A ] B [A]_{\mathcal{B}} [A]B [ A ] B ′ [A]_{\mathcal{B'}} [A]B。这一步可以通过将线性变换应用于基向量并将结果写成列向量的形式完成。

线性算子 A A A B \mathcal B B为基的矩阵表示为: [ A ] B = [ A ( 1 , 0 , 0 ) A ( 0 , 1 , 0 ) A ( 0 , 0 , 1 ) ] B [A]_{\mathcal{B}} = \left[ \begin{array}{ccc} A(1,0,0) & A(0,1,0) & A(0,0,1) \\ \end{array} \right]_{\mathcal{B}} [A]B=[A(1,0,0)A(0,1,0)A(0,0,1)]B = [ A ( e 1 ) , A ( e 2 ) , A ( e 3 ) ] B =[A(e_1),A(e_2),A(e_3)]_\mathcal{B} =[A(e1),A(e2),A(e3)]B

计算得到 [ A ] B = [ A ( 1 , 0 , 0 ) A ( 0 , 1 , 0 ) A ( 0 , 0 , 1 ) ] B = [ 1 2 − 1 0 − 1 0 1 0 7 ] [A]_{\mathcal{B}} = \left[ \begin{array}{ccc} A(1,0,0) & A(0,1,0) & A(0,0,1) \\ \end{array} \right]_\mathcal B = \left[ \begin{array}{ccc} 1 & 2 & -1 \\ 0 & -1 & 0 \\ 1 & 0 & 7 \\ \end{array} \right] [A]B=[A(1,0,0)A(0,1,0)A(0,0,1)]B= 101210107

线性算子 A A A B ′ \mathcal B' B为基的矩阵表示为: [ A ] B ′ = [ A ( 1 , 0 , 0 ) A ( 1 , 1 , 0 ) A ( 1 , 1 , 1 ) ] B ′ [A]_{\mathcal{B'}} = \left[ \begin{array}{ccc} A(1,0,0) & A(1,1,0) & A(1,1,1) \\ \end{array} \right] _{\mathcal{B'}} [A]B=[A(1,0,0)A(1,1,0)A(1,1,1)]B = [ A ( e 1 ′ ) , A ( e 2 ′ ) , A ( e 3 ′ ) ] B ′ =[A(e_1'),A(e_2'),A(e_3')]_\mathcal{B'} =[A(e1),A(e2),A(e3)]B

计算得到 [ A ] B ′ = [ A ( 1 , 0 , 0 ) A ( 1 , 1 , 0 ) A ( 1 , 1 , 1 ) ] B ′ = [ 1 4 3 − 1 − 2 9 1 1 8 ] [A]_{\mathcal{B'}} = \left[ \begin{array}{ccc} A(1,0,0) & A(1,1,0) & A(1,1,1) \\ \end{array} \right]_\mathcal {B'} = \left[ \begin{array}{ccc} 1 & 4 & 3 \\ -1 & -2 & 9 \\ 1 & 1 & 8 \\ \end{array} \right] [A]B=[A(1,0,0)A(1,1,0)A(1,1,1)]B= 111421398

接下来求矩阵 Q Q Q,使得 [ A ] B ′ = Q − 1 [ A ] B Q [A]_\mathcal {B'}=Q^{-1}[A]_\mathcal {B}Q [A]B=Q1[A]BQ成立。

我们已经知道 B = { e 1 , e 2 , e 3 } \mathcal{B}=\{e_1,e_2,e_3\} B={e1,e2,e3} B ′ = { e 1 ′ , e 2 ′ , e 3 ′ } \mathcal{B'}=\{e_1',e_2',e_3'\} B={e1,e2,e3}

给出两个基 B \mathcal B B B ′ \mathcal B' B,要找出矩阵 I I I在基 B ′ \mathcal B' B B \mathcal B B之间的表示 [ I ] B ′ B [I]_{\mathcal B' \mathcal B} [I]BB。 第一个基 B \mathcal B B是标准基,我们考虑将 B ′ \mathcal B' B的基向量表示为 B \mathcal B B的线性组合。具体地:

第一个基向量在 B ′ \mathcal B' B中是 ( 1 0 0 ) \begin{pmatrix}1\\0\\0\end{pmatrix} 100 ,这就是 B \mathcal B B的第一个基向量,所以在 B \mathcal B B的基的表示下,首列是 ( 1 , 0 , 0 ) T (1,0,0)^T (1,0,0)T

第二个基向量在 B ′ \mathcal B' B中是 ( 1 1 0 ) \begin{pmatrix}1\\1\\0\end{pmatrix} 110 ,它可以被表示为 B \mathcal B B的第一个和第二个基向量的和,于是在 B \mathcal B B的基的表示下,第二列是 ( 1 , 1 , 0 ) T (1,1,0)^T (1,1,0)T

第三个基向量在 B ′ \mathcal B' B中是 ( 1 1 1 ) \begin{pmatrix}1\\1\\1\end{pmatrix} 111 ,它可以被表示为 B \mathcal B B所有三个基向量的和,所以在 B \mathcal B B的基的表示下,第三列是 ( 1 , 1 , 1 ) T (1,1,1)^T (1,1,1)T

B \mathcal B B的基表示,我们得到: [ I ] B ′ B = ( 1 1 1 0 1 1 0 0 1 ) [I]_{\mathcal B' \mathcal B}=\begin{pmatrix}1&1&1\\0&1&1\\0&0&1\end{pmatrix} [I]BB= 100110111 这就是矩阵 I I I B ′ \mathcal B' B B \mathcal B B之间的线性变换矩阵。

例题三

对于 R 2 × 2 R^{2\times2} R2×2 矩阵,$\mathcal B = \left{ \begin{bmatrix} 1 & 0 \ 0 & 0 \end{bmatrix}, \begin{bmatrix} 0 & 1 \ 0 & 0 \end{bmatrix}, \begin{bmatrix} 0 & 0 \ 1 & 0 \end{bmatrix}, \begin{bmatrix} 0 & 0 \ 0 & 1 \end{bmatrix} \right} $

对其中一组矩阵, 对于该运算中任意矩阵 A A A, 定义映射 T 定义如下:

$T(A) = \frac{A + A^T}{2} $

计算 [ T ] B [T]_\mathcal B [T]B.

首先我们需要了解一下所给出的映射 T T T如何作用于一个矩阵。给定矩阵 A = [ a b c d ] A=\begin{bmatrix} a & b \\ c & d \end{bmatrix} A=[acbd], 我们可以计算:

T ( A ) = A + A T 2 = [ a b c d ] + [ a c b d ] 2 = [ a b + c 2 b + c 2 d ] T(A) = \frac{A + A^T}{2} = \frac{\begin{bmatrix} a & b \\ c & d \end{bmatrix} + \begin{bmatrix} a & c \\ b & d \end{bmatrix}}{2} = \begin{bmatrix} a & \frac{b+c}{2} \\ \frac{b+c}{2} & d \end{bmatrix} T(A)=2A+AT=2[acbd]+[abcd]=[a2b+c2b+cd]

为了找到矩阵 [ T ] B [T]_B [T]B,我们需要将基 B B B中的每一个矩阵分别带入 T T T中,并表示其结果为 B B B基下的坐标。

对于 [ 1 0 0 0 ] \begin{bmatrix} 1 & 0 \\ 0 & 0 \end{bmatrix} [1000]:

T ( [ 1 0 0 0 ] ) = [ 1 0 0 0 ] = 1 ⋅ [ 1 0 0 0 ] + 0 ⋅ [ 0 1 0 0 ] + 0 ⋅ [ 0 0 1 0 ] + 0 ⋅ [ 0 0 0 1 ] T\left( \begin{bmatrix} 1 & 0 \\ 0 & 0 \end{bmatrix} \right) = \begin{bmatrix} 1 & 0 \\ 0 & 0 \end{bmatrix} = 1 \cdot \begin{bmatrix} 1 & 0 \\ 0 & 0 \end{bmatrix} + 0 \cdot \begin{bmatrix} 0 & 1 \\ 0 & 0 \end{bmatrix} + 0 \cdot \begin{bmatrix} 0 & 0 \\ 1 & 0 \end{bmatrix} + 0 \cdot \begin{bmatrix} 0 & 0 \\ 0 & 1 \end{bmatrix} T([1000])=[1000]=1[1000]+0[0010]+0[0100]+0[0001]

所以,第一列为 [ 1 0 0 0 ] \begin{bmatrix} 1 \\ 0 \\ 0 \\ 0 \end{bmatrix} 1000

对于 [ 0 1 0 0 ] \begin{bmatrix} 0 & 1 \\ 0 & 0 \end{bmatrix} [0010]:

T ( [ 0 1 0 0 ] ) = [ 0 0.5 0.5 0 ] = 0 ⋅ [ 1 0 0 0 ] + 0.5 ⋅ [ 0 1 0 0 ] + 0.5 ⋅ [ 0 0 1 0 ] + 0 ⋅ [ 0 0 0 1 ] T\left( \begin{bmatrix} 0 & 1 \\ 0 & 0 \end{bmatrix} \right) = \begin{bmatrix} 0 & 0.5 \\ 0.5 & 0 \end{bmatrix} = 0 \cdot \begin{bmatrix} 1 & 0 \\ 0 & 0 \end{bmatrix} + 0.5 \cdot \begin{bmatrix} 0 & 1 \\ 0 & 0 \end{bmatrix} + 0.5 \cdot \begin{bmatrix} 0 & 0 \\ 1 & 0 \end{bmatrix} + 0 \cdot \begin{bmatrix} 0 & 0 \\ 0 & 1 \end{bmatrix} T([0010])=[00.50.50]=0[1000]+0.5[0010]+0.5[0100]+0[0001]

所以,第二列为 [ 0 0.5 0.5 0 ] \begin{bmatrix} 0 \\ 0.5 \\ 0.5 \\ 0 \end{bmatrix} 00.50.50

对于 [ 0 0 1 0 ] \begin{bmatrix} 0 & 0 \\ 1 & 0 \end{bmatrix} [0100]:

这个矩阵和上一个矩阵相同,所以第三列也是 [ 0 0.5 0.5 0 ] \begin{bmatrix} 0 \\ 0.5 \\ 0.5 \\ 0 \end{bmatrix} 00.50.50

对于 [ 0 0 0 1 ] \begin{bmatrix} 0 & 0 \\ 0 & 1 \end{bmatrix} [0001]:

T ( [ 0 0 0 1 ] ) = [ 0 0 0 1 ] = 0 ⋅ [ 1 0 0 0 ] + 0 ⋅ [ 0 1 0 0 ] + 0 ⋅ [ 0 0 1 0 ] + 1 ⋅ [ 0 0 0 1 ] T\left( \begin{bmatrix} 0 & 0 \\ 0 & 1 \end{bmatrix} \right) = \begin{bmatrix} 0 & 0 \\ 0 & 1 \end{bmatrix} = 0 \cdot \begin{bmatrix} 1 & 0 \\ 0 & 0 \end{bmatrix} + 0 \cdot \begin{bmatrix} 0 & 1 \\ 0 & 0 \end{bmatrix} + 0 \cdot \begin{bmatrix} 0 & 0 \\ 1 & 0 \end{bmatrix} + 1 \cdot \begin{bmatrix} 0 & 0 \\ 0 & 1 \end{bmatrix} T([0001])=[0001]=0[1000]+0[0010]+0[0100]+1[0001]

所以,第四列为 [ 0 0 0 1 ] \begin{bmatrix} 0 \\ 0 \\ 0 \\ 1 \end{bmatrix} 0001

综上, [ T ] B [T]_\mathcal B [T]B为:

[ T ] B = [ 1 0 0 0 0 0.5 0.5 0 0 0.5 0.5 0 0 0 0 1 ] [T]_\mathcal B = \begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & 0.5 & 0.5 & 0 \\ 0 & 0.5 & 0.5 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix} [T]B= 100000.50.5000.50.500001

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1226841.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Zookeeper实战案例(1)

前置知识: Zookeeper学习笔记(1)—— 基础知识-CSDN博客 Zookeeper学习笔记(2)—— Zookeeper API简单操作-CSDN博客 Zookeeper 服务器动态上下线监听案例 需求分析 某分布式系统中,主节点可以有多台&am…

2023最新最全【内网渗透工具】零基础安装教程

1.1 简介 nps是一款轻量级、高性能、功能强大的内网穿透代理服务器。目前支持tcp、udp流量转发,可支持任何tcp、udp上层协议(访问内网网站、本地支付接口调试、ssh访问、远程桌面,内网dns解析等等……),此外还支持内网…

《洛谷深入浅出基础篇》 P5250 木材仓库————集合应用实例

上链接: P5250 【深基17.例5】木材仓库 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)https://www.luogu.com.cn/problem/P5250上题干: 题目描述 博艾市有一个木材仓库,里面可以存储各种长度的木材,但是保证没有两个木材的长度是…

Spring Boot中使用Redis进行大数据缓存

Spring Boot中使用Redis进行大数据缓存 在Spring Boot中使用Redis进行大数据缓存是一种常见的做法,因为Redis是一种高性能的内存数据库,适用于缓存大量数据。以下是说明和示例代码,演示如何在Spring Boot项目中使用Redis进行大数据缓存。 步…

【C++初阶】STL详解(四)vector的模拟实现

本专栏内容为:C学习专栏,分为初阶和进阶两部分。 通过本专栏的深入学习,你可以了解并掌握C。 💓博主csdn个人主页:小小unicorn ⏩专栏分类:C 🚚代码仓库:小小unicorn的代码仓库&…

【Kingbase FlySync】命令模式:部署双轨并行,并实现切换同步

【Kingbase FlySync】命令模式:安装部署同步软件,实现Oracle到KES实现同步 双轨并行方案说明一.准备工作二.环境说明三.目标实操(1).准备安装环境Orcle服务器(Oracle40)1.上传所有工具包2.操作系统配置a.增加flysync 用户、设置密码b.配置环境变量c.调整limits.conf…

【Leetcode合集】2342. 数位和相等数对的最大和

文章目录 2342. 数位和相等数对的最大和方案1方案2方案3方案4 2342. 数位和相等数对的最大和 2342. 数位和相等数对的最大和 代码仓库地址: https://github.com/slience-me/Leetcode 个人博客 :https://slienceme.xyz 给你一个下标从 0 开始的数组 nu…

单链表在线OJ题(详解+图解)

1.删除链表中等于给定值 val 的所有节点 本题的要求是输入一个val的整形值,若链表中节点存储的值与val相等,则删除这个节点,并最后返回这个删除节点后的链表,思路如下: 我们可以直接使用while循环,并且使用…

Python 如何实现职责链设计模式?什么是职责链设计模式?Python 职责链设计模式示例代码

什么是职责链(Chain of Responsibility)设计模式? 职责链(Chain of Responsibility)设计模式是一种行为型设计模式,旨在构建一个对象链,每个对象都有机会处理请求,并且可以将请求传…

基于stm32移植使用u8g2 库

前言 前面我已经写了如何使用stm32 使用软件IIC的方法驱动OLED,但是其实我们可以有更简单的使用方法,对于SSD1306 这款OLED 显示屏来说,其实已经有开源库可以直接使用了,我们只需要将对应的库移植过来,做一些简单的修改…

单片机课程设计——基于C51电子密码锁(源代码)

本设计是基于AT89C51单片机的电子密码锁设计,实现电子密码锁的基本功能。我们这里实现的是硬件仿真,关于软件仿真可以参考其他人的文章。 单片机课程设计--基于C51电子密码锁 效果展示 我们先来看效果展示,公主王子请看视频: 课…

【Spring总结】注解开发

本篇讲的内容主要是基于Spring v2.5的注解来完成bean的定义 之前都是使用纯配置的方式来定义的bean 文章目录 前言1. Spring v2.5 注解开发定义bean第一步:在需要定义的类上写上注解Component第二步:在Spring Config中定义扫描包第三步:主方法…

java springboot 在测试类中声明临时Bean对象

上文 java springboot在当前测试类中添加临时属性 不影响application和其他范围 中 我们讲了怎么在测试类中设置临时属性 但是 如果我们想设置临时的Bean呢? 其实做过几个项目的人都会理解 我们很多功能 需要一些第三方bean才能完成 那么 我们可能存在需要用第三方b…

图书管理系统(图文详解,附源码)

前言:本文旨在用面向对象的思想编程实现图书管理系统,功能包括增删查找,完整源码放在文末,大家有需自取 目录 一.整体框架 二.书籍和书架 书籍(Book) 书架(BookRack) 三.对书籍的相关操作 操作接口(IOperation) 新增图书(A…

项目点使用Redis作为缓存技术-自用

在spring boot项目中,使用缓存技术只需在项目中导入相关缓存技术的依赖包,并在启动类上使用EnableCaching开启缓存支持即可。 例如,使用Redis作为缓存技术,只需要导入Spring data Redis的maven坐标即可。 描述 使用Redis缓存高频数…

WSA子系统(一)

WSA子系统安装教程 Windows Subsystem for Android (WSA) 是微软推出的一项功能,它允许用户在 Windows 11 上运行 Android 应用程序。通过在 Windows 11 上引入 WSA,用户可以在其 PC 上轻松运行 Android 应用程序,从而扩展了用户的应用程序选…

RobotFramework之用例执行时添加命令行参数(十三)

学习目录 引言 标签tag 设置变量 随机执行顺序 设置监听器 输出日志目录和文件 引言 Robot Framework 提供了许多命令行选项,可用于控制测试用例的执行方式以及生成的输出。本节介绍一些常用的选项语法。 标签tag 之前文章我们介绍过,在测试套件…

Leetcode经典题目之“双指针交换元素“类题目

1 LC 27. 移除元素 class Solution {public int removeElement(int[] nums, int val) {int nnums.length;int s0;for(int i0;i<n;i){// 只有不等于目标值的时候才会进行交换&#xff0c;然后移动s指针if(nums[i]!val){swap(nums,i,s);}}return s;}void swap(int[]nums, int…

(数据结构)算法的时间复杂度

注意语句频度和时间复杂度的区别&#xff0c;语句频度是指语句执行的次数&#xff0c;不可以像时间复杂度一样近似次数和省略常数项