【学习笔记】信息学竞赛中的概率与期望小结

信息竞赛——概率与期望

  • 事件
    • 事件的蕴含、包含
    • 事件的互斥
    • 事件的对立
    • 事件的和(并)
    • 事件的积(交)
    • 事件的差
  • 概率
    • 事件的独立性
    • 全概率公式
    • 贝叶斯公式
    • 概率DP(竞赛中的考察)
  • 期望(竞赛中的考察)

前言,温馨提醒

你得明白自己是信息竞赛选手,而非数学竞赛选手。

并非是专业性的正确性的讲解,因为网上不缺权威专家的授课。

作为一名普通高中蒟蒻,对我而言,能够运用做信息竞赛题就足够了。

所以如果不太精准的表述还请见谅,对于完全错误的地方欢迎指出,欢迎大家交流竞赛中的概率期望套路。

这样的形式【这样的形式】是蒟蒻自己的看法,仅供参考。

跨越知识链逻辑的超前学习本就会漏洞百出,还请理性看待。

事件

概率论中研究的“事件”,有这样三层含义:

  • 有一个明确界定的试验(或观察)
  • 这个试验的全部可能结果,是在试验前就明确的
  • 有一个明确的陈述,界定了试验的全部可能结果中一确定的部分。这个陈述,或者说一确定的部分,就叫做一个事件。

全部结果即最后的所有情况可能集合,事件指的是其中某一种符合给定要求的情况集合

我个人更喜欢将事件理解为是筛选的条件/要求/限制,从所有可能结果/情况中选出所有符合这个条件的结果/情况

i.e. 掷骰子,全部结果就是骰子朝上点数的所有情况 {1,2,3,4,5,6}\{1,2,3,4,5,6\}{1,2,3,4,5,6},随便一种有特性限制的事件,比如点数为奇数,情况就是 {1,3,5}\{1,3,5\}{1,3,5}

事件的蕴含、包含

事件 AAA 和事件 BBB,当 AAA 发生的时候 BBB 一定发生,则称 AAA 蕴含 BBBBBB 包含 AAA,记为 A⊂BA\subset BAB

形象来看:在这里插入图片描述

AAA 发生 BBB 必然发生,所以 AAA 的所有情况是被 BBB 所有情况包含的。

若二者相互蕴含,即 A⊂B,B⊂AA\subset B,B\subset AAB,BA ,则称两事件相等,即 A=BA=BA=B

用“事件是实验的一些结果”观点来看,可以理解为符合 AAA 条件的实验结果必在符合 BBB 条件的实验结果中,AAA 的条件更为苛刻,相比与 BBB 而言,更难发生,所以概率就不会超过 BBB 发生的概率。

事件的互斥

A,BA,BA,B 两个事件不能同时发生(可以都不发生),则称他们是互斥的。

形象地看:在这里插入图片描述

数学化的理解就是两个集合的交集为空

如果多个事件中任意两个事件都互斥,则称这些事件是两两互斥的,简称互斥的。

构成这两个事件的结果情况/实验结果是不会有交集的

i.e. 掷骰子的点数为 333 和掷骰子的点数为 222 的倍数这两个事件就是互斥的,因为不能同时发生。

事件的对立

事件 AAA 的对立事件 B={AB=\{AB={A 不发生 }\}},也记为 Aˉ\bar{A}Aˉ

用事件的限制筛选出了符合的情况后,剩余的情况就是这个事件的对立事件集合

形象地看:在这里插入图片描述

红色区域是 AAA 事件,黄色区域就是其对立事件 BBB

i.e. 掷骰子点数为奇数为事件 AAA,则 A={2,4,6},Aˉ={1,3,5}A=\{2,4,6\},\bar{A}=\{1,3,5\}A={2,4,6},Aˉ={1,3,5}

事件的和(并)

事件 A,BA,BA,B 的和为事件 C={AC=\{AC={A 发生或 BBB 发生 }\}},即 A,BA,BA,B 至少发生一个。记为 C=A+BC=A+BC=A+B

形象地看:在这里插入图片描述

AAA 蓝点,BBB 黄圈,CCC 红线。

数学上的理解为两个图形面积的并集

所以两个事件至少发生其中之一的概率并不是简单的概率相加。

i.e. 掷骰子,点数为偶数事件 AAA,点数为质数事件 BBB

A={2,4,6},B={2,3,5}⇒C={2,3,4,5,6}A=\{2,4,6\},B=\{2,3,5\}\Rightarrow C=\{2,3,4,5,6\}A={2,4,6},B={2,3,5}C={2,3,4,5,6}

加法定理两两互斥的事件之和的概率等于各事件的概率之和。事件个数可以有限可以无限。

P(A1+A2+...)=P(A1)+P(A2)+...P(A_1+A_2+...)=P(A_1)+P(A_2)+...P(A1+A2+...)=P(A1)+P(A2)+...

形象地看:在这里插入图片描述

每个事件都是单独的完整的不与其他事件相重合的颜色区域,所有颜色区域就是这些互斥事件的和。

数学化的理解就是所有图形面积的并

i.e. 掷骰子,点数为 111 事件 A1A_1A1,点数为 222 事件 A2A_2A2,点数为 333 事件 A3A_3A3,三个事件和为 BBB

P(B={1,2,3})=P(A1={1})+P(A2={2})+P(A3={3})=16+16+16=12P(B=\{1,2,3\})=P(A_1=\{1\})+P(A_2=\{2\})+P(A_3=\{3\})=\frac{1}{6}+\frac{1}{6}+\frac{1}{6}=\frac{1}{2}P(B={1,2,3})=P(A1={1})+P(A2={2})+P(A3={3})=61+61+61=21

推论P(Aˉ)=1−P(A)P(\bar{A})=1-P(A)P(Aˉ)=1P(A)

在竞赛中,有可能 P(A)P(A)P(A) 并不好求,反而是 P(Aˉ)P(\bar{A})P(Aˉ) 好求。

事件的积(交)

事件 A,BA,BA,B 的积为事件 C={A,BC=\{A,BC={A,B 同时发生 }\}},记为 C=ABC=ABC=AB

如果两事件互斥,等于是在说 ABABAB 为不可能事件,即不能同时发生。

形象地看:在这里插入图片描述

AAA 蓝点,BBB 黄圈,CCC 红线。

数学上的理解为两个图形面积的交集

i.e. 掷出点数为奇数事件 AAA,点数为偶数事件 BBB

则两事件积 C=AB=∅C=AB=\emptyC=AB=。因为不可能一个点数又是奇数又是偶数。

事件的差

两个事件 A,BA,BA,B 的差,记为 A−BA-BAB,定义为 A−B={AA-B=\{AAB={A 发生,BBB 不发生 }\}}

形象地看:在这里插入图片描述

A−BA-BAB 红色区域。

从所有符合A限制的情况中剔除掉同时符合B情况的

显然,A−B=ABˉA-B=A\bar{B}AB=ABˉ

A,BˉA,\bar{B}A,Bˉ 都发生,相当于在说 AAA 发生,BBB 不发生。

由此可见,差可以通过积去定义。

概率

概率可以理解为:一个事件的情况总数占所有情况总数的比例,前提是每个情况都是等权位的,不存在谁优谁劣

定义:两个条件 A,B,P(B)≠0A,B,P(B)\neq 0A,B,P(B)=0,则 P(A∣B)=P(AB)P(B)P(A|B)=\frac{P(AB)}{P(B)}P(AB)=P(B)P(AB)

意思是,在给定条件 BBB 情况下 AAA 条件发生的概率。

条件概率就是这个条件发生的概率,当然是有相对参照物的,竞赛中一般都是以全局所有情况为参照空间的,无条件限制

概率 P(A∩B)P(A∩B)P(AB),即 AAABBB 同时发生的概率。

也就是说,条件概率 P(A∣B)P(A|B)P(AB) 表示当确定 BBB 发生时,样本空间不再是 ΩΩΩ【全局样本空间】,而是缩小成 BBB。我们需要计算在样本空间为 BBB 时,事件 A∩BA∩BAB 发生的概率。

我们在 BBB 样本空间中寻找 AAA 发生的概率。从上面的图中看,就是 A∩BA∩BAB 的面积(概率测度),除以 BBB 占据的面积(概率测度),也就是我们条件概率的定义。

而定义式中的 P(A∩B),P(A),P(B)P(A∩B),P(A),P(B)P(AB),P(A),P(B) 等都是以 ΩΩΩ 为样本空间的。

【以上都是数学规范化的废话,压根没有必要知道那么精确的定义,自己有个大致感觉就行了】

事件的独立性

两事件 A,BA,BA,BAAA 的无条件概率 P(A)P(A)P(A) 和给定 BBB 之下的条件概率 P(A∣B)P(A|B)P(AB),一般是不同的,这反应了两个事件之间的关联。

P(A∣B)>P(A)P(A|B)>P(A)P(AB)>P(A),则 BBB 的发生使得 AAA 的发生可能性增大【尽管一个的参照是 BBB 的样本空间,一个参照是全局样本空间】,即 BBB 的发生促进了 AAA 的发生。

形象地看:在这里插入图片描述

圆内区域表示符合这个事件的情况集合。

除了左图是促进作用,其余两张都是抑制作用,右图更是杜绝这种可能,注意此时是两个事件隶属于同一个实验。

P(A∣B)=P(A)P(A|B)=P(A)P(AB)=P(A),则 BBB 的发生与否对 AAA 发生的可能性毫无影响,这在概率论上称为 A,BA,BA,B 两事件独立。

定理:两独立事件的积概率等于其各自概率的积,即 P(AB)=P(A)P(B)P(AB)=P(A)P(B)P(AB)=P(A)P(B)

i.e. 同时抛硬币和掷骰子,点数为 111 事件 AAA ,硬币正面朝上事件 BBB。显然两者不会相互干扰。

形象地看:上面最右边的图两个就是。 因为这个时候两个事件所属的实验都不一样了。

一般【一般!】都是两个实验结果彼此不影响才会有独立事件。

乘法定理:若干个独立事件 A1,...,AnA_1,...,A_nA1,...,An 之积的概率,等于各概率之积。

P(A1A2...An)=P(A1)P(A2)...P(An)P(A_1A_2...A_n)=P(A_1)P(A_2)...P(A_n)P(A1A2...An)=P(A1)P(A2)...P(An)

条件:相加是互斥,相乘是独立

推论1:独立事件的任意部分都独立。

i.e. 事件 A,B,C,DA,B,C,DA,B,C,D 相互独立,则 A,B,CA,B,CA,B,C 也独立。

推论2:若一系列事件相互独立,则将其中一部分事件改为对立事件,仍是相互独立的。

如果一系列事件任意两个都独立,则称它们两两独立。

定理:相互独立必然推出两两独立,反过来不一定对。

i.e.:有四个一样的球,分别写上数字 1,2,31,2,31,2,3,第四个球上三个数字都写了。

定义事件 Ai:{A_i:\{Ai:{ 等概率抽一个球,上面有数字 i}i\}i}

P(A1)=P(A2)=P(A3)=12,P(A1A2)=P(A1A3)=P(A2,A3)=14P(A_1)=P(A_2)=P(A_3)=\frac{1}{2},P(A_1A_2)=P(A_1A_3)=P(A_2,A_3)=\frac{1}{4}P(A1)=P(A2)=P(A3)=21,P(A1A2)=P(A1A3)=P(A2,A3)=41

对于任意事件 Ai,AjA_i,A_jAi,Aj 都有 P(AiAj)=P(Ai)P(Aj)P(A_iA_j)=P(A_i)P(A_j)P(AiAj)=P(Ai)P(Aj),所以 A1,A2,A3A_1,A_2,A_3A1,A2,A3 两两独立。

但不相互独立,因为 P(A1)P(A2)P(A3)=18≠P(A1A2A3)=14P(A_1)P(A_2)P(A_3)=\frac{1}{8}\neq P(A_1A_2A_3)=\frac{1}{4}P(A1)P(A2)P(A3)=81=P(A1A2A3)=41

【因为原样本空间都不是等权位的,三个球只有一个数字,一个球有三个数字】

【这里只是写到了,顺便写了,在竞赛中是不会有这种数学的,所以看不看得懂并不重要】

接下来的东西,就经常在竞赛中使用了

全概率公式

B1,B2,...B_1,B_2,...B1,B2,... 为有限或无限个事件,两两互斥且每次实验中至少发生一个。

BiBj=∅(i≠j),B1+B2+...=ΩB_iB_j=\empty(i\neq j),B_1+B_2+...=\OmegaBiBj=(i=j),B1+B2+...=Ω (必然事件)

有时把具有这些性质的一组事件称为一个“完备事件群”。

显然,事件和其对应事件是一个“完备事件群”。

现在考虑任一事件 AAA,有 A=AΩ=AB1+AB2+...A=A\Omega=AB_1+AB_2+...A=AΩ=AB1+AB2+...,因为 B1...B_1...B1... 两两互质,所以 AB1,...AB_1,...AB1,... 也两两互质。

加法定理有,P(A)=P(AB1)+P(AB2)+...P(A)=P(AB_1)+P(AB_2)+...P(A)=P(AB1)+P(AB2)+...

由条件概率定义得,P(ABi)=P(Bi)P(A∣Bi)⇒P(A)=P(B1)P(A∣B1)+P(B2)P(A∣B2)+...P(AB_i)=P(B_i)P(A|B_i)\Rightarrow P(A)=P(B_1)P(A|B_1)+P(B_2)P(A|B_2)+...P(ABi)=P(Bi)P(ABi)P(A)=P(B1)P(AB1)+P(B2)P(AB2)+...

最后的式子即为全概率公式。

“全部”概率 P(A)P(A)P(A) 被分解成多个部分的和。

一般在竞赛中,从另一个角度考察这个式子。把Bi当作导致A发生的一种可能途径。对不同途径,A发生的概率即条件概率P(A|B)各各不同,而采取哪个途径也是随机的。类似于加权平均的感觉。递推求解类??

【比如,不同班级的升学率不同,学校总升学率是各班升学率的加权平均,其权和班级人数成比例】

贝叶斯公式

P(A⋂B)=P(A)∗P(B∣A)=P(B)∗P(A∣B)⇒P(A∣B)=P(B∣A)∗P(A)P(B)P(A\bigcap B)=P(A)*P(B|A)=P(B)*P(A|B)\Rightarrow P(A|B)=\frac{P(B|A)*P(A)}{P(B)} P(AB)=P(A)P(BA)=P(B)P(AB)P(AB)=P(B)P(BA)P(A)

概率DP(竞赛中的考察)

概率相较于期望而言,更容易让人接受和理解。

一般都是顺着推就可以了,比如 dpi,j:dp_{i,j}:dpi,j: 从起始位置走到 (i,j)(i,j)(i,j) 位置的概率,每走一步都有不同的概率,直接概率相乘转移。

初始化,往往是起始点设为必然事件,概率为 111

输出最终状态即可。

比较简单,一般是题目怎么说就怎么翻译,直接转移,至于优化就是另一回事了。

较难的有,对于一个状态 sss,可能是由若干个状态 tit_iti 都可以转移过来的,这中间可能还包括自己。

比如有百分之多少的概率会原地不动。总之,反正你可以列出一个等式。

然后将 sss 参与的项放在等式左边,其余的放右边,然后把 sss 状态的结果当成未知数来计算,将前面的系数也扔到右边去。

这个时候如果右边全是常数已知项,就可以直接计算。

否则就是出现环的模型,彼此概率相互影响。

这个时候列出若干个等式,高斯消元即可。

概率除了递推的形式,还有用符合条件的方案数占所有方案数的比例表示,前提是等概率。

期望(竞赛中的考察)

随机变量的期望是其每一个取值以概率为权重的加权平均值。

在竞赛中这个随机变量就是最终要求期望的一些限制,类似于事件

【比如最后长度为多少的期望,那么从所有情况中选出最后长度为这么多的情况,再进行期望的相关计算】

有点所有情况带来的价值的平均值的感觉,是一种整体性的估价。

【因为以后的事情永远都是未知的,期望就相当于是提前预测的手段,对于每一种情况的可能性,其最终的结果值以及最终发生这种情况的概率】

期望值:反映一个随机变量取值的平均值。

E(X)=∑i∈Ωp(i)w(i)E(X)=\sum_{i\in \Omega} p(i)w(i)E(X)=iΩp(i)w(i)p(i),w(i)p(i),w(i)p(i),w(i) 分别表示情况结局为 iii 的概率及加权)

【比如最后长度的期望,就是每种可能长度再乘上导致最后结果为这个长度的概率】

关于期望的有三个式子:

  • E(αX)=αE(X)E(\alpha X)=\alpha E(X)E(αX)=αE(X),其中 α\alphaα 是常数。
  • E(X+Y)=E(X)+E(Y)E(X+Y)=E(X)+E(Y)E(X+Y)=E(X)+E(Y)
  • E(XY)=(EX)(EY)E(XY)=(EX)(EY)E(XY)=(EX)(EY)

别忘了,互斥才能相加,独立才能相乘。

这种线性性质证明的话,根据期望的定义 E(x)=∑piwiE(x)=\sum p_iw_iE(x)=piwi ,显然可以拆开相加的。

但好像不懂也可以直接来。因为一般竞赛中的都是互斥独立的。

竞赛中的期望有两种。

一种是纯数学的感觉:

对于次数,步数,排名类,这种每次操作会带来 111 的增长类题目,通常采取递推,但要注意是顺着推还是逆着推。

顺推一般定义为从起始态开始到现在的期望。【已经】

逆推一般定义为从现在开始到终止态的期望。【还差】

但一般会采取逆推的形式,因为我们只对终止态的期望有所了解,一般都为 000

【比如:求平面棋盘从左上角走到右下角的期望步数。我们只知道终止态右下角到右下角的期望步数是 000 步】

这种一般会用到一个很强的公式:假设当前点到每个后继点都有对应的概率,那么逆推是该点的期望是每个后继点的期望乘以正着时对应转移的概率,求和,再 +1+1+1。【表示一次操作的代价,当然有可能是 +2+2+2 什么的】

i.e. i→ji\rightarrow jij 概率为 c(j)c(j)c(j)i→ki\rightarrow kik 概率为 c(k)c(k)c(k)。则逆推时 E(i)=E(j)∗C(j)+E(k)∗C(k)+1E(i)=E(j)*C(j)+E(k)*C(k)+1E(i)=E(j)C(j)+E(k)C(k)+1

【还是抓住加权平均的想法,期望的设置,就默认了加权平均的分母,将 CCC 看作情况的概率(新加权)乘上去,之所以能拆开成所有后继的贡献,是因为这个点只能转移到这些后继点,他们的和是必然事件,后面加的常数是不管怎么转移都会带来的贡献,放在里面也行:E(i)=(E(j)+1)∗C(j)+(E(k)+1)∗C(k)E(i)=(E(j)+1)*C(j)+(E(k)+1)*C(k)E(i)=(E(j)+1)C(j)+(E(k)+1)C(k),因为 C(j)+C(k)=1C(j)+C(k)=1C(j)+C(k)=1,必然事件】

当然,如果正着维护出从初始态开始到每个点的概率,也是可以转移的。

【边对后一个点的贡献其实是相当于起点到前一个点的概率乘以边权,加权平均】

当写出递推式子的时候,可以手玩小数据跑一下,看看是否与预想一般转移。

另一种就是利用期望公式:结果为 iii 的概率乘以 iii 再求和。

这种就只能寻找工具(数据结构??)看能否快速计算出。

这里可以考虑使用概率的相关变化,符合结果条件的情况数占总方案数的概率。

或者预处理概率【比如 iii 个中 jjj 个相关操作,劈里啪啦一顿】

或者是结果为 iii 的方案数乘以 iii 求和后,再最后除以所有方案数及其加权。

或者其余的。。。

多半要用到组合计数相关知识了。

【比如:一条路径长度的期望=所有情况下路径的长度和/所有路径情况方案数,这是由加权平均值的思想得出的】

再一种就是期望可以分段计算,即为所有单独小情况的概率之和

当然如果出现和概率一样的环转移,就要说使用高斯消元了。

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

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

相关文章

尝试:Script Lab,快速 O365 开发工具//SL01)

《前言》Script Lab 我希望有一个系列(连载),可是我挺担心没偿没有能力去驾驭它。虽然早年前己经接触过,但一直未有下决心开始 Office 365 的开发之旅,虽然一直被光标老师所鼓舞,但是我心有旁骛还没有真正做…

Keiichi Tsuchiya the Drift King

Keiichi Tsuchiya the Drift King 题意: 给定一辆小车长宽分别为 b,a,轨道的圆弧部分半径为 r,圆弧对应的角度为 d,求出小车能通过轨道的最小轨道宽度 w。 题解: 我们考虑小车处于什么状态会使弯道最宽…

AspNet Core 下利用普罗米修斯+Grafana构建Metrics和服务器性能的监控

概述Prometheus是一套开源的监控&报警&时间序列数据库的组合,起始是由SoundCloud公司开发的。该项目有非常活跃的社区和开发人员,目前是独立的开源项目,现在最常见的Kubernetes容器管理系统中,通常也会搭配Prometheus进行监控。prome…

软件工程真的是一门什么用都没有的学科么?

软件工程真的是一门什么用都没有的学科么?-----读《构建之法》有感楔子我很惭愧,构建之法这本书已经出版四五年了,我之前却未曾涉猎,还是在通过组织长沙.net技术社区之后,才因为因缘际遇有幸认识邹欣邹老师之后&#x…

Ball Dropping

Ball Dropping 题意&#xff1a; 求&#xff1f;的具体长度 题解&#xff1a; 算一算就出来了 代码&#xff1a; #include<bits/stdc.h> using namespace std; int main(){double r,a,b,h;cin>>r>>a>>b>>h;if(2*r<b&&2*r<…

尝试:Script Lab,开发模式之知识储备//SL02

前期00&#xff1a;深度&#xff1a;从 Office 365 新图标来看微软背后的设计新理念前期01&#xff1a;尝试&#xff1a;Script Lab&#xff0c;快速 Office 365 开发工具 //SL01本期02&#xff1a;尝试&#xff1a;Script Lab&#xff0c;开发模式之知识储备 //SL02项目特点适…

WebApi网关之Bumblebee和Ocelot性能对比

Bumblebee是基于.net core 2.1开发的WebApi网关组件&#xff0c;由于Bumblebee所追求的轻量化和性能&#xff0c;所以它并没有像Ocelot那样从asp.net core上进行扩展&#xff1b;而是构建在BeetleX.FastHttpApi之上&#xff0c;主要原因BeetleX.FastHttpApi有着更轻量化和高性能…

在 .NET Core 中运行 JavaScript

一.前言在 .NET Framework 时&#xff0c;我们可以通过V8.NET等组件来运行 JavaScript&#xff0c;不过目前我看了好几个开源组件包括V8.NET都还不支持 .NET Core &#xff0c;我们如何在 .NET Core 中运行 JavaScript 呢&#xff0c;答案是使用 NodeServices。关于为何有在 .N…

Named Volume 在 MySQL 数据持久化上的基本应用

原文作者&#xff1a;春哥非常感谢春哥的投稿&#xff0c;同时也有一些感慨。初识春哥时&#xff0c;春哥是美术设计大咖。后不久&#xff0c;创业并致力于游戏开发&#xff0c;已有3年。从Unity3D到IOS&#xff08;Swift&#xff09;开发&#xff0c;从前端开发到后端以及容器…

.Netcore 2.0 Ocelot Api网关教程(7)- 限流

本文介绍Ocelot中的限流&#xff0c;限流允许Api网关控制一段时间内特定api的总访问次数。限流的使用非常简单&#xff0c;只需要添加配置即可。1、添加限流修改 configuration.json 配置文件&#xff0c;对 UpstreamPathTemplate 为 /webapib/values 的配置修改如下&#xff1…

微信开发必看,使用.Net Core 开发微信跨平台应用

.NET Core 是一个开源通用的开发框架&#xff0c;源码由微软官方和社区共同支持。支持跨平台&#xff0c;即支持在 Window&#xff0c;macOS&#xff0c;Linux 等系统上的开发和部署&#xff0c;并且可以在硬件设备&#xff0c;云服务&#xff0c;和嵌入式/物联网方案中进行使用…

CF1526 D. Kill Anton

CF1526 D. Kill Anton 题意&#xff1a; 给你一个由’A’,‘N’.‘T’,O’四个字符组成的字符串b&#xff0c;现在要求你改变b的顺序得到a&#xff0c;使得a通过移动回到b的步数最多。 每次移动只能移动相邻两项 题解&#xff1a; 官方题解说&#xff1a;最佳情况为相同字符…

ASP.NET Core 3.0预览版体验

目前.NET Core 3.0的版本为.NET Core 3.0 Preview 3&#xff0c;对应ASP.NET Core 3.0 Preview 3。ASP.NET Core 3.0 之后将不再支持.NET Framework&#xff0c;只运行在.NET Core 上面。ASP.NET Core 3.0 现在已经出到了第三个预览版&#xff0c;增加和改进了很多功能。环境准…

C# .net 中 Timeout 的处理及遇到的问题

C# 中 Timeout 的处理前言最近在项目中要实现一个功能&#xff0c;是关于 Timeout 的&#xff0c;主要是要在要在 TCP 连接建立的时间 和 整个请求完成的时间&#xff0c;在这两个时间层面上&#xff0c;如果超出了设置的时间&#xff0c;就抛出异常&#xff0c;程序中断。研究…

[CodeJam 2021 Round 3] Square Free(调整法 / 字典序最小解网络流)

CodeJam 2021 Round3 Square Freeproblemsolutioncodecode-stdproblem 神奈子是个很爱打麻将的老婆婆&#xff0c;有一天她把她的麻将放进了一个 nmn\times mnm 的网格图里&#xff0c;每个麻将可以左斜着放入网格中&#xff08;如 / &#xff09;&#xff0c;也可以右斜着&am…

ConsurrentDictionary并发字典知多少?

在上一篇文章你真的了解字典吗?一文中我介绍了Hash Function和字典的工作的基本原理.有网友在文章底部评论,说我的Remove和Add方法没有考虑线程安全问题.https://docs.microsoft.com/en-us/dotnet/api/system.collections.generic.dictionary-2?redirectedfromMSDN&viewn…

ASP.NET Core 基于JWT的认证(二)

上一节我们对 Jwt 的一些基础知识进行了一个简单的介绍&#xff0c;这一节我们将详细的讲解,本次我们将详细的介绍一下 Jwt在 .Net Core 上的实际运用。.Net Core 2.2Visual Studio 2017ASP.NET Core WebAPI2在上一篇文章中&#xff0c;我们详细的介绍了JWT的知识&#xff0c;这…

Docker最全教程之Go实战,墙裂推荐(十九)

前言与其他语言相比&#xff0c;Go非常值得推荐和学习&#xff0c;真香&#xff01;为什么&#xff1f;主要是可以直接编译成机器代码&#xff08;性能优越&#xff0c;体积非常小&#xff0c;可达10来M&#xff0c;见实践教程图片&#xff09;而且设计良好&#xff0c;上手门槛…

你注意到 .Net Framework 和 .Net Core 中使用 Session 的区别了吗?

在测试一个例子时发现的问题&#xff0c;这个示例实现的功能是刷新页面也能保持表格锁定列的状态&#xff0c;先看下页面的完成效果&#xff1a;测试中发现&#xff0c;几乎相同的代码&#xff1a;在 FineUIMvc&#xff08;Net Framework&#xff09;下没有问题&#xff1a;htt…

一键发布部署vs插件[AntDeploy]开源了

deploy to remote server by one button click功能支持docker一键部署(支持netcore)支持iis一键部署(支持netcore和framework)(支持增量发布)(支持一键回滚)(支持点火)支持windows服务一键部署(支持netcore和framework)(支持增量发布)(支持一键回滚) 使用插件前我要发布一个net…