概率期望学习笔记
概率和期望
- 古典概型:
- 试验只有有限个基本结果
- 试验的每个结果出现的可能性是相同的
概率的二项式分布
期望的可加性
- 用期望的可加性计算时,注意:不考虑所有其他无关变量(不论是否有影响),只考虑当前变量!
-
期望的套路题
-
随机游走模型
-
期望+动态规划
-
例:随机生成一个 1~n 的排列,求逆序对个数的期望
期望的线性性
策略:
- 转化成正常的题意(古典概型)
- 算贡献,算贡献,算贡献!(线性性)
practice:
P1297[国家集训队]单选错位
- 线性性
累加即可
CF1096F
- 线性性
逆序对分为四种:
-
给定的数之间的逆序对。
-
不确定的数之间的逆序对。
-
给定的数在不确定的数左边的逆序对。
-
给定的数在不确定的数右边的逆序对。
分类讨论即可
P3802
- 显然在第七次就触发的概率为
CF280C
AGC049A
- 记
为有多少点能到达i,则本题与上题类似,
P5589
- 答案显然是
本题
P2221
- 几何分布
抛硬币,p 的概率正面,一直抛直到得到正面停止。问期望次数?
- 几何分布期望满足一个方程式,(我也不知道这叫啥名字,不过)这其实是“期望步数”这个平均概念的经验性应用。
P4316
- 1
CF24D
P3232
- 转化为求每条边的期望经过步数
CF802L
- 先推柿子,再将它转化为一次函数,再进行递推
令
本题其实还可以利用期望的线性性,设
多次查询?
多组查询树上两点之间游走的期望和。
令
P6835
- 与上题类似
期望和dp
CF518D
- 设
为 秒后有 个人走上电梯的期望,转移方程为:
但需要注意,若上一秒有
若有
特判即可
#include<bits/stdc++.h>
using namespace std;
inline int read(){
int f=1,w=0;
char c=getchar();
while(c<'0'||c>'9'){
if(c=='-') f=-1;
c=getchar();
}
while(c>='0'&&c<='9'){
w=(w<<1)+(w<<3)+(c^48);
c=getchar();
}
return f*w;
}
int n,t;
double p;
double f[2010][2010];
int main(){
n=read();cin>>p;
t=read();
f[0][0]=1.0;
for(int i=1;i<=t;i++){
for(int j=0;j<=n;j++){
if(j==0) f[i][j]=(1-p)*f[i-1][j];
else if(j==n){
f[i][j]=f[i-1][j-1]*p+f[i-1][j];
}else{
f[i][j]=f[i-1][j-1]*p+(1-p)*f[i-1][j];
}
}
}
double ans=0;
for(int i=0;i<=n;i++){
ans+=f[t][i]*i;
}
printf("%.7f",ans);
return 0;
}
P1850
- 设计状态:用
来表示, 表示时间段, 表示已经用了 次机会, 表示换与不换
可得状态转移方程:
P1365
-
显然这道题无法dp,我们可以考虑期望的线性性。
-
如果无问号:
用
如果接上了
如果没接上
如果有问号
#include<bits/stdc++.h>
using namespace std;
const int N=3e5+10;
inline int read(){
int f=1,w=0;
char c=getchar();
while(c<'0'||c>'9'){
if(c=='-') f=-1;
c=getchar();
}
while(c>='0'&&c<='9'){
w=(w<<1)+(w<<3)+(c^48);
c=getchar();
}
return f*w;
}
int n;
char s[N];
double f[N];
double len;
int main(){
n=read();
for(int i=1;i<=n;i++){
cin>>s[i];
}
for(int i=1;i<=n;i++){
if(s[i]=='o'){
f[i]=f[i-1]+2*len+1;
len++;
}else if(s[i]=='x'){
f[i]=f[i-1];
len=0;
}else if(s[i]=='?'){
f[i]=f[i-1]+len+0.5;
len=(len+1)/2;
}
}
printf("%.4f",f[n]);
return 0;
}
p4550
- 与上题类似
P2473
倒叙转移即可。
本文作者:xxx2022
本文链接:https://www.cnblogs.com/xxx2022/p/17686112.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步