E(x) 数学期望
具有线性性质,有限个随机变量之和的数学期望等于每个变量的数学期望之和
E(X+Y)=E(X)+E(Y)
线性性质--dp的状态转移
poj 2096
dp[i][j]表示已经找到i种bugs、存在于j个子系统种,要达到目标状态还需要的期望天数
dp[n][s]是最后的结果,值为0,倒推回去
#include<iostream> #include<cstring> #include<cmath> #include<algorithm> #include<stack> #include<cstdio> #include<queue> #include<map> #include<vector> #include<set> using namespace std; const int maxn=1010; const int INF=0x3fffffff; typedef long long LL; typedef unsigned long long ull; //dp---概率和数学期望 int n,s; //dp[i][j]表示已经找到i种bugs、存在于j个子系统种,要达到目标状态还需要的期望天数 //dp[i][j]=(n-i)*(s-j)*dp[i+1][j+1]/(n*s-i*j) double dp[maxn][maxn]; int main(){ cin>>n>>s; dp[n][s]=0; //倒推 for(int i=n;i>=0;i--){ for(int j=s;j>=0;j--){ if(i==n&&j==s) dp[n][s]=0.0; else{ dp[i][j]=(n*s+(n-i)*j*dp[i+1][j]+i*(s-j)*dp[i][j+1]+(n-i)*(s-j)*dp[i+1][j+1])/(n*s-i*j); } } } printf("%.4lf ",dp[0][0]); return 0; }
hdu 4035
定义E[i]是在节点i处,逃出迷宫所要走的边数的期望