当前位置: 首页 > article >正文

机器学习数学基础:14.矩阵的公式

1. 操作顺序可交换

对于矩阵 A A A,若存在两种运算 ? ? ? ? ? ?,使得 ( A ? ) ? = ( A ? ) ? (A^{?})^{?}\ =(A^{?})^{?} (A?)? =(A?)?,这意味着这两种运算的顺序可以交换。由此我们得到以下三个重要等式:

  • ( A ∗ ) − 1 = ( A − 1 ) ∗ (A^{*})^{-1}\ =(A^{-1})^{*} (A)1 =(A1)
    • 已知伴随矩阵与逆矩阵的关系 A ∗ = ∣ A ∣ A − 1 A^{*} \ = |A|A^{-1} A =AA1
    • 对于 ( A ∗ ) − 1 (A^{*})^{-1} (A)1,将 A ∗ = ∣ A ∣ A − 1 A^{*} \ = |A|A^{-1} A =AA1代入可得 ( ∣ A ∣ A − 1 ) − 1 (|A|A^{-1})^{-1} (AA1)1
    • 根据逆矩阵性质 ( k A ) − 1 = 1 k A − 1 (kA)^{-1}\ =\frac{1}{k}A^{-1} (kA)1 =k1A1(这里 k = ∣ A ∣ k \ = |A| k =A),则 ( ∣ A ∣ A − 1 ) − 1 = 1 ∣ A ∣ ( A − 1 ) − 1 (|A|A^{-1})^{-1}\ =\frac{1}{|A|}(A^{-1})^{-1} (AA1)1 =A1(A1)1
    • 又因为 ( A − 1 ) − 1 = A (A^{-1})^{-1}\ =A (A1)1 =A,所以 1 ∣ A ∣ ( A − 1 ) − 1 = 1 ∣ A ∣ A \frac{1}{|A|}(A^{-1})^{-1}\ =\frac{1}{|A|}A A1(A1)1 =A1A
    • 对于 ( A − 1 ) ∗ (A^{-1})^{*} (A1),由 A ∗ = ∣ A ∣ A − 1 A^{*} \ = |A|A^{-1} A =AA1可得 ( A − 1 ) ∗ = ∣ A − 1 ∣ ( A − 1 ) − 1 (A^{-1})^{*}\ =|A^{-1}|(A^{-1})^{-1} (A1) =A1(A1)1
    • 已知 ∣ A − 1 ∣ = 1 ∣ A ∣ |A^{-1}|\ =\frac{1}{|A|} A1 =A1,所以 ( A − 1 ) ∗ = 1 ∣ A ∣ ( A − 1 ) − 1 = 1 ∣ A ∣ A (A^{-1})^{*}\ =\frac{1}{|A|}(A^{-1})^{-1}\ =\frac{1}{|A|}A (A1) =A1(A1)1 =A1A
    • 综上, ( A ∗ ) − 1 = ( A − 1 ) ∗ (A^{*})^{-1}\ =(A^{-1})^{*} (A)1 =(A1)
  • ( A T ) ∗ = ( A ∗ ) T (A^{T})^{*}\ =(A^{*})^{T} (AT) =(A)T
    • A = ( a i j ) A\ =(a_{ij}) A =(aij),则 A T = ( a j i ) A^{T}\ =(a_{ji}) AT =(aji)
    • 伴随矩阵 A ∗ A^{*} A的元素 ( A ∗ ) i j = A j i (A^{*})_{ij}\ =A_{ji} (A)ij =Aji(其中 A i j A_{ij} Aij A A A的代数余子式)。
    • 对于 ( A T ) ∗ (A^{T})^{*} (AT),其元素 ( ( A T ) ∗ ) i j = ( A T ) j i ((A^{T})^{*})_{ij}\ =(A^{T})_{ji} ((AT))ij =(AT)ji的代数余子式。
    • ( A T ) j i = A i j (A^{T})_{ji}\ =A_{ij} (AT)ji =Aij,所以 ( ( A T ) ∗ ) i j ((A^{T})^{*})_{ij} ((AT))ij实际上是 A i j A_{ij} Aij的代数余子式。
    • 对于 ( A ∗ ) T (A^{*})^{T} (A)T ( A ∗ ) T (A^{*})^{T} (A)T的元素 ( ( A ∗ ) T ) i j = ( A ∗ ) j i ((A^{*})^{T})_{ij}\ =(A^{*})_{ji} ((A)T)ij =(A)ji,而 ( A ∗ ) j i (A^{*})_{ji} (A)ji也是 A i j A_{ij} Aij的代数余子式。
    • 所以 ( A T ) ∗ = ( A ∗ ) T (A^{T})^{*}\ =(A^{*})^{T} (AT) =(A)T
  • ( A − 1 ) T = ( A T ) − 1 (A^{-1})^{T}\ =(A^{T})^{-1} (A1)T =(AT)1
    • 因为 A A − 1 = E AA^{-1}\ =E AA1 =E,两边同时取转置,根据 ( A B ) T = B T A T (AB)^{T}\ =B^{T}A^{T} (AB)T =BTAT,可得 ( A A − 1 ) T = ( A − 1 ) T A T = E T = E (AA^{-1})^{T}\ =(A^{-1})^{T}A^{T}\ =E^{T}\ =E (AA1)T =(A1)TAT =ET =E
    • 由逆矩阵定义,若 A B = E AB \ = E AB =E,则 B = A − 1 B \ = A^{-1} B =A1,所以 ( A − 1 ) T (A^{-1})^{T} (A1)T A T A^{T} AT的逆矩阵,即 ( A − 1 ) T = ( A T ) − 1 (A^{-1})^{T}\ =(A^{T})^{-1} (A1)T =(AT)1

2. 整体操作要对调

对于两个矩阵 A A A B B B,若满足 ( A B ) ? = B ? A ? (AB)^{?}\ =B^{?}A^{?} (AB)? =B?A?,则有以下等式:

  • ( A B ) − 1 = B − 1 A − 1 (AB)^{-1}\ =B^{-1}A^{-1} (AB)1 =B1A1
    • 因为 ( A B ) ( B − 1 A − 1 ) = A ( B B − 1 ) A − 1 (AB)(B^{-1}A^{-1}) \ = A(BB^{-1})A^{-1} (AB)(B1A1) =A(BB1)A1(矩阵乘法结合律)。
    • B B − 1 = E BB^{-1}\ =E BB1 =E,所以 A ( B B − 1 ) A − 1 = A E A − 1 = A A − 1 = E A(BB^{-1})A^{-1}\ =AEA^{-1}\ =AA^{-1}\ =E A(BB1)A1 =AEA1 =AA1 =E
    • 同理 ( B − 1 A − 1 ) ( A B ) = B − 1 ( A − 1 A ) B = B − 1 E B = B − 1 B = E (B^{-1}A^{-1})(AB)\ =B^{-1}(A^{-1}A)B \ = B^{-1}EB \ = B^{-1}B \ = E (B1A1)(AB) =B1(A1A)B =B1EB =B1B =E
    • 根据逆矩阵定义,若 A B = E AB \ = E AB =E B A = E BA \ = E BA =E,则 B B B A A A的逆矩阵,所以 ( A B ) − 1 = B − 1 A − 1 (AB)^{-1}\ =B^{-1}A^{-1} (AB)1 =B1A1
  • ( A B ) T = B T A T (AB)^{T}\ =B^{T}A^{T} (AB)T =BTAT
    • A = ( a i j ) A\ =(a_{ij}) A =(aij) m × n m\times n m×n矩阵, B = ( b i j ) B\ =(b_{ij}) B =(bij) n × p n\times p n×p矩阵,则 A B AB AB ( i , j ) (i, j) (i,j)元素为 ∑ k = 1 n a i k b k j \sum_{k \ = 1}^{n}a_{ik}b_{kj} k =1naikbkj
    • 那么 ( A B ) T (AB)^{T} (AB)T ( i , j ) (i, j) (i,j)元素为 ∑ k = 1 n a j k b k i \sum_{k \ = 1}^{n}a_{jk}b_{ki} k =1najkbki
    • 对于 B T A T B^{T}A^{T} BTAT B T B^{T} BT p × n p\times n p×n矩阵, A T A^{T} AT n × m n\times m n×m矩阵, B T A T B^{T}A^{T} BTAT ( i , j ) (i, j) (i,j)元素为 ∑ k = 1 n ( B T ) i k ( A T ) k j = ∑ k = 1 n b k i a j k \sum_{k \ = 1}^{n}(B^{T})_{ik}(A^{T})_{kj}\ =\sum_{k \ = 1}^{n}b_{ki}a_{jk} k =1n(BT)ik(AT)kj =k =1nbkiajk
    • 所以 ( A B ) T = B T A T (AB)^{T}\ =B^{T}A^{T} (AB)T =BTAT
  • ( A B ) ∗ = B ∗ A ∗ (AB)^{*}\ =B^{*}A^{*} (AB) =BA
    • 已知 A ∗ = ∣ A ∣ A − 1 A^{*} \ = |A|A^{-1} A =AA1 B ∗ = ∣ B ∣ B − 1 B^{*} \ = |B|B^{-1} B =BB1
    • 那么 ( A B ) ∗ = ∣ A B ∣ ( A B ) − 1 (AB)^{*}\ =|AB|(AB)^{-1} (AB) =AB(AB)1
    • 因为 ∣ A B ∣ = ∣ A ∣ ∣ B ∣ |AB| \ = |A||B| AB =A∣∣B ( A B ) − 1 = B − 1 A − 1 (AB)^{-1}\ =B^{-1}A^{-1} (AB)1 =B1A1,所以 ( A B ) ∗ = ∣ A ∣ ∣ B ∣ B − 1 A − 1 (AB)^{*}\ =|A||B|B^{-1}A^{-1} (AB) =A∣∣BB1A1
    • 又因为 B ∗ A ∗ = ∣ B ∣ B − 1 ∣ A ∣ A − 1 = ∣ A ∣ ∣ B ∣ B − 1 A − 1 B^{*}A^{*}\ =|B|B^{-1}|A|A^{-1}\ =|A||B|B^{-1}A^{-1} BA =BB1AA1 =A∣∣BB1A1
    • 所以 ( A B ) ∗ = B ∗ A ∗ (AB)^{*}\ =B^{*}A^{*} (AB) =BA

3. 重复操作会还原

  • ( A T ) T = A (A^{T})^{T}\ =A (AT)T =A
    • A = ( a i j ) A\ =(a_{ij}) A =(aij),则 A T = ( a j i ) A^{T}\ =(a_{ji}) AT =(aji)
    • A T A^{T} AT再取转置, ( A T ) T (A^{T})^{T} (AT)T ( i , j ) (i, j) (i,j)元素就是 A T A^{T} AT ( j , i ) (j, i) (j,i)元素,即 a i j a_{ij} aij
    • 所以 ( A T ) T = A (A^{T})^{T}\ =A (AT)T =A
  • ( A − 1 ) − 1 = A (A^{-1})^{-1}\ =A (A1)1 =A
    • 由逆矩阵定义,若 A B = E AB \ = E AB =E,则 B = A − 1 B \ = A^{-1} B =A1
    • 因为 A A − 1 = E AA^{-1}\ =E AA1 =E,那么对于 A − 1 A^{-1} A1,存在矩阵 A A A使得 A − 1 A = E A^{-1}A \ = E A1A =E
    • 所以 A A A A − 1 A^{-1} A1的逆矩阵,即 ( A − 1 ) − 1 = A (A^{-1})^{-1}\ =A (A1)1 =A

4. 转置的优良性

  • ∣ A T ∣ = ∣ A ∣ |A^{T}| \ = |A| AT =A
    • 行列式的定义是基于矩阵元素的一种运算,转置只是行列互换,其本质上的代数运算关系不变。
    • 从行列式的展开式角度来看, A A A的行列式展开式与 A T A^{T} AT的行列式展开式完全相同,所以 ∣ A T ∣ = ∣ A ∣ |A^{T}| \ = |A| AT =A
  • ( k A ) T = k A T (kA)^{T}\ =kA^{T} (kA)T =kAT
    • A = ( a i j ) A\ =(a_{ij}) A =(aij),则 k A = ( k a i j ) kA\ =(ka_{ij}) kA =(kaij)
      - ( k A ) T (kA)^{T} (kA)T ( i , j ) (i, j) (i,j)元素为 ( k a j i ) (ka_{ji}) (kaji)
    • k A T kA^{T} kAT ( i , j ) (i, j) (i,j)元素为 k ( a j i ) k(a_{ji}) k(aji)
    • 所以 ( k A ) T = k A T (kA)^{T}\ =kA^{T} (kA)T =kAT
  • ( A + B ) T = A T + B T (A + B)^{T}\ =A^{T}+B^{T} (A+B)T =AT+BT
    • A = ( a i j ) A\ =(a_{ij}) A =(aij) B = ( b i j ) B\ =(b_{ij}) B =(bij),则 A + B = ( a i j + b i j ) A + B\ =(a_{ij}+b_{ij}) A+B =(aij+bij)
      - ( A + B ) T (A + B)^{T} (A+B)T ( i , j ) (i, j) (i,j)元素为 ( a j i + b j i ) (a_{ji}+b_{ji}) (aji+bji)
      - A T = ( a j i ) A^{T}\ =(a_{ji}) AT =(aji) B T = ( b j i ) B^{T}\ =(b_{ji}) BT =(bji),所以 A T + B T A^{T}+B^{T} AT+BT ( i , j ) (i, j) (i,j)元素为 a j i + b j i a_{ji}+b_{ji} aji+bji
    • 因此 ( A + B ) T = A T + B T (A + B)^{T}\ =A^{T}+B^{T} (A+B)T =AT+BT

同时需要注意,一般情况下 ( A + B ) − 1 ≠ A − 1 + B − 1 (A + B)^{-1}\neq A^{-1}+B^{-1} (A+B)1=A1+B1 ( A + B ) ∗ ≠ A ∗ + B ∗ (A + B)^{*}\neq A^{*}+B^{*} (A+B)=A+B,通过简单的反例可以说明。例如,取 A = ( 1 0 0 1 ) A\ =\begin{pmatrix}1&0\\0&1\end{pmatrix} A =(1001) B = ( − 1 0 0 − 1 ) B\ =\begin{pmatrix}-1&0\\0&-1\end{pmatrix} B =(1001),则 A + B = ( 0 0 0 0 ) A + B\ =\begin{pmatrix}0&0\\0&0\end{pmatrix} A+B =(0000) ( A + B ) − 1 (A + B)^{-1} (A+B)1不存在,而 A − 1 = ( 1 0 0 1 ) A^{-1}\ =\begin{pmatrix}1&0\\0&1\end{pmatrix} A1 =(1001) B − 1 = ( − 1 0 0 − 1 ) B^{-1}\ =\begin{pmatrix}-1&0\\0&-1\end{pmatrix} B1 =(1001) A − 1 + B − 1 = ( 0 0 0 0 ) A^{-1}+B^{-1}\ =\begin{pmatrix}0&0\\0&0\end{pmatrix} A1+B1 =(0000),两者不相等。对于伴随矩阵也可类似举例说明。

5. 逆矩阵的定义

A A − 1 = E AA^{-1}\ =E AA1 =E可得:

  • ∣ A − 1 ∣ = 1 ∣ A ∣ |A^{-1}|\ =\frac{1}{|A|} A1 =A1
    • 因为 A A − 1 = E AA^{-1}\ =E AA1 =E,两边取行列式,根据 ∣ A B ∣ = ∣ A ∣ ∣ B ∣ |AB| \ = |A||B| AB =A∣∣B,可得 ∣ A A − 1 ∣ = ∣ A ∣ ∣ A − 1 ∣ = ∣ E ∣ |AA^{-1}| \ = |A||A^{-1}| \ = |E| AA1 =A∣∣A1 =E
    • ∣ E ∣ = 1 |E| \ = 1 E =1,所以 ∣ A − 1 ∣ = 1 ∣ A ∣ |A^{-1}|\ =\frac{1}{|A|} A1 =A1
  • ( k A ) − 1 = 1 k A − 1 (kA)^{-1}\ =\frac{1}{k}A^{-1} (kA)1 =k1A1 k ≠ 0 k\neq0 k=0
    • 因为 ( k A ) ( 1 k A − 1 ) = k ⋅ 1 k A A − 1 = A A − 1 = E (kA)(\frac{1}{k}A^{-1}) \ = k\cdot\frac{1}{k}AA^{-1}\ =AA^{-1}\ =E (kA)(k1A1) =kk1AA1 =AA1 =E
    • 根据逆矩阵定义,若 A B = E AB \ = E AB =E,则 B B B A A A的逆矩阵,所以 ( k A ) − 1 = 1 k A − 1 (kA)^{-1}\ =\frac{1}{k}A^{-1} (kA)1 =k1A1

6. 伴随矩阵的推导

已知 C ∗ = ∣ C ∣ C − 1 C^{*}\ =|C|C^{-1} C =CC1,对于矩阵 A A A A ∗ = ∣ A ∣ A − 1 A^{*}\ =|A|A^{-1} A =AA1,由此可得:

  • ( k A ) ∗ = k n − 1 A ∗ (kA)^{*}\ =k^{n - 1}A^{*} (kA) =kn1A
    • 首先 ( k A ) ∗ = ∣ k A ∣ ( k A ) − 1 (kA)^{*}\ =|kA|(kA)^{-1} (kA) =kA(kA)1
    • 因为 ∣ k A ∣ = k n ∣ A ∣ |kA| \ = k^{n}|A| kA =knA n n n为矩阵 A A A的阶数), ( k A ) − 1 = 1 k A − 1 (kA)^{-1}\ =\frac{1}{k}A^{-1} (kA)1 =k1A1
    • 所以 ( k A ) ∗ = k n ∣ A ∣ ⋅ 1 k A − 1 = k n − 1 ∣ A ∣ A − 1 (kA)^{*}\ =k^{n}|A|\cdot\frac{1}{k}A^{-1}\ =k^{n - 1}|A|A^{-1} (kA) =knAk1A1 =kn1AA1
    • 又因为 A ∗ = ∣ A ∣ A − 1 A^{*}\ =|A|A^{-1} A =AA1,所以 ( k A ) ∗ = k n − 1 A ∗ (kA)^{*}\ =k^{n - 1}A^{*} (kA) =kn1A
  • ∣ A ∗ ∣ = ∣ A ∣ n − 1 |A^{*}|\ =|A|^{n - 1} A =An1
    • 已知 A ∗ = ∣ A ∣ A − 1 A^{*}\ =|A|A^{-1} A =AA1,则 ∣ A ∗ ∣ = ∣ ∣ A ∣ A − 1 ∣ |A^{*}|\ =||A|A^{-1}| A =∣∣AA1
    • 根据 ∣ k A ∣ = k n ∣ A ∣ |kA| \ = k^{n}|A| kA =knA,这里 k = ∣ A ∣ k \ = |A| k =A,所以 ∣ ∣ A ∣ A − 1 ∣ = ∣ A ∣ n ∣ A − 1 ∣ ||A|A^{-1}| \ = |A|^{n}|A^{-1}| ∣∣AA1 =AnA1
    • 又因为 ∣ A − 1 ∣ = 1 ∣ A ∣ |A^{-1}|\ =\frac{1}{|A|} A1 =A1,所以 ∣ A ∣ n ∣ A − 1 ∣ = ∣ A ∣ n 1 ∣ A ∣ = ∣ A ∣ n − 1 |A|^{n}|A^{-1}| \ = |A|^{n}\frac{1}{|A|}\ =|A|^{n - 1} AnA1 =AnA1 =An1
    • ∣ A ∗ ∣ = ∣ A ∣ n − 1 |A^{*}|\ =|A|^{n - 1} A =An1
  • ( A ∗ ) ∗ = ∣ A ∣ n − 2 A (A^{*})^{*}\ =|A|^{n - 2}A (A) =An2A
    • A ∗ = ∣ A ∣ A − 1 A^{*}\ =|A|A^{-1} A =AA1,可得 ( A ∗ ) ∗ = ∣ A ∗ ∣ ( A ∗ ) − 1 (A^{*})^{*}\ =|A^{*}|(A^{*})^{-1} (A) =A(A)1
    • 已知 ∣ A ∗ ∣ = ∣ A ∣ n − 1 |A^{*}|\ =|A|^{n - 1} A =An1 ( A ∗ ) − 1 = ( ∣ A ∣ A − 1 ) − 1 = 1 ∣ A ∣ ( A − 1 ) − 1 (A^{*})^{-1}\ =(|A|A^{-1})^{-1}\ =\frac{1}{|A|}(A^{-1})^{-1} (A)1 =(AA1)1 =A1(A1)1
    • 因为 ( A − 1 ) − 1 = A (A^{-1})^{-1}\ =A (A1)1 =A,所以 ( A ∗ ) − 1 = 1 ∣ A ∣ A (A^{*})^{-1}\ =\frac{1}{|A|}A (A)1 =A1A
    • ( A ∗ ) ∗ = ∣ A ∣ n − 1 ⋅ 1 ∣ A ∣ A = ∣ A ∣ n − 2 A (A^{*})^{*}\ =|A|^{n - 1}\cdot\frac{1}{|A|}A \ = |A|^{n - 2}A (A) =An1A1A =An2A

相关文章:

机器学习数学基础:14.矩阵的公式

1. 操作顺序可交换 对于矩阵 A A A,若存在两种运算 ? ? ?和 ? ? ?,使得 ( A ? ) ? ( A ? ) ? (A^{?})^{?}\ (A^{?})^{?} (A?)? (A?)?,这意味着这两种运算的顺序可以交换。由此我们得到以下三个重要等式: ( A …...

DeepSeek-V2 论文解读:混合专家架构的新突破

论文链接:DeepSeek-V2: A Strong, Economical, and Efficient Mixture-of-Experts Language Model 目录 一、引言二、模型架构(一)多头部潜在注意力(MLA):重塑推理效率(二)DeepSeekM…...

C语言的灵魂——指针(3)

前言:上期我们介绍了const修饰指针,saaert断言都是针对指针本身的,文章后面我们用指针与数组建立了联系,这种联系或者是关系就是这篇文章所要介绍的。上一篇文章的传送门:指针2 指针3 一,数组名的含义及理解…...

机器学习之Transformer 模型

Transformer 模型详解 Transformer 是由 Vaswani et al. 在 2017 年 提出的模型,最初用于 机器翻译 任务,并迅速成为自然语言处理(NLP)领域的标准模型架构。与传统的 RNN(循环神经网络) 和 LSTM(长短期记忆网络) 不同,Transformer 的核心思想是 完全基于自注意力机制…...

SSD1306 128*32屏幕驱动

最近在做一个小项目,使用合宙air001做主控,arduino开发环境,项目设计一个小屏作为显示,本身使用u8g2库,奈何这个air001空间太小,没写多少就把程序储存空间占满了,log也没办法打印,对…...

【GitHub】GitHub 2FA 双因素认证 ( 使用 Microsoft Authenticator 应用进行二次验证 )

文章目录 一、GitHub 的 2FA 双因素认证二、使用 Microsoft Authenticator 应用进行二次验证1、TOTP 应用2、下载 Microsoft Authenticator 应用3、安装使用 Authenticator 应用 三、恢复码重要性 一、GitHub 的 2FA 双因素认证 现在登录 GitHub 需要进行二次身份验证 ; 先登录…...

CNN-day5-经典神经网络LeNets5

经典神经网络-LeNets5 1998年Yann LeCun等提出的第一个用于手写数字识别问题并产生实际商业(邮政行业)价值的卷积神经网络 参考:论文笔记:Gradient-Based Learning Applied to Document Recognition-CSDN博客 1 网络模型结构 …...

AI绘画社区:解锁艺术共创的无限可能(9/10)

AI 绘画:不只是技术,更是社交新潮流 在科技飞速发展的今天,AI 绘画早已不再仅仅是一项孤立的技术,它正以惊人的速度融入我们的社交生活,成为艺术爱好者们交流互动的全新方式,构建起一个充满活力与创意的社…...

一种基于Leaflet.Legend的图例动态更新方法

目录 前言 一、场景再现 1、需求描述 2、核心方法介绍 3、存在的问题 二、问题解决 1、重复解决办法 2、图例不展示解决办法 3、成果展示 三、总结 前言 在当今数字化时代,地理信息系统(GIS)技术已经广泛应用于各个领域,…...

Three.js实现一个动态的 3D 点阵波浪效果

使用 Three.js 创建了一个动态的 3D 点阵波浪效果&#xff0c;可用作页面背景。它通过粒子系统生成点阵&#xff0c;并根据鼠标移动和时间动态调整点的位置和大小&#xff0c;形成波浪效果。用户可以通过组件的 props 控制波浪的长度、颜色和位置。 <template><div i…...

【韩顺平linux】部分上课笔记整理

整理一下一些韩顺平老师上课时候的笔记 课程&#xff1a;【小白入门 通俗易懂】韩顺平 一周学会Linux linux环境&#xff1a;使用阿里云服务器 笔记参考 &#xff1a; [学习笔记]2021韩顺平一周学会Linux 一、自定义函数 基本语法 应用实例&#xff1a; 计算两个参数的和…...

CPP集群聊天服务器开发实践(一):用户注册与登录

目录 1 客户端用户注册与登录 1.1 主要思想 1.2 网络层 1.3 业务层 1.4 数据层 1.5 测试结果 1 客户端用户注册与登录 1.1 主要思想 实现网络层、业务层、数据层的解耦&#xff0c;提高系统的可维护性。 网络层&#xff1a;主要实现对客户端连接、客户端读写请求的捕获…...

C++ Attribute 属性说明符

目录 属性说明符 Attribute编译警告相关[[deprecated]][[maybe_unused]][[fallthrough]][[nodiscard]] 可能触发编译优化[[noreturn]][[likely]]、[[unlikely]][[assume]][[carries_dependency]][[no_unique_address]] 属性说明符 Attribute 属性说明符Attribute自C11起&#…...

Elasticsearch去分析目标服务器的日志,需要在目标服务器上面安装Elasticsearch 软件吗

Elasticsearch 本身并不直接收集目标服务器的日志&#xff0c;它主要用于存储、搜索和分析数据。要收集目标服务器的日志&#xff0c;通常会借助其他工具&#xff0c;并且一般不需要在目标服务器上安装 Elasticsearch 软件&#xff0c;常见的日志收集方案&#xff1a; Filebeat…...

学JDBC 第二日

数据库连接池 作用 使数据库连接达到重用的效果&#xff0c;较少的消耗资源 原理 在创建连接池对象时&#xff0c;创建好指定个数的连接对象 之后直接获取连接对象使用即可&#xff0c;不用每次都创建连接对象 从数据库连接池中获取的对象的close方法真的关闭连接对象了吗…...

Android双屏异显Presentation接口使用说明

在点餐、收银、KTV等场景,对于双屏异显的需求是非常多的,首先可以节省硬件成本。而现在的智能板卡很多运行Android系统,从Android4.2开始支持WiFi Display(Miracast)功能后,就开始支持双屏异显Presentation这套应用层接口了,下面以Android5.1系统来说明这套接口的使用要…...

【Uniapp-Vue3】z-paging插件组件实现触底和下拉加载数据

一、下载z-paing插件 注意下载下载量最多的这个 进入Hbuilder以后点击“确定” 插件的官方文档地址&#xff1a; https://z-paging.zxlee.cn 二、z-paging插件的使用 在文档中向下滑动&#xff0c;会有使用方法。 使用z-paging标签将所有的内容包起来 配置标签中的属性 在s…...

JDK 9新特性学习大纲

第1部分&#xff1a;引言与背景 第1章&#xff1a;JDK 9的诞生与目标 1.1 JDK 9的核心目标与设计哲学 1.2 JDK 9的重要更新概览 1.3 兼容性与升级策略 第2部分&#xff1a;模块化系统&#xff08;Project Jigsaw&#xff09; 第2章&#xff1a;模块化基础 2.1 模块化的背景…...

【C语言标准库函数】三角函数

目录 一、头文件 二、函数简介 2.1. 正弦函数&#xff1a;sin(double angle) 2.2. 余弦函数&#xff1a;cos(double angle) 2.3. 正切函数&#xff1a;tan(double angle) 2.4. 反正弦函数&#xff1a;asin(double value) 2.5. 反余弦函数&#xff1a;acos(double value)…...

Redisson全面解析:从使用方法到工作原理的深度探索

文章目录 写在文章开头详解Redisson基本数据类型基础配置字符串操作列表操作映射集阻塞队列延迟队列更多关于Redisson详解Redisson 中的原子类详解redisson中的发布订阅模型小结参考写在文章开头 Redisson是基于原生redis操作指令上进一步的封装,屏蔽了redis数据结构的实现细…...

声明式导航,编程式导航,导航传参,下拉刷新

1.页面导航 1.声明式导航 1.1跳转到tabBar页面 1.2跳转到非tabBar页面 1.2后退导航 、 2.编程式导航 2.1跳转到tabBar页面 2.1跳转到非tabBar页面 2.3后退导航 3.导航传参 3.1声名式导航传参 3.2编程式导航传参 3.3在onLoad中接受参数 4.下拉刷新 4.1回顾下拉刷新…...

金和OA C6 DownLoadBgImage任意文件读取漏洞

金和OA C6 DownLoadBgImage任意文件读取漏洞 漏洞描述 金和C6数据库是一款针对企业信息化管理而设计的高级数据库管理系统&#xff0c;主要应用于企业资源规划&#xff08;ERP&#xff09;、客户关系管理&#xff08;CRM&#xff09;以及办公自动化&#xff08;OA&#xff09…...

激活函数篇 03 —— ReLU、LeakyReLU、ELU

本篇文章收录于专栏【机器学习】 以下是激活函数系列的相关的所有内容: 一文搞懂激活函数在神经网络中的关键作用 逻辑回归&#xff1a;Sigmoid函数在分类问题中的应用 整流线性单位函数&#xff08;Rectified Linear Unit, ReLU&#xff09;&#xff0c;又称修正线性单元&a…...

UdpServer

Udp服务端&#xff1a; using System; using System.Collections.Generic; using System.Linq; using System.Net.Sockets; using System.Net; using System.Text; using System.Threading; using System.Threading.Tasks; using System.Diagnostics; using System.IO; using …...

PromptSource安装报错

一、现象 运行命令&#xff1a;streamlit run promptsource/app.py 报错&#xff1a; streamlit run promptsource/app.py Traceback (most recent call last): File "/usr/local/bin/streamlit", line 5, in <module> from streamlit.cli import main File …...

前端学习-页面尺寸事件以及阻止默认行为(三十三)

目录 前言 页面尺寸事件 语法 检测屏幕宽度 获取宽高 元素尺寸的位置 总结 示例代码 阻止默认行为 阻止冒泡 语法 阻止冒泡如何做 阻止元素默认行为如何做 总结 前言 晚上好各位 页面尺寸事件 会在窗口尺寸改变的时候触发条件 语法 window.addEventListener(…...

Kafka 入门与实战

一、Kafka 基础 1.1 创建topic kafka-topics.bat --bootstrap-server localhost:9092 --topic test --create 1.2 查看消费者偏移量位置 kafka-consumer-groups.bat --bootstrap-server localhost:9092 --describe --group test 1.3 消息的生产与发送 #生产者 kafka-cons…...

5 计算机网络

5 计算机网络 5.1 OSI/RM七层模型 5.2 TCP/IP协议簇 5.2.1:常见协议基础 一、 TCP是可靠的&#xff0c;效率低的&#xff1b; 1.HTTP协议端口默认80&#xff0c;HTTPSSL之后成为HTTPS协议默认端口443。 2.对于0~1023一般是默认的公共端口不需要注册&#xff0c;1024以后的则需…...

【华为OD机考】华为OD笔试真题解析(1)--AI处理器组合

一、题目描述 某公司研发了一款高性能AI处理器&#xff0c;每台物理设备具备8颗AI处理器&#xff0c;编号分别为0、1、2、3、4、5、6、7。 编号0~3的处理器处于同一链路中&#xff0c;编号4~7的处理器处于另外一个链路中&#xff0c;不同链路中的处理器不能通信&#xff0c;如…...

程序员也可以这样赚钱

最近有朋友和我交流了关于程序员副业的想法&#xff0c;我想借这个机会对目前软件开发常用的兼职平台做一个梳理。 以下是程序员接副业的靠谱平台推荐&#xff0c;结合政策合规性、平台口碑及实际操作性整理&#xff0c;覆盖国内外主流选择&#xff1a; 一、国内综合型平台 程序…...