首页 > 其他分享 >概率期望基础(施工中……)

概率期望基础(施工中……)

时间:2024-05-12 09:09:29浏览次数:29  
标签:ch 期望 cdot x1 施工 int 概率 x2 include

在概率论和统计学中,数学期望(mathematic expectation )(或均值,亦简称期望)是试验中每次可能结果的概率乘以其结果的总和,是最基本的数学特征之一。它反映随机变量平均取值的大小

期望具有线性性质,所以我们可以很方便的求解。

P4316 绿豆蛙的归宿

这题就是教你求期望,在 DAG 上,容易想到拓扑排序后跑 DP。

设 \(f_i\) 表示从起点到 \(i\) 点的期望,\(p_i\) 表示从起点到 \(i\) 点的概率。显然有状态转移方程

\[f_i=\frac{f_j+w_{i\to j}\cdot p_j}{out_j} \]

#include<bits/stdc++.h>
inline int read(){
	char ch=getchar();int x=0,f=1;
	for(;ch<'0'||ch>'9';ch=getchar())if(ch=='-')f=-1;
	for(;ch>='0'&&ch<='9';ch=getchar())x=(x<<3)+(x<<1)+(ch^48);
	return x*f;
}
const int N=1e5+10;
int n,m,tot,head[N],out[N],in[N];
struct edge{int v,next,w;}e[N<<1];
inline void add(int w,int v,int u){e[++tot]={v,head[u],w};head[u]=tot;out[u]++;in[v]++;}
double ans,f[N],p[N];
inline void topo(){
	std::queue<int> q;
	for(int i=1;i<=n;++i)if(!in[i])q.push(i);
	p[1]=1;
	while(!q.empty()){
		int u=q.front();q.pop();
		for(int i=head[u];i;i=e[i].next){
			int v=e[i].v;
			f[v]+=(f[u]+e[i].w*p[u])/out[u];
			p[v]+=p[u]/out[u];
			if(!--in[v])q.push(v);
		}
	}
}
int main(){
// 	freopen("in.in","r",stdin),freopen("out.out","w",stdout);
	std::ios::sync_with_stdio(false);std::cin.tie(0),std::cout.tie(0);
	n=read(),m=read();
	for(int i=1;i<=m;++i){
		add(read(),read(),read());
	}
	topo();
	printf("%.2lf\n",f[n]);
}

P1654 OSU!

设 \(f_i\) 表示到第 \(i\) 个位置时的期望,经过思考后发现因为取立方的缘故,不是很好转移。考虑将式子展开。

\((x+1)^3=x^3+3\cdot x^2+3\cdot x+1\) 不难发现只多了 \(3\cdot x^3+3\cdot x+1\) ,考虑将它们分别维护出来。

设 \(x1_i\) 表示 \(x\),设 \(x2_i\) 表示 \(x^2\),有
$x1_i=(x1_{i-1}+1)\cdot p_i $
\(x2_i=(x2_{i-1}+2\cdot x1_{i-1}+1)\cdot p_i\)
\(f_i=f_{i-1}+[3\cdot(x1_{i-1}+x2_{i-1})+1]\cdot p_i\)

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define maxn 111111
#define int long long
using namespace std;
int n;
double p[maxn];
double x1[maxn],x2[maxn],ans[maxn];
signed main()
{
  scanf("%lld",&n);
  for(int i=1;i<=n;i++)
      scanf("%lf",&p[i]);
  for(int i=1;i<=n;i++){
      x1[i]=(x1[i-1]+1)*p[i];
      x2[i]=(x2[i-1]+2*x1[i-1]+1)*p[i];
      ans[i]=ans[i-1]+(3*(x1[i-1]+x2[i-1])+1)*p[i];
  }
  printf("%.1lf",ans[n]);
  return 0;
}

时间复杂度 \(O(n)\),观察上面的式子,发现它还可以拿矩阵快速幂来优化,故时间复杂度可以降到 \(O(n\log n)\)

本人的做法通过打表找到了一定的规律,发现每次贡献都会多一个系数为 \(6\) 的贡献,实际上原理一样,故只贴代码,不多赘述了。

#include<bits/stdc++.h>
inline int read(){
	char ch=getchar();int x=0,f=1;
	for(;ch<'0'||ch>'9';ch=getchar())if(ch=='-')f=-1;
	for(;ch>='0'&&ch<='9';ch=getchar())x=(x<<3)+(x<<1)+(ch^48);
	return x*f;
}
const int N=1e5+10;
int n;
double p[N],f[N],zc,last,y;
int main(){
	// freopen("in.in","r",stdin),freopen("out.out","w",stdout);
	std::ios::sync_with_stdio(false);std::cin.tie(0),std::cout.tie(0);
	scanf("%d",&n);
	for(int i=1;i<=n;++i)scanf("%lf",p+i);
	f[1]=1*p[1];last=1;zc=0;y=0;
	for(int i=2;i<=n;++i){
		last*=p[i-1];y*=p[i-1];y+=6*p[i-1]*(1-p[i-2]);
		zc*=p[i-1],zc+=y;
		f[i]=f[i-1]*(1-p[i])+p[i]*(f[i-1]+(1-p[i-1])+zc+last);
		last=(1-p[i-1])+zc+last;
	}
	printf("%.1lf",f[n]);
}

关于此题将 \(3\) 次方推广到 \(k\) 次方,要用到一些多项式的知识,感兴趣可以去看这里的一些讨论,此题还有一些多倍经验,如P1365 WJMZBMR打osu! / Easy Let's Play Osu!,做法大同小异,不多赘述。

P1850 [NOIP2016 提高组] 换教室

标签:ch,期望,cdot,x1,施工,int,概率,x2,include
From: https://www.cnblogs.com/Ishar-zdl/p/18187476

相关文章

  • SciTech-Mathmatics-ProbabilitiesAndStatistics-Distribution-is-all-you-need: 概率
    Distribution-is-all-you-need概率统计到深度学习,四大技术路线图谱,都在这里!https://github.com/graykode/distribution-is-all-you-need自然语言处理路线图:数学基础->语言基础->模型和算法项目作者:Tae-HwanJung,Github:graykode,2019-09-3013:35,选自Github自然......
  • 概率学习2(2024-5-7)
       1.数据总体population、横截面研究cross-sectionalstudy,周期cycle,纵向研究longtitudinalstudy,记录record,参与调查的人respondent、样本sample、有代表性representative、过度抽样oversampling、原始数据rawdata、重编码recode、数据清洗datacleaning。 数据......
  • 概率与期望DP
    例题1:思路:代码:例题2:思路1:代码1:思路2(复杂度更低):代码2:例题3:思路:代码:例题4:思路:......
  • 最高院---发包人对质量问题单方委托第三方单位的,第三方单位所作意见不足以单独对抗竣
    (2020)最高法民申3438号  银川双兴昇工贸有限公司、长枫建设集团有限公司建设工程施工合同纠纷再审审查与审判监督申请人主张:双兴昇公司申请再审称,1.一、二审判决认定事实错误。长枫公司、长枫宁夏分公司在合同履行过程中存在偷工减料、未按图施工的违约行为,案涉钢结构厂房不符......
  • 期望概率二讲
    这一讲很难很难很难。讲题人:吴立俊考虑期望的两个重要性质:\[E(x)=\sum_iP(x=i)\]这个公式描述了期望和概率的关系。\[E(x+y)=E(x)+E(y),E(kX)=kE(X)\]这个公式描述了期望的线性性。那么下面要做一点逆天的事情。题目描述有\(n\)种不同的邮票,皮皮想收集所有种类的邮......
  • 概率论
    概率论理论内容前言当发生的事件总数趋于正无穷时,发生事件\(A\)的次数除以发生的事件总数会趋于一个定值,称为事件\(A\)发生的概率\(P(A)\)。概率是数据的固有属性。概率把所有事件的集合称为概率空间\(\Omega\),其中的元素(即事件)为\(\omega\)。随机变量是一种函数,其......
  • 网课-概率论学习笔记
    基本概念贝叶斯公式\[\becauseP(AB)=P(A|B)P(B)\]期望方差......
  • 【pytorch学习】之概率
    6概率简单地说,机器学习就是做出预测。根据病人的临床病史,我们可能想预测他们在下一年心脏病发作的概率。在飞机喷气发动机的异常检测中,我们想要评估一组发动机读数为正常运行情况的概率有多大。在强化学习中,我们希望智能体(agent)能在一个环境中智能地行动。这意味着我们需要考虑......
  • 如何从架构层面降低公有云多可用区同时故障的概率
    阿里云和腾讯云都曾出现过因一个组件故障而导致所有可用区同时瘫痪的情况。本文将探讨如何从架构设计的角度减小故障域,在故障发生时最小化业务损失,并以Sealos的稳定性实践为例,分享经验教训。抛弃主从,拥抱点对点架构从腾讯云故障报告中可以看出来多可用区一起挂基本都是因为一......
  • 概率dp四题(青蛙跳、吸血鬼、rating、k小姐的点赞之谜)
    青蛙跳Description有\(n\)个荷叶按顺序依次排列开,编号为\(1\)到\(n\),现在有只青蛙在编号为\(n\)的荷叶上。它现在自由愉快的跳跃,如果他在编号为\(i\)的荷叶上,它会等概率的跳到编号为\([1,i]\)的荷叶上,求它跳到编号为\(1\)的荷叶上的期望步数。Samples53.083333......