(期望DP)【总结】期望DP

(期望DP)【总结】期望DP1st1^{st}1st什么是期望感觉是一个比较难懂的东西(假设某随机试验XXX共有nnn种互斥的事件可能发生,其中第i个事件发生的概率为PiP_iPi​,价值为XiX_iXi​,则这个随机试验的期望是E(X)=∑PiXiE(X)=\sumP_iX_iE(X)=∑Pi​Xi​。很不好懂,对吧那么我们只需要把它简单的理解为加权平均数就好2ed2^{ed}2ed期望的一些性质1.E(X+Y)=E(x)+E(Y)E(X+Y)=E(x)+E(Y)E(X+Y)=E(x)+E(Y)证明:左式=∑

1 s t 1^{st} 1st 什么是期望

感觉是一个比较难懂的东西(

假设某随机试验 X X X共有 n n n互斥的事件可能发生,其中第i个事件发生的概率为 P i P_i Pi,价值为 X i X_i Xi,则这个随机试验的期望是 E ( X ) = ∑ P i X i E(X)=\sum P_iX_i E(X)=PiXi

很不好懂,对吧

那么我们只需要把它简单的理解为加权平均数就好

2 e d 2^{ed} 2ed 期望的一些性质

1. E ( X + Y ) = E ( X ) + E ( Y ) E(X+Y)=E(X)+E(Y) E(X+Y)=E(X)+E(Y)

证明:

左 式 = ∑ i , j ( X i + Y i ) P i Q j 左式=\sum_{i,j}(X_i+Y_i)P_iQ_j =i,j(Xi+Yi)PiQj ( P i , Q i 分 别 为 X 和 Y 第 i 个 事 件 发 生 的 概 率 ) (P_i,Q_i分别为X和Y第i个事件发生的概率) (Pi,QiXYi)

= ∑ i , j X i P i Q j + ∑ i , j Y i P i Q j + =\sum_{i,j}X_iP_iQ_j+\sum_{i,j}Y_iP_iQ_j+ =i,jXiPiQj+i,jYiPiQj+

= ∑ i X i P i ∑ j Q j + ∑ j Y j Q j ∑ i P i =\sum_iX_iP_i\sum_jQ_j +\sum_jY_jQ_j\sum_iP_i =iXiPijQj+jYjQjiPi

这里 ∑ j Q j 、 ∑ i P i \sum_jQ_j、\sum_iP_i jQjiPi都为 1 1 1,对吧(自己用概率理解一下)

= ∑ i X i P i + ∑ j Y j Q j =\sum_iX_iP_i +\sum_jY_jQ_j =iXiPi+jYjQj

= E ( X ) + E ( Y ) =E(X) + E(Y) =E(X)+E(Y)

2. E ( X Y ) = E ( x ) E ( Y ) E(XY)=E(x)E(Y) E(XY)=E(x)E(Y)

证明:

左 式 = ∑ i , j X i Y i P i Q i 左式=\sum_{i,j}X_iY_iP_iQ_i =i,jXiYiPiQi

= ∑ i X i P i ∑ j Y j Q j =\sum_{i}X_iP_i \sum_{j}Y_jQ_j =iXiPijYjQj

= E ( X ) E ( Y ) =E(X)E(Y) =E(X)E(Y)

3. E ( X ) = E ( X ) E ( Y ) E(X)=E(X)E(Y) E(X)=E(X)E(Y)

part3. 期望具有常数可乘性。 E ( α X ) = α E ( X ) E(\alpha X)=\alpha E(X) E(αX)=αE(X)

证明: 左 边 = ∑ α X i P i 左边=\sum \alpha X_iP_i =αXiPi

= α ∑ i X i P i =\alpha \sum_iX_iP_i =αiXiPi

E ( α X ) = α ∑ i X i P i = α E ( X ) E(\alpha X)=\alpha \sum_iXiPi=\alpha E(X) E(αX)=αiXiPi=αE(X)

4.可以利用数归推广 2 2 2 3 3 3

E ( ∑ i A i ) = ∑ i A i S i , A = { X , Y , Z … } E(\sum_iA_i)=\sum_iA_iS_i,A=\{X,Y,Z…\} E(iAi)=iAiSi,A={
X,Y,Z}

E ( ∏ i A i ) = ∏ i A i S i , A = { X , Y , Z … } E(\prod_iA_i)=\prod_iA_iS_i,A=\{X,Y,Z…\} E(iAi)=iAiSi,A={
X,Y,Z}

3 r d 3^{rd} 3rd 例题

觉得应该先看例题,配合着例题理解可能会更好

题目

一个n面的骰子,求期望掷几次能使得每一面都被掷到。

例题link

题解

一个期望DP的常用状态设计方法:

dp[i]表示当前已选了 i i i 种点数,还需一直选到 n n n 种点数的丢骰子数的期望。

显然dp[n]=0,答案为dp[0]

现在考虑转移:

则每次丢骰子有两种状态。

  • 和之前的点数一样,有 i n \frac{i}{n} ni 的概率出现。记为 X X X
  • 和之前的点数不一样,有 n − i n \frac{n-i}{n} nni 的概率出现。记为 Y Y Y

那么所以当前这一状态 E ( i ) = E ( X ) + E ( Y ) E(i)=E(X)+E(Y) E(i)=E(X)+E(Y)

那么根据定义, X X X 的概率为 i n \frac{i}{n} ni,价值为 d p i dp_i dpi Y Y Y 的 概率为 n − i n \frac{n−i}{n} nni,价值为 d p i + 1 dp_{i+1} dpi+1

而每种状态一定都会丢一次,所以我们的 d p i dp_i dpi 还需累加 100 % 100\% 100%,也就是 1 1 1

于是我们得到式子: d p i = n − i n d p i + 1 + i n d p i + 1 dp_i=\frac{n−i}{n}dp_{i+1}+\frac{i}{n}dp_{i}+1 dpi=nnidpi+1+nidpi+1

接下来化简该式

n − i n d p i = n − i n d p i + 1 + 1 \frac{n-i}{n}dp_{i}=\frac{n−i}{n}dp_{i+1}+1 nnidpi=nnidpi+1+1

因为转移时 n ≠ i n\neq i n=i

所以两边同时约掉 n − i n \frac{n-i}{n} nni

d p i = d p i + 1 + n n − i dp_{i}=dp_{i+1}+\frac{n}{n-i} dpi=dpi+1+nin

那么我们就可以打出代码了

#include<cstdio>
#include<iostream>
using namespace std;
const int MAXN=1005;
double dp[MAXN];
int main(){ 
   
	int T;
	scanf("%d",&T);
	while(T--){ 
   
		int n;
		scanf("%d",&n);
		dp[n]=0;
		for(int i=n-1;i>=0;i--){ 
   
			dp[i]=dp[i+1]+(double)n/(double)(n-i);
		}
		printf("%.2lf\n",dp[0]);
	}
return 0;
} 

今天的文章(期望DP)【总结】期望DP分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/8957.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注