数学期望
(1)概念
E[x]=∑(X∗P),X是当前的结果,P是当前结果的概率
换句话说,期望等于每个数出现的概率乘以每个数的值
(2)性质
期望具有线性关系:E(ax1+bx2+...)=aE(x1)+bE(x2)+...+1
期望dp和概率dp的特点
一般期望dp我们知道了最后的状态为0,然后推出初始的状态,但是概率dp我们知道的是初始的状态为1,然后推出最后的状态
题目1
一个n面的骰子,求几次之后每一面都能被骰到
题解
dp[i]来表示当前已经选了i种点数,还需一直选到n种点数的期望,因此dp[n]=0,dp[0]就是我们要求的,然后根据上面的公式推出dp[i]=(i)/n\*dp[i]+(n−i)/n∗dp[i+1]+1,化简得到dp[i]=dp[i+1]+n/(n−i)
题目2
#include<bits/stdc++.h>
using namespace std;
const int N = 2010;
typedef long long ll;
ll mod=1e9+7;
ll p[N];
ll dp[N][N];
int main()
{
int n;
cin>>n;
for(int i=1;i<=n;i++) cin>>p[i];
dp[0][0]=1;
for(int i=1;i<=n;i++)
{
for(int j=0;j<=i;j++)
{
if(j==0) dp[i][j]=dp[i-1][j]*(mod+1-p[i])%mod;
else
{
dp[i][j]=(dp[i-1][j]*(mod+1-p[i])+dp[i-1][j-1]*p[i])%mod;
}
}
}
for(int i=0;i<=n;i++) cout<<dp[n][i]<<endl;
}