人工智能与机器学习原理精解【4】

文章目录

  • 马尔科夫过程论
    • 要点
    • 理论基础
      • σ代数
        • 定义
        • 性质
        • 应用
        • 例子
        • 总结
      • 马尔可夫过程概述
        • 一、马尔可夫过程的原理
        • 二、马尔可夫过程的算法过程
        • 三、具体例子
      • 马尔可夫链的状态转移概率矩阵
        • 一、确定马尔可夫链的状态空间
        • 二、收集状态转移数据
        • 三、计算转移频率
        • 四、构建状态转移概率矩阵
        • 示例
        • 验证
      • 实际应用例子:天气预测
        • 背景描述
        • 数据收集与统计
        • 构建状态转移矩阵
        • 应用状态转移矩阵进行预测
        • 注意事项
      • 实际应用例子:股票价格预测
        • 背景描述
        • 数据收集与状态划分
        • 构建状态转移矩阵
        • 应用状态转移矩阵进行预测
        • 注意事项
      • 马尔可夫链模型和拉普拉斯修正模型
        • 一、定义与原理
        • 二、应用领域
        • 三、数学表达
        • 四、总结
  • 参考文献

马尔科夫过程论

要点

  • 设 M 为某集 G 的子集系,满足下列条件 设M为某集G的子集系,满足下列条件 M为某集G的子集系,满足下列条件
    如果 A ∈ M ,则 A C ∈ M 如果 A i ∈ M ( i = 1 , 2 , . . . ) ,则 ∪ i = 1 ∞ A i ∈ M ,且 ∩ i = 1 ∞ A i ∈ M 称子集系 M 是空间 G 中的 σ 代数。 设 B 为空间 G 中的某一子集系,空间 G 中一切含 B 的 σ 代数的交仍然是 σ 代数。 我们称它为 B 产生的 σ 代数,并记为 σ ( B ) 如果A \in M,则 A^C \in M \\如果A_i \in M(i=1,2,...),则\cup_{i=1}^{\infty} A_i\in M,且\cap_{i=1}^{\infty} A_i\in M \\称子集系M是空间G中的\sigma 代数。 \\设B为空间G中的某一子集系,空间G中一切含B的\sigma代数的交仍然是\sigma代数。 \\我们称它为B产生的\sigma代数,并记为\sigma(B) 如果AM,则ACM如果AiM(i=1,2,...),则i=1AiM,且i=1AiM称子集系M是空间G中的σ代数。B为空间G中的某一子集系,空间G中一切含Bσ代数的交仍然是σ代数。我们称它为B产生的σ代数,并记为σ(B)
  • 设 M 为空间 G 的 σ 代数, X ∈ M , 含于 X 中( A ⊂ X )的 A ∈ M 全体构成空间 X 的 σ 代数,记为 M [ X ] 设M为空间G的\sigma代数,X \in M,含于X中(A \subset X)的A \in M全体构成空间X的\sigma代数,记为M[X] M为空间Gσ代数,XM,含于X中(AX)的AM全体构成空间Xσ代数,记为M[X]
  • 空间 G 中的子集系 α 是 π 系,如果满足以下条件: 空间G中的子集系\alpha是\pi系,如果满足以下条件: 空间G中的子集系απ系,如果满足以下条件:
    A 1 , A 2 ∈ α , A 1 A 2 ∈ α ,这里 A 1 A 2 表示 A 1 和 A 2 的交集 A_1,A_2 \in \alpha,A_1A_2 \in \alpha,这里A_1A_2表示A_1和A_2的交集 A1,A2α,A1A2α,这里A1A2表示A1A2的交集
  • 族 α 是 λ 系,如果满足以下条件: 族\alpha是\lambda系,如果满足以下条件: αλ系,如果满足以下条件:
    G ∈ α A 1 A 2 ∈ α 且 A 1 A 2 = ∅ = > A 1 ∪ A 2 ∈ α A 1 A 2 ∈ α 且 A 1 ⊇ A 2 = > A 1 \ A 2 ∈ α A 1 , . . . , A n , . . . ∈ α 且 A n ↑ = A , 则 A ∈ α G \in \alpha \\A_1A_2 \in \alpha且A_1A_2=\emptyset=>A_1\cup A_2 \in \alpha \\A_1A_2 \in \alpha且A_1 \supseteq A_2=>A_1\backslash A_2 \in \alpha \\A_1,...,A_n,...\in \alpha且A_n \uparrow=A,则A \in \alpha GαA1A2αA1A2==>A1A2αA1A2αA1A2=>A1\A2αA1,...,An,...αAn↑=A,Aα
  • 如果 λ 系 α 包括 π 系 β ,则 α 包含 σ ( β ) 如果\lambda系\alpha 包括\pi系\beta,则\alpha 包含\sigma(\beta) 如果λα包括πβ,则α包含σ(β)
  • 某集系是 π 系,也是 λ 系,则它是 σ 代数 某集系是\pi系,也是\lambda系,则它是\sigma代数 某集系是π系,也是λ系,则它是σ代数
  • 由某集 G 及此集的子集 σ 代数 A 组成的对偶( G , σ )称为可测空间 由某集G及此集的子集\sigma代数A组成的对偶(G,\sigma)称为可测空间 由某集G及此集的子集σ代数A组成的对偶(G,σ)称为可测空间
  • 未完,下节继续

理论基础

下面内容是来自文心一言的自动生成

σ代数

在数学中,σ代数(σ-algebra)也被称为σ域、完全加法类、可列加法类或σ加法类,是测度论中的一个基础概念。它主要用于严格地定义所谓的“可测集”,是含有基本空间的σ环,是某个集合X的所有子集的集合(即幂集)的一个子集。这个子集满足对于可数个集合的并集运算和补集运算的封闭性(因此对于交集运算也是封闭的)。

定义

设г是由集合X中一些子集所构成的集合族(也叫做集类),且满足下述条件:

  1. X∈г(即全集属于г);
  2. 若A∈г,则A的补集Ac∈г(即任何属于г的集合的补集也属于г);
  3. 若AN∈г(N=1,2,…,即可数个属于г的集合的并集也属于г)。

我们称г是一个σ代数。

性质

σ代数具有以下几个重要的性质:

  1. 封闭性:对于可数个集合的并集运算和补集运算封闭,从而对于交集运算也是封闭的。
  2. 包含全集和空集:由于全集X属于σ代数,且任何集合的补集也属于σ代数,因此空集(全集的补集)也属于σ代数。
  3. 与布尔代数的关系:虽然σ代数也被称为σ域,但它实际上是布尔代数的一个特例,即满足可列并集和补集运算封闭的布尔代数。
应用

σ代数在测度论中扮演着重要的角色,它是定义可测集的基础。在测度论中,我们经常需要处理大量的集合,并希望这些集合满足某些性质,以便能够定义测度。σ代数正是为了满足这些需求而提出的。

例子

最著名的σ代数是关于实数轴测度的波莱尔σ代数(得名于法国数学家埃米·波莱尔),以及1901年亨利·勒贝格建立的勒贝格σ代数。这些σ代数在实分析、概率论等领域中有着广泛的应用。

总结

σ代数是数学中测度论的一个重要概念,它用于严格地定义可测集。σ代数具有封闭性、包含全集和空集等性质,并且是布尔代数的一个特例。在测度论中,σ代数扮演着重要的角色,是定义测度的基础。

马尔可夫过程概述

Markov Process是一类重要的随机过程,由俄国数学家A.A.马尔可夫于1907年提出。这类过程的核心特性是“无后效性”或“无记忆性”,即系统的未来状态仅与当前状态有关,而与过去的状态无关。以下将详细描述马尔可夫过程的原理、算法过程,并给出一个具体的例子。

一、马尔可夫过程的原理

1. 马尔可夫性

马尔可夫性是指一个随机过程在给定现在状态及所有过去状态情况下,其未来状态的条件概率分布仅依赖于当前状态,而与过去状态无关。用数学语言表示,若随机过程{X(t), t∈T}满足对任意的t1<t2<…<tn<t,有

P { X ( t ) ≤ x ∣ X ( t 1 ) = x 1 , X ( t 2 ) = x 2 , . . . , X ( t n ) = x n } = P { X ( t ) ≤ x ∣ X ( t n ) = x n } P\{X(t) \leq x | X(t_1) = x_1, X(t_2) = x_2, ..., X(t_n) = x_n\} = P\{X(t) \leq x | X(t_n) = x_n\} P{X(t)xX(t1)=x1,X(t2)=x2,...,X(tn)=xn}=P{X(t)xX(tn)=xn}

则称该过程具有马尔可夫性。

2. 数学定义

若随机过程满足马尔可夫性,则称该过程为马尔可夫过程。马尔可夫过程的数学基础是随机过程理论,它是研究离散事件动态系统状态空间的重要方法。

二、马尔可夫过程的算法过程

马尔可夫过程的算法过程主要涉及状态转移概率的计算、状态概率的预测以及平稳分布的求解等。以下以马尔可夫链为例,说明其算法过程。

1. 状态转移概率矩阵

马尔可夫链的状态转移概率矩阵(也称随机矩阵)是一个重要的工具,用于描述系统从一个状态转移到另一个状态的概率。设系统有n个状态,则状态转移概率矩阵P是一个n×n的矩阵,其中P(i,j)表示从状态i转移到状态j的概率。

2. 状态概率的预测

给定初始状态分布π(0),即系统在初始时刻各状态的概率分布,可以通过状态转移概率矩阵P预测未来任意时刻t的状态分布π(t)。状态分布π(t)是一个n维向量,其中π(t)(i)表示在时刻t系统处于状态i的概率。状态分布的预测可以通过迭代计算实现,即
π ( t ) = π ( t − 1 ) P \pi(t) = \pi(t-1)P π(t)=π(t1)P

3. 平稳分布

若存在状态分布π,使得π=πP,则称π为马尔可夫链的平稳分布。平稳分布是系统经过长时间运行后,各状态概率趋于稳定的分布。

三、具体例子

以某地区农业收成变化为例,假设有三个状态:丰收(E1)、平收(E2)和欠收(E3)。根据历史数据,可以计算出状态转移概率矩阵P,如

P = ( 0.2 0.4667 0.3333 0.5385 0.1538 0.3077 0.3636 0.4545 0.1818 ) P = \begin{pmatrix} 0.2 & 0.4667 & 0.3333 \\ 0.5385 & 0.1538 & 0.3077 \\ 0.3636 & 0.4545 & 0.1818 \end{pmatrix} P= 0.20.53850.36360.46670.15380.45450.33330.30770.1818

假设初始状态为平收(即π(0)=[0,1,0]),则可以通过迭代计算预测未来各年的状态概率分布。例如,计算1990年的状态概率为

π ( 1990 ) = π ( 1989 ) P = [ 0 , 1 , 0 ] ( 0.2 0.4667 0.3333 0.5385 0.1538 0.3077 0.3636 0.4545 0.1818 ) = [ 0.5385 , 0.1538 , 0.3077 ] \pi(1990) = \pi(1989)P = [0, 1, 0] \begin{pmatrix} 0.2 & 0.4667 & 0.3333 \\ 0.5385 & 0.1538 & 0.3077 \\ 0.3636 & 0.4545 & 0.1818 \end{pmatrix} = [0.5385, 0.1538, 0.3077] π(1990)=π(1989)P=[0,1,0] 0.20.53850.36360.46670.15380.45450.33330.30770.1818 =[0.5385,0.1538,0.3077]

依次类推,可以计算出未来各年的状态概率分布,并观察其是否收敛于平稳分布。

马尔可夫链的状态转移概率矩阵

计算马尔可夫链的状态转移概率矩阵,需要遵循一系列步骤,以确保结果的准确性和有效性。以下是详细的计算过程:

一、确定马尔可夫链的状态空间

首先,需要明确马尔可夫链的所有可能状态,这些状态构成了状态空间。例如,如果研究的是天气变化,状态空间可能包括“晴天”、“阴天”和“雨天”。

二、收集状态转移数据

接下来,需要收集关于每个状态转移到其他各个状态的数据。这些数据可以通过实验观测、历史记录或专家评估等方式获得。数据应详细记录每个状态转移到其他状态的次数或频率。

三、计算转移频率

有了状态转移数据后,可以计算每个状态转移到其他各个状态的频率。具体方法是:将每个状态转移到某个特定状态的次数除以该状态的总转移次数。例如,如果状态A转移到状态B的次数是5次,而状态A的总转移次数是20次,则状态A转移到状态B的频率是5/20=0.25。

四、构建状态转移概率矩阵

最后,将所有状态的转移频率排列成矩阵形式,即得到状态转移概率矩阵。矩阵的行表示当前状态,列表示下一状态,矩阵中的元素(i, j)表示从状态i转移到状态j的概率。

示例

假设一个马尔可夫链有三个状态:A、B和C。经过一段时间的观察,我们得到以下的转移次数:

转移方向次数
从A到A10次
从A到B5次
从A到C3次
从B到A2次
从B到B8次
从B到C4次
从C到A1次
从C到B6次
从C到C9次

根据上述数据,我们可以计算每个状态的转移频率,并构建状态转移概率矩阵:

  • A的状态转移频率为:(5+3+2+1) / (10+5+3+2+8+4+1+6+9) = 0.267
  • B的状态转移频率为:(2+8+4) / (2+8+4+1+6+9) = 0.357
  • C的状态转移频率为:(4+6+9) / (4+6+9+1+6+9) = 0.571

因此,状态转移概率矩阵为:

P = ( 0.267 0.357 0.571 (此处为示例,实际值需根据A的具体转移频率计算) (同上) (同上) (省略部分,同理计算) (同上) (同上) ) P = \begin{pmatrix} 0.267 & 0.357 & 0.571 \\ \text{(此处为示例,实际值需根据A的具体转移频率计算)} & \text{(同上)} & \text{(同上)} \\ \text{(省略部分,同理计算)} & \text{(同上)} & \text{(同上)} \end{pmatrix} P= 0.267(此处为示例,实际值需根据A的具体转移频率计算)(省略部分,同理计算)0.357(同上)(同上)0.571(同上)(同上)

注意:由于示例中只给出了部分计算过程,实际的状态转移概率矩阵应填满所有元素。但根据给出的数据,我们只能确定第一行的转移概率(即A转移到A、B、C的概率),其余行的转移概率需要按照同样的方法计算得出。

验证

完成状态转移概率矩阵的构建后,需要验证每一行的元素之和是否等于1。这是因为从一个状态出发,转移到所有可能状态的概率之和必须为1,以满足概率的归一化条件。

通过以上步骤,就可以准确地计算出马尔可夫链的状态转移概率矩阵。

实际应用例子:天气预测

当然可以。以下是一个实际应用中马尔可夫链状态转移矩阵的例子,该例子来自天气预测领域。

背景描述

假设我们想要预测一个地区未来几天的天气情况,我们可以将天气简单分为三种状态:晴天(S1)、多云(S2)和雨天(S3)。通过对该地区历史气象数据的统计,我们可以得到从一种天气状态转移到另一种天气状态的概率。

数据收集与统计

通过对历史气象数据的分析,我们得到以下状态转移概率:

当前状态\转移状态晴天(S1)多云(S2)雨天(S3)
晴天(S1)0.650.20.15
多云(S2)0.250.250.5
雨天(S3)0.250.150.6

这些概率表示,例如,如果今天是晴天,那么明天有65%的概率还是晴天,20%的概率是多云,15%的概率是雨天。

构建状态转移矩阵

根据上述数据,我们可以构建出天气预测的状态转移矩阵P:

P = ( 0.65 0.2 0.15 0.25 0.25 0.5 0.25 0.15 0.6 ) P = \begin{pmatrix} 0.65 & 0.2 & 0.15 \\ 0.25 & 0.25 & 0.5 \\ 0.25 & 0.15 & 0.6 \end{pmatrix} P= 0.650.250.250.20.250.150.150.50.6

应用状态转移矩阵进行预测

假设今天是晴天(即初始状态向量为[1, 0, 0]),我们可以使用状态转移矩阵P来预测未来几天的天气情况。

  • 预测明天的天气
    明天的天气概率 = P × ( 1 0 0 ) = ( 0.65 0.2 0.15 ) \text{明天的天气概率} = P \times \begin{pmatrix} 1 \\ 0 \\ 0 \end{pmatrix} = \begin{pmatrix} 0.65 \\ 0.2 \\ 0.15 \end{pmatrix} 明天的天气概率=P× 100 = 0.650.20.15
    这表明明天有65%的概率是晴天,20%的概率是多云,15%的概率是雨天。

  • 预测后天的天气
    由于马尔可夫链的无记忆性,我们可以继续将状态转移矩阵与明天的天气概率向量相乘,以预测后天的天气。但这里为了简化,我们直接给出结果(实际上应该使用明天的天气概率向量作为新的初始状态向量进行计算)。

后天的天气概率(简化示例) = P 2 × ( 1 0 0 ) \text{后天的天气概率(简化示例)} = P^2 \times \begin{pmatrix} 1 \\ 0 \\ 0 \end{pmatrix} 后天的天气概率(简化示例)=P2× 100
注意,这里使用了P的平方,因为我们需要考虑两步转移。实际上,P的k次方表示从当前状态出发,经过k步转移后到达各状态的概率分布。

注意事项
  • 在实际应用中,天气预测往往比这个例子复杂得多,可能需要考虑更多的因素(如温度、湿度、气压等)和更精细的状态划分。
  • 状态转移矩阵的准确性和可靠性取决于历史数据的完整性和准确性。
  • 马尔可夫链模型假设未来的状态仅与当前状态有关,这在实际应用中可能是一个简化的假设。为了提高预测的准确性,有时可能需要考虑更高阶的马尔可夫链模型(即未来的状态不仅与当前状态有关,还与过去的一个或多个状态有关)。

这个例子展示了马尔可夫链状态转移矩阵在天气预测中的实际应用,通过收集和分析历史数据,我们可以构建出状态转移矩阵,并利用该矩阵进行未来天气的预测。
当然,我可以再举一个关于马尔可夫链状态转移矩阵的实际应用例子,这次我们将以金融市场中的股票价格预测为例。

实际应用例子:股票价格预测

背景描述

在金融市场中,股票价格的变化往往受到多种因素的影响,包括市场情绪、公司业绩、宏观经济指标等。然而,在某些情况下,我们可以简化问题,使用马尔可夫链模型来预测股票价格在未来一段时间内的可能走势。这里,我们将股票价格的变化简化为几个离散的状态,如“上涨”、“持平”和“下跌”。

数据收集与状态划分

首先,我们需要收集一段时间内的股票价格数据,并根据这些数据将股票价格的变化划分为不同的状态。例如,我们可以将股票价格的变化划分为以下三个状态:

  • 状态S1:股票价格上涨
  • 状态S2:股票价格持平
  • 状态S3:股票价格下跌

接下来,我们需要统计从一种状态转移到另一种状态的概率。这通常可以通过分析历史数据来实现。

构建状态转移矩阵

假设我们通过分析历史数据得到了以下状态转移概率:

当前状态\转移状态S1(上涨)S2(持平)S3(下跌)
S1(上涨)0.60.30.1
S2(持平)0.30.40.3
S3(下跌)0.20.20.6

这些概率表示,例如,如果当前股票价格是上涨的(状态S1),那么明天股票价格继续上涨的概率为0.6,持平的概率为0.3,下跌的概率为0.1。

基于这些概率,我们可以构建出股票价格预测的状态转移矩阵P:

P = ( 0.6 0.3 0.1 0.3 0.4 0.3 0.2 0.2 0.6 ) P = \begin{pmatrix} 0.6 & 0.3 & 0.1 \\ 0.3 & 0.4 & 0.3 \\ 0.2 & 0.2 & 0.6 \end{pmatrix} P= 0.60.30.20.30.40.20.10.30.6

应用状态转移矩阵进行预测

假设当前股票价格是上涨的(即初始状态向量为[1, 0, 0]),我们可以使用状态转移矩阵P来预测未来几天的股票价格走势。

  • 预测明天的股票价格走势
    明天的股票价格走势概率 = P × ( 1 0 0 ) = ( 0.6 0.3 0.1 ) \text{明天的股票价格走势概率} = P \times \begin{pmatrix} 1 \\ 0 \\ 0 \end{pmatrix} = \begin{pmatrix} 0.6 \\ 0.3 \\ 0.1 \end{pmatrix} 明天的股票价格走势概率=P× 100 = 0.60.30.1
    这表明明天股票价格有60%的概率继续上涨,30%的概率持平,10%的概率下跌。

  • 预测未来多天的股票价格走势
    为了预测未来多天的股票价格走势,我们需要多次应用状态转移矩阵P。例如,预测后天的股票价格走势,我们可以将明天的股票价格走势概率向量与状态转移矩阵P相乘。然而,需要注意的是,这种方法假设了股票价格的变化是独立的马尔可夫过程,即未来的价格仅与当前价格有关,而与之前的价格无关。在实际应用中,这可能是一个简化的假设。

注意事项
  • 马尔可夫链模型在股票价格预测中的应用有其局限性,因为股票价格的变化受到多种复杂因素的影响,而这些因素可能并不完全满足马尔可夫链的无记忆性假设。
  • 为了提高预测的准确性,通常需要结合其他预测方法和模型,如时间序列分析、机器学习等。
  • 状态划分和状态转移概率的确定对预测结果有很大影响,因此在实际应用中需要谨慎选择。

这个例子展示了马尔可夫链状态转移矩阵在股票价格预测中的潜在应用,尽管其在实际操作中可能需要结合更多的数据和更复杂的模型来提高预测的准确性。

马尔可夫链模型和拉普拉斯修正模型

马尔可夫链模型和拉普拉斯修正模型在统计学和概率论中扮演着不同的角色,它们之间有着显著的区别。以下是两者之间的主要区别:

一、定义与原理

马尔可夫链模型

  • 定义:马尔可夫链模型是一个典型的随机过程模型,其中系统的状态转移仅依赖于当前状态,而与过去的状态无关。这种特性被称为“无后效性”或“无记忆性”。
  • 原理:马尔可夫链通过状态转移矩阵来描述系统在不同状态之间的转移概率。状态转移矩阵中的每个元素表示从一个状态转移到另一个状态的概率。

拉普拉斯修正模型

  • 定义:拉普拉斯修正模型是统计学中用于校正概率估计值的一种方法。它通过在每个样本的计数上加上一个常数(通常为1)来避免零概率的问题,从而提高估计的可靠性。
  • 原理:拉普拉斯修正公式的原理在于对概率的分子和分母同时加上一个小的常数(如1),以调整概率估计值,避免在样本数量较少时出现极端情况。
二、应用领域

马尔可夫链模型

  • 马尔可夫链模型广泛应用于多个领域,包括自然语言处理、图像处理、金融预测、生物信息学等。它特别适用于描述那些只与当前状态有关,而与过去状态无关的随机过程。

拉普拉斯修正模型

  • 拉普拉斯修正模型主要用于概率估计的校正,特别是在样本数量较少或存在零概率问题时。它提高了概率估计的准确性和可靠性,但并非直接用于建模随机过程。
三、数学表达

马尔可夫链模型

  • 数学上,马尔可夫链模型通过状态转移矩阵来表示,其中矩阵的每一行代表当前状态,每一列代表下一状态,矩阵中的元素表示状态转移的概率。

拉普拉斯修正模型

  • 拉普拉斯修正模型在数学上通过修改概率估计的公式来实现,即在分子和分母上分别加上一个常数(如1),从而得到调整后的概率估计值。
四、总结

综上所述,马尔可夫链模型和拉普拉斯修正模型在定义、原理、应用领域和数学表达等方面都存在明显的区别。马尔可夫链模型是一种用于描述随机过程的模型,其状态转移仅依赖于当前状态;而拉普拉斯修正模型则是一种用于校正概率估计值的方法,通过调整概率估计的公式来提高估计的准确性和可靠性。两者在统计学和概率论中各自扮演着重要的角色,但应用场景和目的有所不同。

参考文献

1.文心一言
2.《邓肯-马尔科夫过程论》

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

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

相关文章

视频汇聚平台EasyCVR启动出现报错“cannot open shared object file”的原因排查与解决

安防视频监控EasyCVR安防监控视频系统采用先进的网络传输技术&#xff0c;支持高清视频的接入和传输&#xff0c;能够满足大规模、高并发的远程监控需求。EasyCVR平台支持多种视频流的外部分发&#xff0c;如RTMP、RTSP、HTTP-FLV、WebSocket-FLV、HLS、WebRTC、fmp4等&#xf…

kafka基础介绍

一、为什么使用消息队列 1.使用同步的通信方式来解决多个服务之间的通信 同步的通信方式会存在性能和稳定性的问题。 2.使用异步的通信方式 针对于同步的通信方式来说,异步的方式,可以让上游快速成功,极大提高了系统的吞吐量。而且在分布式系统中,通过下游多个服务的 分布式事…

java爽看Stream

Java Stream MD笔记 一、Java Stream概念 Java Stream是Java 8引入的一种新的数据处理方式&#xff0c;提供了一种高效、便利的方法来处理集合数据。Stream流可以让开发人员以声明式的方式对数据进行操作&#xff0c;从而使代码更加简洁、易读。Stream本身不存储数据&#xf…

怎么拼接几张图片为一张?拼接几张图片为一张的四种方法推荐

怎么拼接几张图片为一张&#xff1f;要将几张图片拼接成一张完整的图像&#xff0c;你可以利用现代软件和工具来实现这一操作。这种技术可以帮助你创建更大、更复杂的图像&#xff0c;无论是为了美学上的需要还是为了展示更完整的视觉信息。通过合并多张图片&#xff0c;你可以…

Windows上让Qt支持https请求

一.前言 Qt默认其实支持https的&#xff0c;但需要openssl的支持。所以有时候你代码中写了支持https的请求连接&#xff0c;发现程序可以运行&#xff0c;但到了https请求时会报错&#xff0c;如下&#xff1a; 这就是没有openssl的支持&#xff0c;导致QSslSocket无法进行ht…

利用customElements.define()设置自定义元素生成一个简单的对话框,且模版的css样式与外面的css样式相互不干扰

直接上代码 说明javascript代码直接嵌入在html里 <!DOCTYPE html> <html><head><meta http-equiv"content-type" content"text/html charsetutf-8"/><title>用影子DOM创建一个对话框</title><style>//这个对话…

关于c#的简单应用三题

#region 输入一个正整数&#xff0c;求1~这个数的阶乘 public static void Factorial(int a) { int result 1; for (int i 1; i < a; i) { result result * i; } Console.WriteLine(result); } #endregion #region 一个游戏&#…

【Vue3】从零开始编写项目

【Vue3】从零开始编写项目 背景简介开发环境开发步骤及源码总结 背景 随着年龄的增长&#xff0c;很多曾经烂熟于心的技术原理已被岁月摩擦得愈发模糊起来&#xff0c;技术出身的人总是很难放下一些执念&#xff0c;遂将这些知识整理成文&#xff0c;以纪念曾经努力学习奋斗的…

Java Development Kit

JDK&#xff08;Java Development Kit&#xff09;是Java程序的软件开发工具包。JDK包含了Java的运行环境&#xff08;Java Runtime Environment&#xff0c;JRE&#xff09;以及Java工具和Java基础的类库。JDK的主要组成部分包括&#xff1a; JRE(Java Runtime Environment) …

阶梯-度小满春招算法方向第1批

问题的题面是典型的最长上升子序列问题。求方案数属动态规划问题&#xff0c;可推出以a[i]为最大节点的上升子序列方案数公式 dp[i]{dp[j] , 1<j<i-1&&f[j]1f[i]} &#xff08;f为最大上升子序列&#xff09;。 并且这个方案总数不会超过n&#xff0c;因此也…

C2W1.Assignment.Autocorrect.Part2

理论课&#xff1a;C2W1.Auto-correct 文章目录 3. Combining the edits3.1 Exercise 8.Edit one letter3.2 Exercise 9.Edit two letters3.3 Exercise 10.suggest spelling suggestions 4. Minimum Edit Distance4.1 Dynamic ProgrammingExercise 11Test All-in-one 5. Backt…

python项目中__init__.py是什么文件有什么作用

__init__.py 文件在 Python 项目中的作用主要是将目录标识为一个 Python 包。它在包的初始化过程中起到了重要作用。具体来说&#xff0c;__init__.py 文件有以下几个功能&#xff1a; 1.标识包&#xff1a; - 当一个目录中包含 __init__.py 文件时&#xff0c;这个目录就被视…

javaScrip的学习(一)

目录 引言 一、java和JavaScript的联系 二、js中的弹出框 1.alert弹出框 2.confirm带确认取消的按钮弹框 3.prompt带有提示信息且带有输入框的弹框 4.输出到网页中 ​三、js引入方式 1. 放在script标签中 2.放在外部js文件中 四、执行顺序 五、书写规范 1. 语句结…

python爬虫基础——Webbot库介绍

本文档面向对自动化网页交互、数据抓取和网络自动化任务感兴趣的Python开发者。无论你是初学者还是有经验的开发者&#xff0c;Webbot库都能为你的自动化项目提供强大的支持。 Webbot库概述 Webbot是一个专为Python设计的库&#xff0c;用于简化网页自动化任务。它基于Seleniu…

Hi3751V560_SELinux

Hi3751V560_SELinux setenforce Enforcing setenforce Permissive(或“setenforce 0”) getenforce V560:demo本身的: [ 13.765161] type=1400 audit(1628821512.905:4): avc: denied { read } for pid=1926 comm="system_server" name="ifindex" d…

CCRC-DCO数据合规入表正式落地!全流程操作指南来啦!(业内专家总结)

数据合规已绝非大企业专属&#xff01; 随着《网络安全法》《数据安全法》《个人信息保护法》相继落地&#xff0c;只要企业涉及用户的各种信息&#xff0c;哪怕是中小企业也会面临数据合规的监管&#xff0c;从而产生相关的法律需求。 小到APP对个人信息数据的采集&#xff0c…

[MY-013129] [Server]

日志 [MY-013129] [Server] A message intended for a client cannot be sent there as no client-session is attached. Therefore, we’re sending the information to the error-log instead: MY-001158 - Got an error reading communication packets 分析&#xff1a;如…

【深入C++】map和set的使用

文章目录 C 中的容器分类1. 顺序容器2. 关联容器3. 无序容器4. 容器适配器5. 字符串容器6. 特殊容器 set1.构造函数2.迭代器3.容量相关的成员函数4.修改器类的成员函数5.容器相关操作的成员函数 multiset1.equal_range map1.初始化相关的函数2.迭代器3.容量相关的成员函数4.访问…

LeetCode题(66,69,35,88)--《c++》

66.加一 // // Created by wxj05 on 2024/7/20. // //法一 class Solution { public:vector<int> plusOne(vector<int>& digits) {bool carry true; // 进位标志for (int i digits.size() - 1; i > 0 && carry; --i) {digits[i] 1;carry digit…

NAS:自动化设计目标检测模型的革命

标题&#xff1a;NAS&#xff1a;自动化设计目标检测模型的革命 随着人工智能技术的飞速发展&#xff0c;自动化机器学习&#xff08;AutoML&#xff09;已成为研究的热点之一。特别是在目标检测领域&#xff0c;自动化神经架构搜索&#xff08;NAS&#xff09;技术的应用&…