SLAM中的概率基础(知识回顾)

news2024/9/19 10:44:04

今天有些知识点忘记了,特地过来回顾一下,于是就做了这些笔记。
为了方便能够在手机上更直观的看笔记,写下这篇文章,有错误请各位大佬指出。

一、 概率基础概念

1.1. 概率密度函数(PDF)

概率密度函数用于描述连续随机变量在某一取值处的概率密度。在SLAM算法中,用于表示测量噪声和状态估计的不确定性。

  • 概率密度的直观解释:在某个特定值x处的概率密度值 f(x)越大,意味着X在x附近取值的可能性越大。
  • 定义:若X是一个连续随机变量,其概率密度函数为f(x),则在区间[a, b]内,X取值落在[a, b]的概率为:
    P ( a ≤ X ≤ b ) = ∫ a b f ( x )   d x P(a \leq X \leq b) = \int_a^b f(x) \, dx P(aXb)=abf(x)dx

1.2. 条件概率

条件概率描述事件A在事件B已经发生的条件下发生的概率,记为P(A|B)。联合概率表示两个事件共同发生的概率。A与B的联合概率表示为P(A∩B)或者P(A,B)或者P(AB)

  • 定义
    P ( A ∣ B ) = P ( A ∩ B ) P ( B ) P(A|B) = \frac{P(A \cap B)}{P(B)} P(AB)=P(B)P(AB)
    ,前提是P(B) > 0。

1.3. 全概率公式

全概率公式用于计算一个事件的总概率。

  • 定义:如果事件B1, B2, …, Bn构成一个完备事件组(即这些事件两两互斥且它们的并集是全集),那么对于任意事件A,有:
    P ( A ) = ∑ i = 1 n P ( A ∣ B i ) P ( B i ) P(A)=\sum_{i=1}^{n} P(A|B_i) P(B_i) P(A)=i=1nP(ABi)P(Bi)

1.4. 贝叶斯公式

贝叶斯公式用于计算条件概率,特别是在SLAM中用于更新机器人状态的概率分布。

  • 定义
    P ( A ∣ B ) = P ( B ∣ A ) P ( A ) P ( B ) P(A|B) = \frac{P(B|A) P(A)}{P(B)} P(AB)=P(B)P(BA)P(A)
    其中:

    • P(A|B)是在事件 B已发生的条件下,事件 A发生的条件概率,称为后验概率
    • P(B|A)是在事件 A已发生的条件下,事件 B 发生的条件概率,称为似然
    • P(A)是事件 A发生的概率,称为先验概率(边缘概率),后验概率=先验概率*似然度
    • P(B)是事件 B发生的概率,称为边际概率
    • P(B|A)/P(B),称为似然度
  • 贝叶斯法则的直观理解

    贝叶斯法则告诉我们如何根据新的证据 B 更新对事件 A发生概率的信念。可以把它看作一个更新过程:

    1. 先验概率 P(A)是在没有任何额外信息时,对事件 A 的初始信念。
    2. 似然 P(B|A)是在事件 A 发生的条件下,观察到证据 B 的可能性。
    3. 边际概率 P(B)是证据 B 发生的总概率,可以通过所有可能导致 B 发生的事件求和得到。
    4. 后验概率P(A|B)是在观察到证据 B 后,对事件 A 的更新信念。

二、 随机变量与分布

2.1. 离散和连续随机变量

  • 离散随机变量:取值为有限或可数的集合,例如抛硬币的结果。
  • 连续随机变量:取值为一个区间,例如测量长度。

2.2. 常见分布

  • 均匀分布

    • 定义:

      • 离散均匀分布:一个离散随机变量X在有限个可能值上均匀分布。

        • 例子:掷一个公平的骰子,X的可能取值为1到6,每个值的概率均为 1/6。
      • 连续均匀分布:一个连续随机变量X在区间 [a,b]上均匀分布。

        • PDF:

        f ( x ) = 1 b − a f(x) = \frac{1}{b - a} f(x)=ba1

        ​ 对于 x在[a,b] 范围内。

        • 例子:在一个长度为L的杆上随机选择一点,选择点的位置均匀分布在 [0,L] 上。
    • 应用:

      • 均匀分布常用于表示完全未知或没有偏好的情况,例如传感器数据初始化时假设在某个范围内均匀分布
  • 指数分布

    • 定义

      • 指数分布是连续概率分布,用于描述某个事件发生的时间间隔

        • PDF:
          f ( x ) = λ e − λ x f(x) = \lambda e^{-\lambda x} f(x)=λeλx
          对于 x≥0.

        • 参数 λ是速率参数,其倒数 1/λ 是平均时间间隔

    • 应用

      指数分布常用于建模事件之间的时间间隔,例如传感器数据的到达时间间隔,或机器人在环境中移动的步长

  • 泊松分布

    • 定义

      • 泊松分布描述在固定时间间隔内事件发生的次数

        • PMF:
          P ( X = k ) = λ k e − λ k ! P(X = k) = \frac{\lambda^k e^{-\lambda}}{k!} P(X=k)=k!λkeλ
          对于 k=0,1,2,…。

        • 参数 λ是给定时间间隔内期望的事件发生次数。

    • 应用

      泊松分布常用于建模在单位时间内或单位空间内事件的发生次数,例如在某段时间内传感器检测到障碍物的次数

  • 二项分布

    • 定义

      • 二项分布描述n次独立试验中成功的次数

        • PMF:
          P ( X = k ) = ( n k ) p k ( 1 − p ) n − k P(X = k) = \binom{n}{k} p^k (1-p)^{n-k} P(X=k)=(kn)pk(1p)nk
          对于 k=0,1,2,…,n。

        • 参数 n是试验次数,p 是每次试验成功的概率。

    • 应用

      二项分布常用于建模一系列独立试验的结果,例如机器人传感器在多次测量中检测到目标的次数

  • 伽马分布

    • 定义

      • 伽玛分布是指数分布的广义形式,用于描述多个事件发生的时间

        • PDF:
          f ( x ) = β α x α − 1 e − β x Γ ( α ) f(x) = \frac{\beta^\alpha x^{\alpha-1} e^{-\beta x}}{\Gamma(\alpha)} f(x)=Γ(α)βαxα1eβx
          对于 x≥0。

        • 参数 α和 β是形状参数和速率参数,Γ(α) 是伽玛函数。

    • 应用

      伽玛分布用于描述多个独立事件发生的时间总和,例如机器人在多个任务中的总时间

  • 高斯分布(正态分布):在SLAM中广泛应用,描述测量噪声和状态估计

    • 概率密度函数PDF:对于均值为μ,方差为σ²的高斯分布,概率密度函数为:
      f ( x ) = 1 2 π σ 2 exp ⁡ ( − ( x − μ ) 2 2 σ 2 ) f(x) = \frac{1}{\sqrt{2 \pi \sigma^2}} \exp\left(-\frac{(x - \mu)^2}{2 \sigma^2}\right) f(x)=2πσ2 1exp(2σ2(xμ)2)

      • 这个函数在均值 μ附近达到最大值,表示随机变量X在均值附近取值的概率密度最大。

      • 随着离均值越远,概率密度函数值逐渐减小,表示取这些值的可能性降低。

    • 在SLAM算法中,概率密度函数常用于表示测量噪声机器人位置的不确定性

    • 通过高斯分布等概率密度函数,可以对测量数据进行建模,从而在同时定位与地图构建过程中进行状态估计。

  • 多项式分布:用于描述多种可能结果中的一种出现的概率。

三、 协方差矩阵

3.1 协方差

  • 方差

    方差能比较好的表达一组数据离散的程度,方差大,这组数据分散的就比较大;方差小,这组数据分散的就比较小。

    方差(variance)的表达公式为:

    方差是协方差的特殊表现形式,即X=Y的时候。

    img

  • 什么是协方差

    协方差是一个用来衡量两个随机变量之间线性关系统计量。它反映了这两个变量如何一起变化。如果两个变量的变化趋势一致(即一个变量增加,另一个变量也增加,或一个变量减少,另一个变量也减少),它们的协方差为正;如果一个变量增加而另一个变量减少,它们的协方差为负;如果两个变量之间没有明显的线性关系,它们的协方差接近零

  • 协方差的定义

    对于两个随机变量 X 和 Y,它们的协方差定义为:
    C o v ( X , Y ) = E [ ( X − E [ X ] ) ( Y − E [ Y ] ) ] Cov(X,Y)=E[(X−E[X])(Y−E[Y])] Cov(X,Y)=E[(XE[X])(YE[Y])]
    其中:

    • E[X]和 E[Y]分别是随机变量 X和 Y的期望(即均值)。

    • (X−E[X])和 (Y−E[Y])分别是随机变量 X和 Y的偏差。

  • 如果我们有 n对样本数据 (x1,y1),(x2,y2),…,(xn,yn),它们的协方差可以通过以下公式计算:
    C o v ( X , Y ) = 1 n ∑ i = 1 n ( x i − x ˉ ) ( y i − y ˉ ) Cov(X,Y)= \frac{1}{n} \sum_{i=1}^n (x_i - \bar{x})(y_i - \bar{y}) Cov(X,Y)=n1i=1n(xixˉ)(yiyˉ)

    $$
    其中:\bar{x}和\bar{y}分别是样本数据 X 和 Y 的均值。

    方差是协方差的特殊表现形式,即X=Y的时候。
    $$

3.2 协方差矩阵

当我们有多个(不止两个)随机变量时,我们可以计算每一对变量之间的协方差,结果可以组织成一个矩阵,这就是协方差矩阵。

假设我们有三个随机变量 X,Y,Z,它们的协方差矩阵 Σ可以表示为:
Σ = [ V a r ( X ) C o v ( X , Y ) C o v ( X , Z ) C o v ( Y , X ) V a r ( Y ) C o v ( Y , Z ) C o v ( Z , X ) C o v ( Z , Y ) V a r ( Z ) ] \Sigma = \begin{bmatrix} \mathrm{Var}(X) & \mathrm{Cov}(X, Y) & \mathrm{Cov}(X, Z) \\ \mathrm{Cov}(Y, X) & \mathrm{Var}(Y) & \mathrm{Cov}(Y, Z) \\ \mathrm{Cov}(Z, X) & \mathrm{Cov}(Z, Y) & \mathrm{Var}(Z) \end{bmatrix} Σ= Var(X)Cov(Y,X)Cov(Z,X)Cov(X,Y)Var(Y)Cov(Z,Y)Cov(X,Z)Cov(Y,Z)Var(Z)

对角线上的元素是每个变量的方差。非对角线上的元素是不同变量之间的协方差**。

  • 协方差矩阵的定义

    假设我们有一个n维随机向量
    X = [ X 1 , X 2 , … , X n ] T \mathbf{X} = [X_1, X_2, \ldots, X_n]^T X=[X1,X2,,Xn]T
    其均值向量为
    μ = [ μ 1 , μ 2 , … , μ n ] T \mathbf{\mu} = [\mu_1, \mu_2, \ldots, \mu_n]^T μ=[μ1,μ2,,μn]T
    协方差矩阵 Σ定义为:
    Σ = C o v ( X ) = E [ ( X − μ ) ( X − μ ) T ] \Sigma = \mathrm{Cov}(\mathbf{X}) = E[(\mathbf{X} - \mathbf{\mu})(\mathbf{X} - \mathbf{\mu})^T] Σ=Cov(X)=E[(Xμ)(Xμ)T]
    其中 E[⋅]表示期望(平均值)操作,(X−μ)是随机向量 X与其均值向量 μ 之差。

  • 协方差矩阵的元素

    协方差矩阵的元素 Σij表示随机变量 Xi 和 Xj 的协方差:
    Σ i j = C o v ( X i , X j ) = E [ ( X i − μ i ) ( X j − μ j ) ] \Sigma_{ij} = \mathrm{Cov}(X_i, X_j) = E[(X_i - \mu_i)(X_j - \mu_j)] Σij=Cov(Xi,Xj)=E[(Xiμi)(Xjμj)]
    其中:

    当 i=j时,
    Σ i i = V a r ( X i ) \Sigma_{ii} = \mathrm{Var}(X_i) Σii=Var(Xi)
    表示随机变量 Xi 的方差。

    当 i≠j时,
    Σ i j = C o v ( X i , X j ) \Sigma_{ij} = \mathrm{Cov}(X_i, X_j) Σij=Cov(Xi,Xj)
    表示随机变量 Xi和 Xj的协方差。

四、最大似然估计(MLE)

最大似然估计(Maximum Likelihood Estimation, MLE)是一种统计方法,用于估计模型参数,使得观察到的数据在给定模型下的似然最大化。简而言之,它的目标是找到使得观察数据最有可能出现的参数值

  • 定义

    在统计建模中,我们通常有一个参数化的概率模型 P(X|θ),其中 X是我们观察到的数据,θ是模型的参数。最大似然估计的目标是找到参数 θ 的值,使得在这个参数值下,观察到的数据的概率(或似然)最大。

4.1 似然函数

似然函数 L(θ) 是给定数据 X 和参数 θ 时,数据出现的概率。

对于独立同分布的数据点 x1,x2,…,xn,似然函数定义为:
L ( θ ) = P ( X = x 1 , x 2 , … , x n ∣ θ ) = ∏ i = 1 n P ( x i ∣ θ ) L(\theta) = P(X = x_1, x_2, \ldots, x_n | \theta) = \prod_{i=1}^n P(x_i | \theta) L(θ)=P(X=x1,x2,,xnθ)=i=1nP(xiθ)
最大似然估计的目标是找到使得似然函数最大的参数 θ:
θ ^ = arg ⁡ max ⁡ θ L ( θ ) \hat{\theta} = \arg\max_{\theta} L(\theta) θ^=argθmaxL(θ)
由于似然函数通常涉及乘法,为了简化计算,我们通常使用对数似然函数,它的形式是对似然函数取对数:
ℓ ( θ ) = log ⁡ L ( θ ) = log ⁡ ( ∏ i = 1 n P ( x i ∣ θ ) ) = ∑ i = 1 n log ⁡ P ( x i ∣ θ ) \ell(\theta) = \log L(\theta) = \log \left( \prod_{i=1}^n P(x_i | \theta) \right) = \sum_{i=1}^n \log P(x_i | \theta) (θ)=logL(θ)=log(i=1nP(xiθ))=i=1nlogP(xiθ)
因此,最大似然估计可以转化为:
θ ^ = arg ⁡ max ⁡ θ ℓ ( θ ) \hat{\theta} = \arg\max_{\theta} \ell(\theta) θ^=argθmax(θ)

4.2最大似然估计的步骤

1.定义似然函数:根据数据和模型,写出似然函数 L(θ)。

2.对数化似然函数:计算对数似然函数 ℓ(θ)。

3.求解最优参数:对对数似然函数进行优化,找到参数 θ的最大值。

4.3 举例说明

假设我们有一组独立的观测数据 x1,x2,…,xn,它们服从正态分布 N(μ,σ2),其中 μ和 σ2 是未知参数。我们的目标是估计这两个参数。

  • 似然函数

正态分布的概率密度函数是:
P ( x i ∣ μ , σ 2 ) = 1 2 π σ 2 exp ⁡ ( − ( x i − μ ) 2 2 σ 2 ) P(x_i | \mu, \sigma^2) = \frac{1}{\sqrt{2 \pi \sigma^2}} \exp \left( -\frac{(x_i - \mu)^2}{2 \sigma^2} \right) P(xiμ,σ2)=2πσ2 1exp(2σ2(xiμ)2)
因此,似然函数是:
L ( μ , σ 2 ) = ∏ i = 1 n 1 2 π σ 2 exp ⁡ ( − ( x i − μ ) 2 2 σ 2 ) L(\mu, \sigma^2) = \prod_{i=1}^n \frac{1}{\sqrt{2 \pi \sigma^2}} \exp \left( -\frac{(x_i - \mu)^2}{2 \sigma^2} \right) L(μ,σ2)=i=1n2πσ2 1exp(2σ2(xiμ)2)

  • 对数化似然函数

对数似然函数为:
ℓ ( μ , σ 2 ) = log ⁡ L ( μ , σ 2 ) = − n 2 log ⁡ ( 2 π σ 2 ) − 1 2 σ 2 ∑ i = 1 n ( x i − μ ) 2 \ell(\mu, \sigma^2) = \log L(\mu, \sigma^2) = -\frac{n}{2} \log (2 \pi \sigma^2) - \frac{1}{2 \sigma^2} \sum_{i=1}^n (x_i - \mu)^2 (μ,σ2)=logL(μ,σ2)=2nlog(2πσ2)2σ21i=1n(xiμ)2

  • 求解最优参数

对 μ和 σ2 分别进行优化,求出使对数似然函数最大化的 μ 和 σ2 的值。这可以通过设置对数似然函数的偏导数为零并求解得到。

五、最小二乘估计(LSE)

最小二乘估计(Least Squares Estimation, LSE)是一种用于数据拟合和参数估计的方法,广泛应用于回归分析中。它的目标是找到一组参数,使得模型预测值实际观测值之间的差异平方和最小化

  • 定义

    在回归分析中,我们通常有一组观测数据点 (x1,y1),(x2,y2),…,(xn,yn),希望找到一个模型 f(x) 来拟合这些数据。最小二乘估计通过最小化预测值 f(xi)与实际观测值 yi之间的差异平方和确定模型参数

    对于线性回归模型 y=β0+β1x,其中 β0和 β1 是需要估计的参数,最小二乘估计的目标是找到 β0 和 β1 使得以下目标函数最小化:
    SSE = ∑ i = 1 n ( y i − ( β 0 + β 1 x i ) ) 2 \text{SSE} = \sum_{i=1}^n (y_i - (\beta_0 + \beta_1 x_i))^2 SSE=i=1n(yi(β0+β1xi))2
    其中,SSE 表示误差平方和(Sum of Squared Errors)。

5.1 最小二乘估计的步骤

1.定义模型:假设一个模型形式(如线性模型)。

2.构建误差平方和:根据模型和数据,构建误差平方和目标函数。

3.求解最优参数:通过求导并设置导数为零,找到使目标函数最小化的参数。

5.2 线性回归中的最小二乘估计

在线性回归中,模型形式为 y=β0+β1xy = \beta_0 + \beta_1 xy=β0+β1x。我们希望通过最小化误差平方和来找到参数 β0\beta_0β0 和 β1\beta_1β1。

  • 1.构建误差平方和

SSE = ∑ i = 1 n ( y i − ( β 0 + β 1 x i ) ) 2 \text{SSE} = \sum_{i=1}^n (y_i - (\beta_0 + \beta_1 x_i))^2 SSE=i=1n(yi(β0+β1xi))2

  • 2.求导数并设置为零

对 β0 和 β1分别求偏导数,并设置为零,得到方程组:
∂ SSE ∂ β 0 = − 2 ∑ i = 1 n ( y i − ( β 0 + β 1 x i ) ) = 0 \frac{\partial \text{SSE}}{\partial \beta_0} = -2 \sum_{i=1}^n (y_i - (\beta_0 + \beta_1 x_i)) = 0 β0SSE=2i=1n(yi(β0+β1xi))=0

∂ SSE ∂ β 1 = − 2 ∑ i = 1 n x i ( y i − ( β 0 + β 1 x i ) ) = 0 \frac{\partial \text{SSE}}{\partial \beta_1} = -2 \sum_{i=1}^n x_i (y_i - (\beta_0 + \beta_1 x_i)) = 0 β1SSE=2i=1nxi(yi(β0+β1xi))=0

  • 3.解方程组

通过解上述方程组,可以得到参数 β0和 β1的闭式解:
β 1 = n ∑ i = 1 n x i y i − ∑ i = 1 n x i ∑ i = 1 n y i n ∑ i = 1 n x i 2 − ( ∑ i = 1 n x i ) 2 \beta_1 = \frac{n \sum_{i=1}^n x_i y_i - \sum_{i=1}^n x_i \sum_{i=1}^n y_i}{n \sum_{i=1}^n x_i^2 - (\sum_{i=1}^n x_i)^2} β1=ni=1nxi2(i=1nxi)2ni=1nxiyii=1nxii=1nyi

β 0 = 1 n ∑ i = 1 n y i − β 1 1 n ∑ i = 1 n x i \beta_0 = \frac{1}{n} \sum_{i=1}^n y_i - \beta_1 \frac{1}{n} \sum_{i=1}^n x_i β0=n1i=1nyiβ1n1i=1nxi

5.3 举例说明

举例说明

假设我们有以下数据点:

{(1,2),(2,3),(3,5),(4,7)}

我们希望拟合一个线性模型 y=β0+β1x

1.计算数据的均值:
x ˉ = 1 + 2 + 3 + 44 = 2.5 xˉ=1+2+3+44=2.5 xˉ=1+2+3+44=2.5

y ˉ = 2 + 3 + 5 + 74 = 4.25 yˉ=2+3+5+74=4.25 yˉ=2+3+5+74=4.25

2.计算 β1:
β 1 = 4 ( 1 ⋅ 2 + 2 ⋅ 3 + 3 ⋅ 5 + 4 ⋅ 7 ) − ( 1 + 2 + 3 + 4 ) ( 2 + 3 + 5 + 7 ) 4 ( 1 2 + 2 2 + 3 2 + 4 2 ) − ( 1 + 2 + 3 + 4 ) 2 = 4 ( 54 ) − 10 ( 17 ) 4 ( 30 ) − 100 = 1.6 \beta_1 = \frac{4(1 \cdot 2 + 2 \cdot 3 + 3 \cdot 5 + 4 \cdot 7) - (1 + 2 + 3 + 4)(2 + 3 + 5 + 7)}{4(1^2 + 2^2 + 3^2 + 4^2) - (1 + 2 + 3 + 4)^2} = \frac{4(54) - 10(17)}{4(30) - 100} = 1.6 β1=4(12+22+32+42)(1+2+3+4)24(12+23+35+47)(1+2+3+4)(2+3+5+7)=4(30)1004(54)10(17)=1.6

3.计算 β0:
β 0 = y ˉ − β 1 x ˉ = 4.25 − 1.6 ⋅ 2.5 = 0.25 \beta_0 = \bar{y} - \beta_1 \bar{x} = 4.25 - 1.6 \cdot 2.5 = 0.25 β0=yˉβ1xˉ=4.251.62.5=0.25
因此,拟合的线性模型为:

y=0.25+1.6x

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

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

相关文章

第十九次(安装nginx代理tomcat)

回顾 1.安装nodejs---jdk一样你的软件运行环境 yum -y list install|grep epel $? yum -y install nodejs #版本号 node -v 2.下载对应的nodejs软件npm yum -y install npm npm -v npm set config ...淘宝镜像 3.安装vue/cli command line interface 命令行接口 npm ins…

推荐4个国内可用的AI软件,用上以后都能早点下班

随着技术的发展,越来越多的AI软件出现在人们的视野,应用的领域更多,能力提升也更快,用在工作上能帮不少忙。下面就给大家分享4个国内可以直接使用的AI软件,希望大家啊用上以后都能早点下班~ 1.Kimi 一键直达>>h…

韶音开放式耳机怎么样?韶音、西圣、QCY热门款实测横评

开放式耳机是目前最火爆的的耳机市场细分赛道,开放式耳机的优点包括健康卫生,佩戴舒适性高,方便我们接收外部环境音等等,以上这些优势使得开放式耳机特别适配户外运动场景,在工作、日常生活等场景下使用也是绰绰有余。…

Day81 代码随想录打卡|贪心算法篇---跳跃游戏 II

题目&#xff08;leecode T45&#xff09;&#xff1a;给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。 每个元素 nums[i] 表示从索引 i 向前跳转的最大长度。换句话说&#xff0c;如果你在 nums[i] 处&#xff0c;你可以跳转到任意 nums[i j] 处: 0 < j…

亚马逊新产品怎么快速提升销量

经常有卖家吐槽新产品没销量&#xff0c;但卖家们的吐槽并不能把问题解决&#xff0c;南哥和大家分享一下关于测评的好处和一些技巧&#xff0c;以及如何样做才能提高店铺销量&#xff0c;将运营和测评结合起来做 测评的好处: 提升店铺信誉&#xff0c;制造爆款&#xff0c;增…

DjangoRF-12-创建testcases子应用--测试套件模块

models–serializers-permission-views-urls 1、创建models&#xff0c; class TestSuit(BaseModel): name models.CharField(测试套件名称, max_length200, help_text测试套件名称) task models.ForeignKey(Task, verbose_name测试任务, on_deletemodels.PROTECT,help_tex…

揭秘MITM攻击:原理、手法与防范措施

中间人攻击发生时&#xff0c;攻击者会在通讯两端之间插入自己&#xff0c;成为通信链路的一部分。攻击者可以拦截、查看、修改甚至重新定向受害者之间的通信数据&#xff0c;而不被双方察觉。这种攻击常见于未加密的Wi-Fi网络、不安全的HTTP连接或者通过社会工程学手段诱导受害…

C++基础语法:函数探幽(一)内联函数,默认参数,函数重载

前言 "打牢基础,万事不愁" .C的基础语法的学习."学以致用,边学边用",编程是实践性很强的技术,在运用中理解,总结. 引入 <C Prime Plus> 6th Edition(以下称"本书")第8章内容解读 内联函数 1>本书P253--8.1节C内联函数第二…

数据库事务处理技术——故障恢复

1. 数据故障恢复的宏观思路 我们知道DBMS是利用内存&#xff08;主存&#xff09;和外存&#xff08;辅存&#xff09;这样的存储体系进行数据库的管理&#xff0c;其中内存也就是我们常说的缓存是易失的。而事务时DBMS对数据库进行控制的基本单元&#xff0c;宏观上是由程序设…

函数、预解析、参数、参数列表、抛出异常、捕获异常

函数 命名函数 匿名函数 构造函数 纯函数 预解析 关键字var和function开头的语句块提前进行处理 处理过程&#xff1a;当变量和函数的声明处在作用域比较靠后的位置的时候&#xff0c;变量和函数的声明会被提升到作用域的开头。 解释代码和执行代码 因为是在所有代码执行之…

【软件建模与设计】-07-静态建模

目录 1、类之间关系 1.1、关联 1.1.1、关联的多重性 1.1.2、三元关联 1.1.3、一元关联 1.1.4、关联类 2、组合与聚合层次 2.1、组合 2.2、聚合 3、泛化/特化层次 4、约束 5、静态建模和UML 5.1、问题域的静态建模 6、系统上下文的静态建模 7、使用UML构造型对类…

JAVA Spring学习Day1

Maven Maven配置&#xff1a; Maven是Java项目的构建工具&#xff0c;使用pom.xml配置文件管理项目依赖、插件和构建目标。Spring Boot项目搭建&#xff1a; Spring Boot是基于Spring框架的快速开发框架&#xff0c;通过约定大于配置的理念简化了Spring应用的搭建和开发。 …

C# 设计模式之原型模式

总目录 前言 在软件系统中&#xff0c;当创建一个类的实例的过程很昂贵或很复杂&#xff0c;并且我们需要创建多个这样类的实例时&#xff0c;如果我们用new操作符去创建这样的类实例&#xff0c;这未免会增加创建类的复杂度和耗费更多的内存空间&#xff0c;因为这样在内存中…

数据可视化工具,免费无限制制作报表

许多企业在报表制作上投入了大量资金&#xff0c;使用各种收费软件&#xff0c;往往只能满足基本需求&#xff0c;且操作复杂&#xff0c;让人感到无比头疼。不过最近我发现之前一直在做数据大屏的山海鲸可视化&#xff0c;现在新增了报表功能&#xff0c;不仅各种功能都可以免…

创新食堂管理:采购系统源码与供应链APP开发详解

今天&#xff0c;笔者将从食堂采购系统源码与供应链管理APP开发的角度&#xff0c;探讨如何利用技术创新提升食堂管理效率&#xff0c;并为企业带来更大的价值。 一、食堂采购系统的核心功能与优势 食堂采购系统是指用于管理食堂物资采购流程的软件系统&#xff0c;其核心功能…

《学会 SpringMVC 系列 · 剖析入参处理》

&#x1f4e2; 大家好&#xff0c;我是 【战神刘玉栋】&#xff0c;有10多年的研发经验&#xff0c;致力于前后端技术栈的知识沉淀和传播。 &#x1f497; &#x1f33b; CSDN入驻不久&#xff0c;希望大家多多支持&#xff0c;后续会继续提升文章质量&#xff0c;绝不滥竽充数…

【C++】巧用缺省参数与函数重载:提升编程效率的秘密武器

C语法相关知识点可以通过点击以下链接进行学习一起加油&#xff01;命名空间 本章将分享缺省参数与函数重载相关知识&#xff0c;为了更加深入学习C打下了坚实的基础。本章重点在于缺省参数与函数重载使用前提与注意事项 &#x1f308;个人主页&#xff1a;是店小二呀 &#x1…

[CTFHub]ret2text-入土为安的第十二天

checksec pwn ida fn F5 main 点(_int64)v4 v大小为0x70栈基指针0x8返回地址 secure()

软件测试--python基础

一、python基础 (1)第一个python (2)python解释器 (3)基础语法 ①字面量 什么是字面量 常用的值类型 字符串 ②注释 ③变量 什么是变量 变量的特征 变量的目的是存储运行过程的数据 存储的目的是为了&#xff1a;重复使用 ④数据类型 type()语句 变量有类型吗&#xff1f;…

如何选择高品质SD存储卡—高耐用度、防水、防动、抗冲击

SD卡&#xff08;Secure Digital Memory Card&#xff09;是一种广泛使用的存储器件&#xff0c;因其快速的数据传输速度、可热插拔的特性以及较大的存储容量&#xff0c;广泛应用于各种场景&#xff0c;例如在便携式设备如智能手机、平板电脑、运动相机等&#xff0c;用于存储…