浅谈估值模型:PB指标与剩余收益估值

news2024/11/18 9:23:45

摘要及声明

1:本文简单介绍PB指标的推导以及剩余收益的估值方式; 

2:本文主要为理念的讲解,模型也是笔者自建,文中假设与观点是基于笔者对模型及数据的一孔之见,若有不同见解欢迎随时留言交流;

3:笔者希望搭建出一套交易体系,原则是只做干货的分享。后续将更新更多内容,但工作学习之余的闲暇时间有限,更新速度慢还请谅解;

4:本文主要数据通过Tushare(ID:444829)金融大数据平台接口获取;

5:模型实现基于python3.8;

        笔者看本站有一些人写过剩余收益的文章,但都比较模棱两可。百度上也有一些文章,不过点开都是很多公式推导,缺少理念的拓展。本着只讲干货的原则,笔者本期深入浅出讲一讲剩余收益估值那些事儿。必要的一些公式推导还是需要带上的,但笔者更多是分享自己对剩余收益原理和经济含义的理解。本期主要内容如下:


目录

1. 浅谈PB

1.1 PB估值的优点

1.2 经基本面调整的静态PB指标

2. 剩余收益

2.1 与PB指标的关系

2.2 多期剩余收益的几个推导方式

2.2.1 净盈余关系推导

2.2.2 公式法推导一

2.2.3 公式法推导二

2.3 剩余收益的折现

2.3.1 PB指标与单阶段折现

2.3.2 PB指标与多阶段折现

2.3.3 可持续因子折现

3 模型实现

3.1 代码实现

3.2 敏感性分析

4. 总结

5. 往期精选


1. 浅谈PB

        PB指标比较入门和基础,本来笔者不想多谈,网上也已经有很多文章写过,但由于后面涉及到残余收益,不说又差些意思,因此这里笔者还是打算简单介绍一下,并推导一下重要的公式变形和结论,已经对PB指标很熟或者不感兴趣的可以直接跳过本节。

        PB指标又称为市净率,可以利用股价除以公司每股净资产账面价值(Book value per share, 下文简称“BVPS”)得到。笔者在市盈率那期内容中介绍了PE指标的诸多变形,例如静态、动态、TTM、NTM、PEG和基本面调整市盈率等等(文章传送门:PE指标)。但打开交易软件会发现除了PE指标,其它的乘数指标往往只有光溜溜的一个名字,并不像PE指标那样有诸如静态、动态、TTM这种前/后缀。

        笔者看网上对这个原因都避而不谈,好像PE天生就该有这么多变形,其它指标就不配? 事实上PB、PS、PCF等价格乘数指标照样可以有很多变形,而且实务中也确实有人会使用这些变形指标。之所以很少见到这些变形,原因主要是PE指标的分母EPS是股东(韭菜)们最为关心的指标,静态动态PE一列出来,股东们就能看到公司收益增减变化,下回分红多少钱能进口袋也就有了个预期。其次,由于财务报表的勾稽关系,EPS往往和BVPS、销售额及现金流这些指标呈正相关关系,通过PE动静态指标一看大致也能判断出其它指标变化情况。这样一个受股东欢迎,又具有代表性的指标当然要大做文章,于是其它指标就剥得只剩个光杆司令了,很多行情软件甚至不展示PS和PCF这种指标。

1.1 PB估值的优点

        笔者罗列了一些比较重要的优缺点当作是复习了。尽管行情软件上被PE指标夺去很多光环,PB指标的优势也是很突出的,例如:

        1):除资不抵债,PB指标的分母BVPS绝大多数情况下都是正数;

        2):PB的分母BVPS的波动相较于PE的分母EPS要低很多;

        3):企业资产流动性较高,计量属性以公允价值为主,例如金融类行业;

        4):可用于面临破产清算的企业估值;

        不过缺点也是有的:

        1):企业有大量的表外资产/负债(off-B/S);

        2):会计准则和计量方式会对PB产生影响,例如存货计量方式,减值折旧等;

        3):回购增发等行为会对PB产生影响;

1.2 经基本面调整的静态PB指标

        由于PE那期介绍过各种变形的计算规则,笔者就不一一推导了,下面推导一个经基本面调整的静态PB指标,仅作展示。由于是经基本面调整的静态指标,分母采用当期的BVPS,分子采用红利折现计算的内在价值:

PB=\frac{D_{1}/r-g}{BVPS_{0}}=\frac{D_{1}}{BVPS_{0}\times (r-g)}=\frac{NI_{1}\times (1-b)}{BVPS_{0}\times (r-g)}\, \, [1]

        其中:

        D_{1}:下期股利

        r:股东要求回报率

        g:可持续增速(sustainable growth rate)

        BVPS_{0}:当期每股净资产

        b:利润留存率

        NI_{1}:下期每股净利润

        定义ROE的计算式为:

ROE_{1}=\frac{NI_{1}}{BVPS_{0}}

        则[1]式可以进一步变形为:

\frac{NI_{1}\times (1-b)}{BVPS_{0}\times (r-g)}=\frac{ROE_{1}\times (1-b)}{r-g}\, \, [2]

        由于g = ROE_{1}\times b, [2]可以进一步变形得到[3]式:

PB=\frac{ROE_{1}-g}{r-g}\, \, [3]

        通过观察[3]式不难发现几个结论:

        1):当ROE大于r,PB大于1;

        2):当ROE小于r,PB小于1;

        3):当ROE等于r,PB等于1;

        记住[3]式及这三个结论,等一下它们大有作为。

2. 剩余收益

        笔者认为从自由现金流折现到股利折现实际上是一个范围不断收缩的过程,而剩余收益正是这个收缩过程中的一个过渡。如图一所示,在企业的收入大蛋糕中扣除掉费用支出,经营活动的垫资,给政府的税收等等支出后得到可供债权人和股东支配的自由现金流FCFF;在这基础上继续扣除债权人分走那部分利息再加上税盾,得到可供股东支配的自由现金流FCFE;绝大多数人学习过程中会直接从FCFE跳到利用股利进行折现,并且教科书会说一些过场式的陈词滥调,比如:FCFFE代表的是一个公司潜在的分红能力,而股利是一个公司实实在在发出了多少分红。对于一个连年挣钱却还一毛不拔的铁公鸡,FCFE是比较合理的估值方式,云云。

 图一:企业利益分配流

        FCFE是股东可以自由支配的现金流,但一来它不是个实打实的应计制概念,除了不能完全体现应计制的优势,FCF也有可能是个负的,不利于折现。二来自由支配并不意味着股东都能把FCFE全部装进自己的腰包。对于一家FCF是负的,而且一毛不拔的铁公鸡(不发股利)又该怎么办?

        有没有这样一个概念,既能体现公司为股东创造了多少经济价值,又是一个应计制的。首先可以想到的是净利润,它来自利润表,是一个应计制的科目。其次净利润是Bottom line,后面分红多少除了看分红率,净利润才是高分红的基础。作为股东最关心的企业盈利能力指标,ROE就采用了净利润作为分子。

        净利润能不能用来折现?可以。但这样还是差了一块东西,之前说过还需要体现经济价值,也就是经济学告诉我们的机会成本。于是马上可以想到折现率r,而所有者权益又是股东的投入资本,因此通过折现率乘以所有者权益账面价值即可得到股东的机会成本。但总说经济价值指代得也不明确,于是这个理念被取了一个名字,即是剩余收益,也称残余收益(Residual income,下文简称RI),接下来就简单了,如[4]式:

RI_{t+1} = NI_{t+1}-BV_{t}\times r_{e}\, \, [4]

        其中,BV_{t}为第t期所有者权益账面价值(Book value of equity,下文简称“BV”)。

         不过需要注意的是图一只是用来讲解一下理念,里面的长方形面积大小关系并不代表绝对金额的大小关系。实际上分红不一定会小于RI(例如借债发股利),FCFE也不一定会大于RI(例如折旧摊销很小,资产和营运资金投入又很高)。

2.1 与PB指标的关系

        之前推导的PB看似与RI没有关系,实际上RI通过一个巧妙的变形就可与PB指标联系起来。

        将[4]式左边的所有者权益提出:

RI_{t+1} =BV_{t}\times ( \frac{NI_{t+1}}{BV_{t}}- r_{e})

        通过ROE的计算式就可以将上式简化为:

RI_{t+1} =BV_{t}\times ( ROE_{t+1}- r_{e})\, \, [5]

        观察[5]并联系[3]式,可以总结得到以下结论:

        1):当ROE大于r,RI为正数,PB指标大于1;

        2):当ROE小于r,RI为负数,PB指标小于1;

        3):当ROE等于r,RI为0,PB指标等于1;

        这几条结论中,只要成立其中一个小条件,该条结论都可以被直接推出来。例如只要知道基本面修正的PB指标大于1,那么可以直接推出ROE是大于r的,RI是大于0的。

        这个关系不仅是纯数学公式推导,还蕴含着经济原理,即RI用来衡量公司为股东创造的经济价值,ROE是公司盈利能力,r是股东机会成本;当ROE小于r,意味着公司为股东创造的价值不足以覆盖股东的机会成本,此时RI便为负数,基本面修正的静态PB指标也小于1,公司从基本面上看处于破净状态

2.2 多期剩余收益的几个推导方式

        剩余收益的折现与现金流折现是一样的原理,RI其实是通过净利润计算出来的,是一个增量的概念,与净利润不停被计入所有者权益科目一样的逻辑,这个往里加的对象便是公司的所有者权益账面价值。因此,不同于其它估值模型,剩余收益现金流折第一个需要注意的点是当期净资产的账面价值加上未来RI的增量现金流折现。这个得到的结果才是公司的总内在价值,即[6]式:

Intrinsic\, \, Value_{0} = BV_{0} +\sum_{i=1}^{n}\frac{RI_{i}}{(1+r_{i})^{n}}\, \, [6]

        可以看到,[6]式中的当期净资产账面价值是直接可以通过财报得到的,问题在于后面的RI未来现金流加总,下面笔者将推导几种未来RI的推导方式,下面涉及的公式推导会比较较多

2.2.1 净盈余关系推导

        回顾剩余收益的计算式, 下一期的RI可以计算为:

RI_{1} = NI_{1}-BV_{0}\times r_{e}

        不难发现影响RI的几个变量无非是净利润,期初净资产和折现率。看到净利润和净资产直接联想到ROE的公式,只要假设公司未来的ROE水平和折现率,净盈余关系或者清洁盈余关系(clean surplus relationship)成立(成立条件例如:累计其它综合收益科目为0,股本不能变化等),就能直接将未来的RI推算出来。

        因为净盈余关系:

BV_{1} = BV_{0} + NI_{1} - Dividend_{1}

         可以在RI_{1}的基础上直接推导出RI_{2}, 其中Div为分红:

RI_{2} = NI_{2}-BV_{1}\times r_{e}=NI_{2}-(BV_{0}+NI_{1}-Div_{1})\times r_{e}\, \, \, [7]

         按照[7]式这样就可以不断将未来RI计算出来。下面笔者以BV初=1000, ROE=20%且恒定,股利支付率5%且恒定,r=8%且恒定进行简单的四期RI计算展示:

Year(t)1234
BV_{t-1}100011901416.101685.16
NI=ROE\times BV200238283.22337.03
Div_{t}1011.914.16116.85
BV_{t}11901416.101685.162005.34
BV_{t}\times r_{e}8095.20113.29134.81
RI_{t} = NI-BV\times r_{e}120142.80169.93202.22

 表一:净盈余关系计算多期剩余收益

2.2.2 公式法推导一

        由于以下几个关系(字母注释详见PB指标推导部分,没看明白可以留言):

NI_{1} = ROE_{1}\times BV_{0}

NI_{1} - Div_{1} = NI_{1}\times b

g = ROE \times b

        [7]式可继续化简:

RI_{2} =NI_{2}-(BV_{0}+NI_{1}\times b)\times r_{e}=NI_{2}-(BV_{0}+ROE\times BV_{0}\times b)\times r_{e}

        将BV提出:

RI_{2} = NI_{2}-BV_{0}\times (1+g)\times r_{e}

        按这个方式可以写出第三期的剩余收益:

RI_{3} = NI_{3}-(BV_{2}+NI_{3}-Div_{3})\times r_{e}=NI_{3}-BV_{2}\times (1+ROE_{3}\times b)\times r_{e}

        化简一下:

        RI_{3} = NI_{3}-BV_{2}\times (1+g)\times r_{e}

        像这样可以将后面t期的RI用公式[8]表示出来:

RI_{t} = NI_{t}-BV_{t-1}\times (1+g)^{t}\times r_{e}\, \, \, [8]

        公式[8]即为一般公式,假设条件是净盈余关系成立、ROE、股利支付率保持不变。

2.2.3 公式法推导二

        推导出的一般公式[8]中含有一个第t期的净利润,这预测起来比较麻烦。不过在推导RI公式的时候还有一个变形式[5],[5]式中是不含净利润这一项的,因此可以依照上面的原理推导出另一个多期计算式:

RI_{t+1} =BV_{0}\times (1+g)^{t}\times ( ROE_{t+1}- r_{e})\, \, [9]

        还是用刚刚笔者举例使用的数据:BV初=1000, ROE=20%且恒定,股利支付率5%且恒定,r=8%,净盈余关系成立,下面将已知数据直接带入[9]式计算四期的剩余收益:

Year1234
g=ROE\times b0.190.190.190.19
t0123
(1+g)^{t}11.191.421.69
ROE-r_{e}0.120.120.120.12
RI_{t}120142.80196.93202.22

表二:公式法计算多期剩余收益

        对比表一会发现通过净盈余关系计算出的剩余收益和公式法计算出的剩余收益竟然是一模一样的!

        当然是一模一样的,它们本质上只是对公式进行了数学恒等变形,不一样那不是活见鬼了。

2.3 剩余收益的折现

        说完如何计算,下面就该谈估值最重要的步骤——折现。一些基础的折现理念,例如阶段折现方式,可持续因子的运用笔者下面就不做深入解释了,需要了解原理的可以点下面链接看笔者往期讲解:增速g的测算,H-model,可持续因子及周期因子。

        首先对剩余收益来说,最基础的一个折现式子是:

Value_{0} = BV_{0} +\sum_{i=1}^{n}\frac{RI_{i}}{(1+r_{i})^{n}}

        将未来所有的剩余收益预测出来,乖乖按照即期利率折现,最后得到公司内在价值。这种方式比较一板一眼,笔者就不做讨论了。不过这里也可以得到一个结论:从之前的PB指标推导的几个结论可以知道,当ROE一直大于股东机会成本,未来的剩余收益是大于0的。因此对股东们来说,公司的价值会大于净资产的账面价值(Value>BV)。

        下面笔者再讨论几种阶段折现的方式。

2.3.1 PB指标与单阶段折现

        将基础公式中未来现金流加总部分写成戈登增长模型,但与以前的股利折现不同,剩余收益的分子变下形是可以与PB指标联系起来的:

V_{0} =BV_{0}+ \frac{RI_{1}}{r_{e}-g} = BV_{0} +\frac{BV_{0}\times (ROE-r_{e})}{r_{e}-g}

        化简一下,最后一个部分其实就基本面调整的PB指标乘以BV:

\frac{BV_{0}\times (r_{e}-g)}{r_{e}-g}+\frac{BV_{0}\times(ROE-r_{e})}{r_{e}-g}=\frac{BV_{0}\times (ROE - g)}{r_{e}-g}=BV_{0}\times PB

        即:

V_{0}=BV_{0}\times PB\, \, [10]

        [10]式推出来不是闹着玩吗?本身PB就是价格除以净资产账面价值,现在再乘一个净资产得到价格。笔者想说的是,这个式子在未来终值估计上会更有用。不过用这个式子的其中几个前提是ROE不变,净利润增速,净资产增速和剩余收益增速不变。这在实务中其实是不可能出现的,所谓剩余收益是公司为股东所创造的经济价值,随着行业走向衰退,很难说一个企业会永续的以恒定增速为股东创造效益。

2.3.2 PB指标与多阶段折现

        虽然单阶段是很难实现的,但上面的单阶段推导给了一个灵感——知道未来的PB就可以推导出未来的远端现金流的终值(terminal value)。还是之前的例子,前面表一已经将前四期RI都推算了出来,现在结合PB指标计算第五期的终值:

V_{5} = PB_{5}\times BV_{5}        

        接下来就简单了,将每一期的RI进行折现,但需要注意的是V_{5}中是包含净资产账面价值的,需要减去BV才是未来RI的增量。

V_{5} -BV_{5}= \sum_{i=5}^{n} \frac{RI_{i}}{(1+r_{e})^{i}}

        因此:

V_{0}=BV_{0}+\sum_{i=1}^{4} \frac{RI_{i}}{(1+r_{i})^{i}}+\frac{PB_{5}\times BV_{5}-BV_{5}}{(1+r)^{5}}

 图二:远端现金流终值计算

        但这个计算问题在于如何估测5年后的PB水平。例如,长期来看均值回归使得5年后PB指标回到行业平均水平,以行业平均进行估测。或者一个公司由于行业发展程度,市场竞争等因素,从长期来看PB趋向于1,即第五期终值等于0,那么该公司当期的内在价值即为当期净资产加上未来四期的剩余收益折现。

2.3.3 可持续因子折现

        除了利用PB指标外,还有另一种方法计算终值。回到RI的戈登增长折现式:

   V_{0} =BV_{0}+ \frac{RI_{1}}{r_{e}-g}

        仔细想想这个式子其实是有问题的,传统意义上的戈登增长模型是假设现金流以g的速度增长到无穷远期。但对于剩余收益来说,剩余收益永续增长这样的假定太过苛刻,没有那个企业可以保证自己的账面价值永续增长到无穷期,这样的假设太过恐怖了。因此往往不是假设RI永续增长,而是持续下跌。于是就有了带可持续因子的公式[11]:

V_{0} =BV_{0}+ \frac{RI_{1}}{1+r_{e}+\omega }\, \, [11]

        关于可持续因子原理就不展开讲了,需要了解的看笔增速g那期文章。

3 模型实现

         首先是电子表格建模,就是利用Excel。其实很多分析师都有自己的估值模板,输入相关参数就直接出结果了。虽然一些简单的折现模型用电子表格建模还是挺方便的,也很直观。不过笔者还是会自己写写代码,一来可以批量跑很多家公司,二来可以内嵌一些更复杂的功能模块,对于庞大的数据处理来说电子表格建模就显得有心无力了。下面笔者以上证某公司为例简单实现一个带有可持续因子的剩余收益估值模型。

code = "" 公司代码

3.1 代码实现

        数据方面笔者选择了Tushare金融大数据平台API,首先导入相关模块,实例化tushare接口:

import tushare as ts
import numpy as np
import pandas as pd

pro = ts.pro_api("token") # 输入自己的密钥

        1):净利润及净资产

        公司方面使用的是财务报表预测那期的目标公司,一来可以直接拿那期的结果来用,二来可以省略很多分析过程。所需要使用的财务数据为2021年年报数据以及2022年预测数据。 这部分代码很多,也不是本期重点就不放了, 文章传送门:财务报表建模——利润表。

        净利润预测得到的结果:¥27145022057:

def financial_mod():

    return NI

NI = financial_mod()

        净资产账面价值,直接获取当期的财报数据,得到数值为1200多亿:

bv = pro.balancesheet(ts_code=code, period='20211231', fields='total_hldr_eqy_inc_min_int')['total_hldr_eqy_inc_min_int'][0]

print(bv)
# 124868124000.0

        2):折现率

        下面需要知道折现率r, 可以利用CAPM模型计算折现率:

def CAPM_mod():
    
    return r

r = CAPM_mod()

CAPM结果(%): 8.2916 R-square: 0.5092

        当然,也可以内嵌更复杂的模型。笔者利用PSM模型计算,代码也比较多,不放了,感兴趣的可以看笔者折现率r那期内容:浅谈估值模型:回报率r的进阶玩法。模型给出的折现率为12.33%,四个因子均显著,模型解释力近70%,可以说PSM非常适合这家公司:

def PSM_mod():

    return r

r = PSM_mod() 

                                 GLS Regression Results                                
=======================================================================================
Dep. Variable:                     RP   R-squared (uncentered):                   0.697
Model:                            GLS   Adj. R-squared (uncentered):              0.696
Method:                 Least Squares   F-statistic:                              1126.
                                                  
==============================================================================
                 coef    std err          t      P>|t|      [0.025      0.975]
------------------------------------------------------------------------------
RM             1.5858      0.027     58.901      0.000       1.533       1.639
SMB          -49.1681      2.449    -20.075      0.000     -53.971     -44.365
HML           54.8740      3.008     18.244      0.000      48.975      60.773
LIQ          -17.2345      0.881    -19.559      0.000     -18.963     -15.506
==============================================================================
Omnibus:                      260.134   Durbin-Watson:                   0.087
Prob(Omnibus):                  0.000   Jarque-Bera (JB):              883.215
Skew:                           0.645   Prob(JB):                    1.63e-192
Kurtosis:                       6.022   Cond. No.                         161.
==============================================================================

PSM结果(%): 12.3287 Adj R: 0.6962

        3):折现模块

        数据都拿到之后按照前面推导的可持续因子折现公式写个模块就完成了:

def RI_persistent_mod(BV_0, NI_1, r, w): 
    RI = NI_1 - BV_0 * r
    v = BV_0 + RI/(1 + r - w)
    return v
# BV_0:当期净资产
# NI_1:下期净利润
# r:折现率
# w:可持续因子

        将之前的参数传入模块,除以个股数计算每股股价即可。最后结果为¥28:

total_share = pro.daily_basic(ts_code=code, trade_date='20211231', fields='total_share')["total_share"][0]*10000
print(RI_persistent_mod(bv, ni, r, 0.95)/total_share)

# 27.99467127080234

        上面的代码看着简单,因为很多模块都是现成的,以前也做过很多铺垫了,笔者认为这是水到渠成的事情。

3.2 敏感性分析

        有了封装好的模块,敏感性分析,情景分析,压力测试就都可以做了。下面以可持续因子的敏感性分析为例,给定w的阈值从0到1,将结果 输出到图表上:

import matplotlib.pyplot as plt

values = []
w_lst = []
for i in range(100):
    w = 1-i/100
    price = RI_persistent_mod(bv, ni, r, w)/total_share
    values.append(price)
    w_lst.append(w)

plt.plot(w_lst, values)
plt.show()

 图三:可持续因子敏感性分析

        简单说一说吧,仅作举例。从敏感性分析可以看出,w取[0,1]时,该公司的价值区间为¥21到¥32。该价值曲线呈现凸性,即w降时,w的降低对价值影响不断边际降低;当w较高时,w的变化对估值影响较大,即价格到26甚至更高时,例如财报不及预期,产品出现质量丑闻等一些小小的基本面瑕疵,都非常有可能引发估值水平的较的回调。当然,以上结论仅仅只针对可持续因子一个变量,实际需要结合其它变量做更复杂的分析,不是本期重点,仅作举例就不继续分析了。

4. 总结

       简单总结一下剩余收益的优点吧:

        1):在折现公式中不难发现,占价值大头的是当期净资产账面价值,未来的剩余收益毕竟只占较小一部分。因此剩余收益对终值的敏感度很低,而账面价值的数据是直接可以从财报拿到的,提高了估值的准确性;2):剩余收益体现了公司为股东创造的经济价值;3):对于不分红的公司或现金流为负数的公司,剩余收益是不错的估值方式;

        当然,缺点也是有的:

        1):过度依赖账面价值进行估值,对于报表不能如实反应资产价值的情况下,剩余收益估出来的价值很可能是有偏的;2):没有考虑到公司表外项目,例如人才资本,特殊目的实体等。当然,分析师可以对报表进行调整,但需要做大量的工作。3):剩余收益的多期推导严重依赖财务及其报表勾稽关系,例如净剩余关系成立;

        剩余收益的公式是比较多的,比起公式的推导笔者认为更重要的还是理解背后的经济含义。

5. 往期精选

往期精选
系列文章传送门实现方式
基本面分析实现GGM的理想国Python
剩余收益估值(本期)Python
Fama-French及PSMPython
增速g的测算Python
PE指标平滑Python
PE BandPython
技术分析分类树算法R
蒙特卡洛模拟Python
全连接神经网络模型Python
组合管理券商金股哪家强——信息比率Python
从指数构建原理看待A股的三千点魔咒Python
决策树学习基金持仓并识别公司风格类型R
杂谈类垃圾公司对回报率计算的影响几何Python
市场风险分析Python
金融危机模拟Python

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

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

相关文章

【HTML】HTML 标签 ① ( 骨架标签 | 双标签和单标签 | 嵌套关系和并列关系 | 文档类型 | 页面语言 | 编码字符集 )

文章目录一、HTML 标签简介二、HTML 骨架标签三、双标签和单标签四、嵌套关系和并列关系五、文档类型六、页面语言七、编码字符集一、HTML 标签简介 HTML 英文全称 " HyperText Mark-up Language " , 中文名称是 " 超文本标记语言 " ; 多媒体 : 超文本 指…

小 C 爱观察(observe)

小 C 爱观察(observe)题目描述输入格式输出格式样例输入数据#1输出数据#1解释#1输入数据#2输出数据#2输入数据#3输出数据#3题目描述 小 C 非常喜欢树。上次后院的蚂蚁看腻了,这次准备来观察树。 小 C 每天起得早早的,给小树浇水…

shell 流程控制之条件判断及案例

目录 流程控制之条件判断 一,if条件语句的语法及案例 1,单分支结构 2,双分支结构 3,多分支结构 二,复合指令 三, exit退出程序 四, 多条件判断语句case 流程控制之条件判断 条件判断语句…

【SpringCloud】Sentinel 之隔离与降级

一、上集回顾上级文章地址:【SpringCloud】Sentinel 之流量控制_面向架构编程的博客-CSDN博客上一篇文章我们讲解了Sentinel 流量控制、流控效果、热点参数限流的用法,统称为限流,它是一种预防措施,可以尽量避免因高并发而引起的服…

根据官方文档详细说明 Kubernetes 网络流量走向,包含详细的图文说明和介绍

根据官方文档详细说明 Kubernetes 网络流量走向,包含详细的图文说明和介绍。 阅读本文,你可以了解在 Kubernetes 内外,数据包是如何转发的,从原始的 Web 请求开始,到托管应用程序的容器。 Kubernetes 网络要求 在深入…

【three.js】本地搭建Threejs官方文档网站 解决threejs官方文档打开过慢得到问题

本文主要为了解决three.js 官方文档 打开过慢的问题 因为Three.js官网是国外的服务器,所以为了方便学习和快速的查阅文档,我们可以自己搭建Three.js官网和文档,方便随时查看案例和文档内容进行学习。 1、首先进入threejs库GitHub地址&#xf…

如何成为一名FPGA工程师?需要掌握哪些知识?

我国每年对于FPGA设计人才的需求缺口很大。在需求缺口巨大的情形下,发展前景相对可观。那么如何成为一名FPGA工程师? 什么是FPGA? FPGA(FieldProgrammable Gate Array),即现场可编程门阵列,它…

新手入门Pinia

什么是Pinia Pinia 是 Vue 的专属状态管理库,它允许你跨组件或页面共享状态。它和Vuex作用类似(发音为 /piːnjʌ/),官网 为什么要使用Pinia 与 Vuex 相比,Pinia 不仅提供了一个更简单的 API,也提供了符合组合式 API 风格的 API&#xff0…

vue项目创建

前提:node安装:02node安装_哔哩哔哩_bilibili 1. 查看node版本 查看node版本 node -v 查看npm 版本 npm -v 2. 输入cmd 用管理员打开控制台 3. 设置淘宝镜像 npm config set registry https://registry.npm.taobao.org 4. 安装vue脚手架 npm install -g …

北大青鸟昌平校区:2023年云计算发展趋势!

云计算的大规模应用一直是许多最具变革性技术——如人工智能、物联网等的关键驱动力,未来也将进一步推动虚拟现实和增强现实(VR/AR)、元宇宙、甚至量子计算等技术的发展。近日,在美国《福布斯》网站报道中,列出了2023年云计算领域的五大主要趋…

56.Isaac教程--ROS

ROS ISAAC教程合集地址文章目录ROS安装ROS创建和使用自定义 ROS 包创建 ROS BridgeRos节点时间同步器消息转换器基地姿势同步自定义小码示例:将 ROS 导航堆栈与 Isaac 结合使用在此示例上构建将 Isaac 映射转换为 ROS 映射Isaac 和机器人操作系统 (ROS) 都使用消息传…

other-chatGPT记录

title: other-chatGPT记录 categories: Others tags: [人工智能, ai, 机器人, chatGPT] date: 2023-02-02 10:04:33 comments: false mathjax: true toc: true other-chatGPT记录 前篇 官网 https://openai.com/api - https://openai.com/api/测试 - https://platform.openai.…

DSP_CCS7实现变量的导出与MatLAB读取

前言 最近在做基于dsp平台的无通信接口系统辨识,因此需要直接利用CCS将数据导出,然后再利用MatLAB解析读取后的数据。MatLAB的代码参考了以下这篇链接: -/导出CCS3.3数据及使用matlab处理的方法.md at master dailai/- GitHub 高版本的CCS&#xff…

GitHub访问问题与 Steam++下载及使用(适合小白)

前言 📜 “ 作者 久绊A ” 专注记录自己所整理的Java、web、sql等,IT技术干货、学习经验、面试资料、刷题记录,以及遇到的问题和解决方案,记录自己成长的点滴 ​ 目录 前言 一、Steam的介绍 1、大概介绍 2、详细介绍 二、Ste…

Unity与Android交互(双端通信)

前言 最近小编开始做关于手部康复的项目,需要Android集成Unity,以Android为主,Unity为辅的开发;上一篇给大家分享了Unity嵌入Android的操作过程,所以今天想给大家分享一下双端通信的知识; 一. Android与Un…

安装OpenResty

安装OpenResty 1.安装 首先你的Linux虚拟机必须联网 1)安装开发库 首先要安装OpenResty的依赖开发库,执行命令: yum install -y pcre-devel openssl-devel gcc --skip-broken2)安装OpenResty仓库 你可以在你的 CentOS 系统中…

物联网平台+业务平台基本架构设计与优化想法

前言 目前的交付底座有点老,而且集成的有点杂,计划是要升级下,先说想法,看领导做不做。 1 业务平台定位 我们的愿景:通过物联平台赋能,让数据产生价值。 为客户提供可视化的平台(数据价值…

【王道数据结构】第二章 | 线性表

目录 2.1线性表的定义 2.2线性表的基础操作 2.3顺序表的定义 2.4顺序表的基本操作 2.5 线性表的链式表示 2.1线性表的定义 线性表是具有相同数据类型的n(n>0)个数据元素的有限序列,其中n为表长,当n0时线性表是一个空表。若用L命名线性表&#xf…

Block底层原理读书笔记-《高级编程- iOS与OS多线程和内存管理》(更新中)

1 一个Block 真正的底层都有些什么? Block会被解析成一个结构体(这里成为Block结构体),这个结构体里有: (1)isa指针(说明Block的本质是一个对象):指向Stack…

动态修改Azure DevOps区域路径或迭代路径的继承权限(Inhertiance)

Contents1. 场景描述2. 解决方案2.1 更改继承的接口:ChangeInhertiance2.2 获取区域路径的接口:ClassificationNodes1. 场景描述客户使用工作项模板,定制了一个设计变更流程,需要在不同的阶段(流程状态)控制工作项的更改权限。我们…