量化投资基础(一)之均值方差模型一

news2024/9/23 23:34:09

点赞、关注,养成良好习惯
Life is short, U need Python
量化投资基础系列,不断更新中


1. 投资组合收益率与风险

假设市场有 N N N 个资产,其随机收益率分别为 R 1 , R 2 , … , R N R_1,R_2,\dots,R_N R1,R2,,RN ,对应的投资比例分别为 w 1 , w 2 , … , w N w_1,w_2,\dots,w_N w1,w2,,wN,且 w 1 + w 2 + ⋯ + w N = 1 w_1+w_2+\dots+w_N=1 w1+w2++wN=1

  • 投资组合的收益率
    R p = ω 1 R 1 + ω 2 R 2 + ⋯ + ω N R N R_{p} = \omega_{1}R_{1}+\omega_{2}R_{2}+\dots+\omega_{N}R_{N} Rp=ω1R1+ω2R2++ωNRN
  • 投资组合收益率的期望(期望收益率)
    E ( R p ) = ω 1 E ( R 1 ) + ω 2 E ( R 2 ) + ⋯ + ω N E ( R N ) \mathbb{E}(R_{p}) = \omega_{1}\mathbb{E}(R_{1})+\omega_{2}\mathbb{E}(R_{2})+\dots+\omega_{N}\mathbb{E}(R_{N}) E(Rp)=ω1E(R1)+ω2E(R2)++ωNE(RN)
  • 投资组合收益率的方差
    σ 2 ( R p ) = σ 2 ( ∑ i = 1 N ω i R i ) = ∑ i = 1 N ω i 2 σ 2 ( R i ) + ∑ i ≠ j ω i ω j σ ( R i , R j ) \begin{aligned} \sigma^{2}\left(R_{p}\right) &=\sigma^{2}\left(\sum_{i=1}^{N} \omega_{i} R_{i}\right) \\ &=\sum_{i=1}^{N} \omega_{i}^{2} \sigma^{2}\left(R_{i}\right)+\sum_{i \neq j} \omega_{i} \omega_{j} \sigma\left(R_{i}, R_{j}\right) \end{aligned} σ2(Rp)=σ2(i=1NωiRi)=i=1Nωi2σ2(Ri)+i=jωiωjσ(Ri,Rj)

2. 均值-方差模型

均值-方差模型 是由哈里·马科维茨 (H. M. Markowitz,1927.8.24–2023.6) 在 1952 年提出的风险投资模型。马科维茨把风险定义为收益率的波动率,首次将数理统计的方法应用到投资组合选择的研究中。这种方法使收益与风险的多目标优化达到最佳的平衡效果。

证券及其它风险资产的投资需要解决的两个核心问题:预期收益与风险。 那么如何测定组合投资的风险与收益、如何平衡这两项指标进行资产分配是市场投资者迫切需要解决的问题。正是在这样的背景下,在 上世纪 50 年代和 60 年代初,马可维兹理论(均值-方差模型)应运而生。

哈里·马科维茨,1927年8月24日生于美国伊利诺伊州。于1950年、1952年在芝加哥大学连续获得了经济学硕士、博士学位。 马科维茨一生著作颇丰,有专著及合著7本,重要理论文章30余篇,研究范围涉及金融微观分析及数学、计算机在金融经济学方面的应用。他的理论也曾影响了他的同时代学者。由于其出色的、开创性的工作,马科维茨威廉夏普默顿米勒分享了1990年诺贝尔经济学奖。

均值-方差模型的几个假设:

  • 投资者在考虑每一次投资选择时,其依据是某一持仓时间内的证券收益的概率分布。
  • 投资者是根据证券的期望收益率的方差或标准差估测证券组合的风险。
  • 投资者的决定仅仅是依据证券的风险和收益。
  • 在一定的风险水平上,投资者期望收益最大;相对应地,在一定的收益水平上,投资者希望风险最小。

2.1 模型一

  • 不考虑无风险 资产情形下 + 允许卖空
     目标函数:  min ⁡ ω i σ 2 ( R p ) = ∑ i = 1 N ω i 2 σ 2 ( R i ) + ∑ i ≠ j ω i ω j σ ( R i , R j ) = w T Σ w  s.t.  R ˉ p = ∑ i = 1 N ω i E ( R i ) ∑ i = 1 N ω i = 1 \begin{gathered} \text { 目标函数: } \min _{\omega_i} \sigma^2\left(\boldsymbol{R}_p\right)=\sum_{i=1}^N \omega_i^2 \sigma^2\left(\boldsymbol{R}_i\right)+\sum_{i \neq j} \omega_i \omega_j \sigma\left(\boldsymbol{R}_i, R_j\right)=w^T \Sigma w \\ \text { s.t. } \bar{R}_p=\sum_{i=1}^N \omega_i E\left(R_i\right) \\ \sum_{i=1}^N \omega_i=1 \end{gathered}  目标函数ωiminσ2(Rp)=i=1Nωi2σ2(Ri)+i=jωiωjσ(Ri,Rj)=wTΣw s.t. Rˉp=i=1NωiE(Ri)i=1Nωi=1
  • R p ˉ \bar{R_{p}} Rpˉ——投资人的投资目标,即投资人期待投资组合的期望值;
  • ω i ( i = 1 , 2 , … , N ) \omega_{i} (i=1,2,\dots,N) ωi(i=1,2,,N)——投资比重。

模型一的最优解
ω ∗ = Σ − 1 e n c = Σ − 1 e n b R p ˉ \omega^{*}=\frac{\Sigma^{-1}e_{n}}{c}=\frac{\Sigma^{-1} e_{n}}{b} \bar{R_{p}} ω=cΣ1en=bΣ1enRpˉ

其中, b = r T Σ − 1 e n , c = e n T Σ − 1 e n b=r^{T} \Sigma^{-1} e_{n}, c=e_{n}^{T} \Sigma^{-1} e_{n} b=rTΣ1en,c=enTΣ1en

Proof

  • 构造拉格朗日函数
    L ( w , λ 1 , λ 2 ) = ∑ i = 1 n ∑ j = 1 n w i w j Cov ⁡ ( r i , r j ) − λ 1 ( ∑ i = 1 n r ˉ i w i − E ( R ) ) − λ 2 ( ∑ i = 1 n w i − 1 ) \mathcal{L}\left(w, \lambda_{1}, \lambda_{2}\right)=\sum_{i=1}^{n} \sum_{j=1}^{n} w_{i} w_{j} \operatorname{Cov}\left(r_{i}, r_{j}\right)-\lambda_{1}\left(\sum_{i=1}^{n} \bar{r}_{i} w_{i}-E(R)\right)-\lambda_{2}\left(\sum_{i=1}^{n} w_{i}-1\right) L(w,λ1,λ2)=i=1nj=1nwiwjCov(ri,rj)λ1(i=1nrˉiwiE(R))λ2(i=1nwi1)
    其中 λ 1 、 λ 2 \lambda_{1} 、 \lambda_{2} λ1λ2 为限制条件 1 、 2 中的拉格朗日乘子。
  • 对上式中 ω i , λ 1 , λ 2 \omega_{i},\lambda_{1}, \lambda_{2} ωiλ1,λ2 分别求导可得:
    ∂ L ∂ w i = ∑ j = 1 n w j Cov ⁡ ( r i , r j ) − λ 1 r ˉ i − λ 2 = 0    ( i = 1 , 2 , … , n ) ∂ L ∂ λ 1 = ∑ i = 1 n r ˉ i w i − E ( R ) = 0 ∂ L ∂ λ 2 = ∑ i = 1 n w i − 1 = 0 \begin{array}{l} \frac{\partial \mathcal{L}}{\partial w_{i}}=\sum_{j=1}^{n} w_{j} \operatorname{Cov}\left(r_{i}, r_{j}\right)-\lambda_{1} \bar{r}_{i}-\lambda_{2}=0 \ \ (i=1,2,\dots,n)\\ \frac{\partial \mathcal{L}}{\partial \lambda_{1}}=\sum_{i=1}^{n} \bar{r}_{i} w_{i}-E(R)=0 \\ \frac{\partial \mathcal{L}}{\partial \lambda_{2}}=\sum_{i=1}^{n} w_{i}-1=0 \end{array} wiL=j=1nwjCov(ri,rj)λ1rˉiλ2=0  (i=1,2,,n)λ1L=i=1nrˉiwiE(R)=0λ2L=i=1nwi1=0
  • ( w 1 , … , w n ) T = w , ( r ˉ 1 , … , r ˉ n ) T = r , ( Cov ⁡ ( ( r i , r j ) ) = Σ , ( 1 , … , 1 ) = e n (w_{1},\dots,w_{n})^{T}=\mathbf{w}, (\bar{r}_{1},\dots,\bar{r}_{n})^{T}=\mathbf{r}, \left(\operatorname{Cov}((r_{i}, r_{j})\right)=\mathbf{\Sigma},(1,\dots,1)=\mathbf{e_{n}} (w1,,wn)T=w,(rˉ1,,rˉn)T=r,(Cov((ri,rj))=Σ,(1,,1)=en,转化为矩阵形式如下:
    2 Σ w − λ 1 r − λ 2 e n = 0 w T r − E ( R ) = 0 w T e n − 1 = 0 \begin{array}{l} 2 \mathbf{\Sigma} \mathbf{w}-\lambda_{1} \mathbf{r}-\lambda_{2} \mathbf{e_{n}}=0 \\ \mathbf{w}^{T} \mathbf{r}-E(R)=0 \\ \mathbf{w}^{T} \mathbf{e_{n}}-1=0 \end{array} 2Σwλ1rλ2en=0wTrE(R)=0wTen1=0
  • 假设投资组合中各资产不存在完全线性相关,即收益率协方差矩阵 Σ \mathbf{\Sigma} Σ 可逆,根据上式进一步推导则有:
    w = 1 2 Σ − 1 ( λ 1 r + λ 2 e n ) E ( R ) = w T r w T e n = 1 \begin{array}{l} \mathbf{w} = \frac{1}{2} \mathbf{\Sigma}^{-1}(\lambda_{1} \mathbf{r}+\lambda_{2} \mathbf{e_{n}}) \\ E(R) = \mathbf{w}^{T} \mathbf{r} \\ \mathbf{w}^{T} \mathbf{e_{n}}=1 \end{array} w=21Σ1(λ1r+λ2en)E(R)=wTrwTen=1
  • 化简得:
    { E ( R ) = 1 2 ( λ 1 r T Σ − 1 r + λ 2 e n T Σ − 1 r ) 1 = 1 2 ( λ 1 r T Σ − 1 e n + λ 2 e n T Σ − 1 e n ) \left\{\begin{array}{l} E(R)=\frac{1}{2}\left(\lambda_{1} r^{T} \Sigma^{-1} r+\lambda_{2} e_{n}^{T} \Sigma^{-1} r\right) \\ 1=\frac{1}{2}\left(\lambda_{1} r^{T} \Sigma^{-1} e_{n}+\lambda_{2} e_{n}^{T} \Sigma^{-1} e_{n}\right) \end{array}\right. {E(R)=21(λ1rTΣ1r+λ2enTΣ1r)1=21(λ1rTΣ1en+λ2enTΣ1en)
  • 于是
    [ E ( R ) 1 ] = 1 2 [ r T Σ − 1 r e n T Σ − 1 r r T Σ − 1 e n e n T Σ − 1 e n ] [ λ 1 λ 2 ] \begin{array}{l} \left[\begin{array}{c} E(R) \\ 1 \end{array}\right]=\frac{1}{2}\left[\begin{array}{cc} r^{T} \Sigma^{-1} r & e_{n}^{T} \Sigma^{-1} r \\ r^{T} \Sigma^{-1} e_{n} & e_{n}^{T}\Sigma^{-1} e_{n} \end{array}\right]\left[\begin{array}{l} \lambda_{1} \\ \lambda_{2} \end{array}\right] \end{array} [E(R)1]=21[rTΣ1rrTΣ1enenTΣ1renTΣ1en][λ1λ2]
  • a = r T Σ − 1 r , b = r T Σ − 1 e n , c = e n T Σ − 1 e n a =r^{T} \Sigma^{-1} r, b=r^{T} \Sigma^{-1} e_{n}, c=e_{n}^{T} \Sigma^{-1} e_{n} a=rTΣ1r,b=rTΣ1en,c=enTΣ1en, 有:
    σ p 2 = w T Σ w = 1 4 ( λ 1 r T Σ − 1 + λ 2 e n T Σ − 1 ) ⋅ Σ Σ − 1 ( λ 1 r + λ 2 e n ) = 1 4 ( λ 1 2 r T Σ − 1 r + 2 λ 1 λ 2 r T Σ − 1 e n + λ 2 2 e n T Σ − 1 e n ) = 1 4 [ λ 1 λ 2 ] [ r T Σ − 1 r r T Σ − 1 e n r T Σ − 1 e n e n T Σ − 1 e n ] [ λ 1 λ 2 ] = 1 4 [ λ 1 λ 2 ] [ a b b c ] [ λ 1 λ 2 ] \begin{array}{l} \sigma_{p}^{2} = w^{T} \Sigma w \\ = \frac{1}{4}\left(\lambda_{1} r^{T} \Sigma^{-1}+\lambda_{2} e_{n}^{T} \Sigma^{-1}\right) \cdot \Sigma \Sigma^{-1}\left(\lambda_{1} r+\lambda_{2} e_{n}\right) \\ =\frac{1}{4}\left(\lambda_{1}^{2} r^{T} \Sigma^{-1} r+2 \lambda_{1} \lambda_{2} r^{T} \Sigma^{-1} e_{n}+\lambda_{2}^{2} e_{n}^{T} \Sigma^{-1} e_{n}\right) \\ =\frac{1}{4}\left[\lambda_{1} \quad \lambda_{2}\right]\left[\begin{array}{cc} r^{T} \Sigma^{-1} r & r^{T} \Sigma^{-1} e_{n} \\ r^{T} \Sigma^{-1} e_{n} & e_{n}^{T} \Sigma^{-1} e_{n} \end{array}\right]\left[\begin{array}{l} \lambda_{1} \\ \lambda_{2} \end{array}\right] \\ =\frac{1}{4}\left[\lambda_{1} \quad \lambda_{2}\right]\left[\begin{array}{ll} a & b \\ b & c \end{array}\right]\left[\begin{array}{l} \lambda_{1} \\ \lambda_{2} \end{array}\right] \end{array} σp2=wTΣw=41(λ1rTΣ1+λ2enTΣ1)ΣΣ1(λ1r+λ2en)=41(λ12rTΣ1r+2λ1λ2rTΣ1en+λ22enTΣ1en)=41[λ1λ2][rTΣ1rrTΣ1enrTΣ1enenTΣ1en][λ1λ2]=41[λ1λ2][abbc][λ1λ2]

    [ E ( R ) 1 ] = 1 2 [ a b b c ] [ λ 1 λ 2 ] \begin{array}{l} \left[\begin{array}{c} E(R) \\ 1 \end{array}\right]=\frac{1}{2}\left[\begin{array}{cc} a & b \\ b & c \end{array}\right]\left[\begin{array}{l} \lambda_{1} \\ \lambda_{2} \end{array}\right] \end{array} [E(R)1]=21[abbc][λ1λ2]
  • 于是
    σ p 2 = 1 2 [ λ 1 λ 2 ] [ a b b c ] [ a b b c ] − 1 ⋅ 1 2 [ a b b c ] [ λ 1 λ 2 ] = [ E ( R ) 1 ] [ a   b b c ] − 1 [ E ( R ) 1 ] \sigma_{p}{ }^{2} = \frac{1}{2}\left[\lambda_{1} \quad \lambda_{2}\right]\left[\begin{array}{ll} a & b \\ b & c \end{array}\right] \left[\begin{array}{ll} a & b \\ b & c \end{array}\right]^{-1} \cdot \frac{1}{2} \left[\begin{array}{ll} a & b \\ b & c \end{array}\right] \left[\begin{array}{l} \lambda_{1} \\ \lambda_{2} \end{array}\right] =\left[\begin{array}{ll} E(R) & 1 \end{array}\right]\left[\begin{array}{cc} a & \mathrm{~b} \\ b & c \end{array}\right]^{-1}\left[\begin{array}{c} E(R) \\ 1 \end{array}\right] σp2=21[λ1λ2][abbc][abbc]121[abbc][λ1λ2]=[E(R)1][ab bc]1[E(R)1]


[ a b b c ] − 1 = 1 a c − b 2 [ c − b − b a ] \left[\begin{array}{ll} a & b \\ b & c \end{array}\right]^{-1} =\frac{1}{ac-b^2} \left[\begin{array}{ll} c & -b \\ -b & a \end{array}\right] [abbc]1=acb21[cbba]

  • 则可卖空情况下有效前沿的解析解为:
    σ p 2 = c E ( R ) 2 − 2 b E ( R ) + a a c − b 2 \sigma_{p}{ }^{2}=\frac{c E(R)^{2}-2 b E(R)+a}{a c-b^{2}} σp2=acb2cE(R)22bE(R)+a
  • E ( R ) = b c E(R)=\frac{b}{c} E(R)=cb 时,有极值 σ p = 1 c \sigma_{p}=\sqrt{\frac{1}{c}} σp=c1 , 即最小方差点坐标为 ( 1 c , b c ) \left(\sqrt{\frac{1}{c}}, \frac{b}{c}\right) (c1 ,cb)
  • 于是:
    ω ∗ = Σ − 1 e n c = Σ − 1 e n b R p ˉ . \omega^{*}=\frac{\Sigma^{-1}e_{n}}{c}=\frac{\Sigma^{-1} e_{n}}{b} \bar{R_{p}}. ω=cΣ1en=bΣ1enRpˉ.

特别地,当 N = 2 N=2 N=2
min ⁡ ω σ 2 ( R p ) = ω 1 2 σ 1 2 + ω 2 2 σ 2 2 + ω 1 ω 2 σ 12 + ω 1 ω 2 σ 21 s.t.  R ˉ p = ω 1 E ( R 1 ) + ω 2 E ( R 2 ) ω 1 + ω 2 = 1 \begin{equation} \min _{\omega}\sigma^{2}\left(R_{p}\right)=\omega_{1}^{2} \sigma_{1}^{2}+\omega_{2}^{2}\sigma_{2}^{2}+\omega_{1} \omega_{2}\sigma_{12}+\omega_{1}\omega_{2}\sigma_{21}\\ \text {s.t. } \bar{R}_{p}=\omega_{1}\mathbb{E}\left(R_{1}\right)+\omega_{2} \mathbb{E}\left(R_{2}\right)\\ \omega_{1}+\omega_{2}=1 \end{equation} ωminσ2(Rp)=ω12σ12+ω22σ22+ω1ω2σ12+ω1ω2σ21s.t. Rˉp=ω1E(R1)+ω2E(R2)ω1+ω2=1

ω 1 \omega_{1} ω1 ω 2 \omega_{2} ω2 求导得:

[ Σ e R ˉ e ′ 0 0 R ˉ ′ 0 0 ] [ ω ∗ λ 1 λ 2 ] = [ 0 1 R ˉ p ] \left[\begin{array}{ccc} \Sigma & e & \bar{R} \\ e^{\prime} & 0 & 0 \\ \bar{R}^{\prime} & 0 & 0 \end{array}\right]\left[\begin{array}{c} \omega^{*} \\ \lambda_{1} \\ \lambda_{2} \end{array}\right]=\left[\begin{array}{c} 0 \\ 1 \\ \bar{R}_{p} \end{array}\right] ΣeRˉe00Rˉ00 ωλ1λ2 = 01Rˉp

其中
Σ = [ σ 1 2 σ 12 σ 21 σ 2 2 ] \Sigma=\left[\begin{array}{cc} \sigma_{1}^{2} & \sigma_{12}\\ \sigma_{21} & \sigma_{2}^{2} \end{array}\right] Σ=[σ12σ21σ12σ22] R 1 R_1 R1 R 2 R_2 R2 的协方差;


R ˉ = [ E ( R 1 ) E ( R 2 ] \bar{R}=\left[\begin{array}{c} E(R_{1}) \\ E(R_{2} \end{array}\right] Rˉ=[E(R1)E(R2]为资产收益率期望值构成的列向量。

3. 均值–方差模型一之Python实现

  • 不考虑 无风险 资产情形下 + 允许卖空

数据集:“stock_data.txt”

# 导入包
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['simhei']
plt.rcParams['axes.unicode_minus'] = False

读取数据集

# 读取数据
stock = pd.read_csv('datas\stock_data.txt',sep='\t',index_col='Trddt')
# 转换时间格式
stock.index = pd.to_datetime(stock.index)       
stock.head()      
###################################################### 提取部分数据##############################################################
## 福建高速(600033)
fjgs = stock.loc[stock.Stkcd==600033,'Dretwd'] 
fjgs.name = 'fjgs'

## 浙能电力(600023)
zndl = stock.loc[stock.Stkcd==600023,'Dretwd']
zndl.name='zndl'

## 生益科技(600183)
sykj = stock.loc[stock.Stkcd==600183,'Dretwd']
sykj.name='sykj'

## 华夏银行(600015)
hxyh = stock.loc[stock.Stkcd==600015,'Dretwd']
hxyh.name = 'hxyh'

## 白云机场(600004)
byjc = stock.loc[stock.Stkcd==600004,'Dretwd']
byjc.name = 'byjc'
# 合并数据集(DataFrame)
sh_return = pd.concat([byjc,fjgs,hxyh,sykj,zndl],axis=1)          
sh_return.head()                                               

数据处理

# 删除缺失数据(NaN)
sh_return = sh_return.dropna()                  
sh_return.head()

# 累积求和(cumsum),求积(cumprod):默认参数0表示列求和、积,参数1表示行求和、积
cumreturn = (1 + sh_return).cumprod()            
cumreturn.head()

数据可视化分析

# 绘制收益率时序图
sh_return.plot(figsize=(8,6))

plt.title('5只股票的日收益率时序图(2014-2015)')
plt.xlabel('date')
plt.ylabel('return')
# plt.legend(loc='lower center',bbox_to_anchor=(0.5,-0.3),ncol=5, fancybox=True, shadow=True)
plt.legend()

plt.show()

在这里插入图片描述

# 绘制累积收益率时序图
cumreturn.plot(figsize=(8,6))

plt.title('5只股票的累计日收益率时序图(2014-2015)')
plt.xlabel('date')
plt.ylabel('cumreturn')

plt.show()

在这里插入图片描述

# 查看回报率相关性
sh_return.corr()

在这里插入图片描述

  • 从上述相关系数矩阵可知:5只股票之间都是正相关的,白云机场(600004)和福建高速(600033)相关性最高(同属于交通运输行业)。

  • 接下来,求解 资产最优配置比例 以期达到目标期望收益率时风险最小化。

  • 投资者的资产配置问题最终可以通过二次规划问题表示,该问题在数学上的一阶条件形式如下:借助Python构建 MeanVariance类,可以根据输入的收益率序列,求解二次规划问题计算出最优资产比例,并绘制最小方差前缘曲线(如图4所示)。

求解二次规划问题

# 导入线性代数库
from scipy import linalg
代码及上述文档资源详见资源包(含数据)!

在这里插入图片描述
通过上图发现:通过均值-方差模型得到的最优投资组合累计收益率在初期远远不如随机产生投资组合的累计收益率高,但是经过一段时间的积累发现均值-方差模型对应的投资组合策略的优势越来越明显,尤其是在2015年3月15日以后优势明显加速!

4. 总结

  • 本案例主要介绍了均值-方差模型的一种形式(模型一),然后通过Python语言实现了均值-方差模型,并把均值-方差模型的投资组合策略与随机配置投资组合策略进行了对比分析,结果发现在长期时间内均值-方差模型配置投资组合比随机配置投资组合更胜一筹。

  • 下一步,将对均值-方差模型进行改进,引入投资者对资产的主观观点到模型中,进而形成新的预期收益率,即Black-Litterman模型。

5. 参考资料

  • 蔡立耑. 量化投资以Python为工具[M]. 北京:电子工业出版社,2017.
  • PyQuant. 量化投资基础[M]. 北京:科学出版社,2024.

6. 资源包下载

  • 链接:https://pan.baidu.com/s/1SU8K75tZTFH_xVGG0Q8mPg
  • 提取码:1234

  • 写作不易,切勿白剽
  • 点赞关注,最大鼓励
  • 持续更新,未完待续…

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

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

相关文章

蓝桥 双周赛算法赛【小白场】

博客主页:誓则盟约系列专栏:IT竞赛 专栏关注博主,后期持续更新系列文章如果有错误感谢请大家批评指出,及时修改感谢大家点赞👍收藏⭐评论✍ 蓝桥第14场小白入门赛T1/T2/T3 题目: T1照常还是送分题无需多…

【Git的基本操作】版本回退 | 撤销修改的三种情况 | 删除文件

目录 5.版本回退 5.1选项hard&后悔药 5.2后悔药&commit id 5.3版本回退的原理 6.撤销修改 6.1情况一 6.2情况二 6.3情况三 ​7.删除文件 Git重要能力之一马,版本回退功能。Git是版本控制系统,能够管理文件历史版本。本篇以ReadMe文件为…

STM32智能楼宇照明系统教程

目录 引言环境准备智能楼宇照明系统基础代码实现:实现智能楼宇照明系统 4.1 数据采集模块 4.2 数据处理与控制模块 4.3 通信与网络系统实现 4.4 用户界面与数据可视化应用场景:楼宇照明管理与优化问题解决方案与优化收尾与总结 1. 引言 智能楼宇照明系…

Vue3新特性:Teleport、Suspense玩转起来!

Vue3新特性:Teleport、Suspense玩转起来! 嘿,各位前端小伙伴们!今天咱们来聊聊Vue3中的两个新特性:Teleport和Suspense。这两个功能听起来像是从科幻电影里跑出来的,但实际上它们可是能让我们的代码更加优…

Leetcode - 周赛405

目录 一,3210. 找出加密后的字符串 二,3211. 生成不含相邻零的二进制字符串 三,3212. 统计 X 和 Y 频数相等的子矩阵数量 一,3210. 找出加密后的字符串 本题是一道模拟题,代码如下: class Solution {pu…

力扣27.移除元素(Java)

思路&#xff1a; 使用双指针&#xff0c;其中一个指针用来寻找不同val的下标&#xff0c;另一个指针用来赋值 class Solution {public int removeElement(int[] nums, int val) {int left0;//用来赋值的指针for(int right0;right<nums.length;right){//用来寻找不同与val…

[Linux]Linux编译器gcc/g++

首先我们需要明确概念gcc只能用来编译c语言&#xff0c;g即可用来编译c语言&#xff0c;又可用来编译c,但我们一般用gcc编译c,g编译c 一、gcc的使用 当我们写好代码以后可以直接 gcc test.c然后它会自动生成一个可执行程序a.out这个可执行程序的名字不重要&#xff0c;关键是…

醇香之旅:探索红酒的无穷魅力

在浩渺的饮品世界里&#xff0c;红酒如同一颗璀璨的星辰&#xff0c;闪烁着诱人的光芒。它以其不同的醇香和深邃的韵味&#xff0c;吸引着无数人的目光。今天&#xff0c;就让我们一起踏上这场醇香之旅&#xff0c;探索雷盛红酒所带来的无穷魅力。 一、初识红酒的醇香 当我们…

vue3前端页面下载excel模版

1.excel上传到public目录下 2.代码中引用excel路径 <el-space direction"horizontal" size"small"><el-button click"handleChangePage">刷新列表</el-button><el-button type"primary" click"handleBatch…

【第2章】Spring Cloud之Nacos服务端安装

文章目录 前言一、预备环境准备二、下载源码或者安装包1. 从 Github 上下载源码方式2.下载编译后压缩包方式(推荐)3. 目录结构4. 启动服务器5. 访问控制台6. 关闭服务器 总结 前言 Nacos 通过提供简单易用的动态服务发现、服务配置、服务共享与管理等服务基础设施&#xff0c;…

[日进斗金系列]用码上飞解决企微开发维修管理系统的需求

前言&#xff1a; 今天跟大家唠唠如何用小money生 大money的方法&#xff0c;首先我们需要准备一个工具。 这个工具叫码上飞CodeFlying&#xff0c;它是目前国内首发的L4级自动化智能软件开发平台。 它可以在短时间内&#xff0c;与AI进行几轮对话就能开发出一个可以解决实际…

【React打卡学习第一天】

React入门 一、简介二、基本使用1.引入相关js库2.babel.js的作用 二、创建虚拟DOM三、JSX&#xff08;JavaScript XML&#xff09;1.本质2.作用3.基本语法规则定义虚拟DOM时&#xff0c;不要写引号。标签中混入JS表达式时要用{}。样式的类名指定不要用class,要用className.内联…

发现一个巨牛的国产GPT,确定不来体验一下?

ChatGAI 这个网站融合了多种实用功能&#xff0c;包括聊天问答、PPT生成、笔记整理、图文创作和视频生成等&#xff0c;能满足媒体从业者的多元需求。用户无需注册即可体验&#xff0c;界面友好&#xff0c;操作便捷&#xff0c;分享给兄弟们使用。 链接&#xff1a;ChatGAI …

昇思25天学习打卡营第13天|munger85

文本解码原理–以MindNLP为例 重要的就是怎么样把数字最后转化成真正的文字。而且自回归模型它会一个字给一个字的预测&#xff0c;下一个字应该是什么&#xff1f; 如果这个模型下载很慢&#xff0c;你就可以通过这种方式从摩大社区进行下载。 这种方式&#xff0c; 每一次候…

LeetCode 142.环形链表2 C写法

LeetCOde 142.环形链表2 C写法 思路1&#x1f914;&#xff1a; ​ 用环形链表的方法&#xff0c;快慢指针找到slow和fast的相遇点&#xff0c;此时头到入口点的位置与相遇点到入口点的距离一样。 ​ 我们假设头到入口点的长度为L&#xff0c;环的长度为C&#xff0c;相遇点到入…

ArgMed-Agents:通过多个智能体论证方案增强大模型,进行可解释的临床决策推理

ArgMed-Agents&#xff1a;通过多个智能体论证方案增强大模型&#xff0c;进行可解释的临床决策推理 提出背景ArgMed-Agents 框架目的解法拆解逻辑链 临床讨论的论证方案&#xff08;ASCD&#xff09;论证方案用于决策&#xff08;ASDM&#xff09;论证方案用于副作用&#xff…

算法力扣刷题记录 四十八【513.找树左下角的值】

前言 二叉树篇继续。 记录 四十八【513.找树左下角的值】 一、题目阅读 给定一个二叉树的 根节点 root&#xff0c;请找出该二叉树的 最底层 最左边 节点的值。 假设二叉树中至少有一个节点。 示例 1: 输入: root [2,1,3] 输出: 1示例 2: 输入: [1,2,3,4,null,5,6,nul…

【Datawhale AI夏令营】电力需求预测挑战赛 后续研究方向

时间序列预测是一个不断发展的领域&#xff0c;随着技术的进步&#xff0c;我们可以期待更多的优化方法和模型的出现。 深度学习模型&#xff0c;特别是LSTM和其变体、transformer模型和其变体、大模型&#xff0c;已经在许多时间序列预测任务中显示出了优越的性能。 优化方向…

Linux的相关命令

Linux 1. 什么是Linux系统 Linux&#xff0c;全称GNU/Linux&#xff0c;是一种免费使用和自由传播的类UNIX操作系统&#xff0c;其内核由林纳斯本纳第克特托瓦兹&#xff08;Linus Benedict Torvalds&#xff09;于1991年10月5日首次发布&#xff0c;它主要受到Minix和Unix思想…

面对人工智能发展的伦理挑战:应对策略与未来方向

✨✨ 欢迎大家来访Srlua的博文&#xff08;づ&#xffe3;3&#xffe3;&#xff09;づ╭❤&#xff5e;✨✨ &#x1f31f;&#x1f31f; 欢迎各位亲爱的读者&#xff0c;感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢&#xff0c;在这里我会分享我的知识和经验。&am…