通过最后的概率求最终的期望
#include<bits/stdc++.h>
using namespace std;
const int maxn =
2005;
double p,dp[maxn][maxn];
int n,t;
int main(){
cin>>n>>p>>
t;
dp[0][n]=
1;
for(
int i=
1;i<=t;i++
){
dp[i][0]=dp[i-
1][
0]+dp[i-
1][
1]*
p;
for(
int j=
1;j<=n;j++
)
dp[i][j]=dp[i-
1][j]*(
1-p)+dp[i-
1][j+
1]*
p;
}
double ans=
0;
for(
int i=
0;i<=n;i++
)
ans+=
1.0*dp[t][i]*(n-
i);
printf("%.10lf\n",ans);
}
转载于:https://www.cnblogs.com/zsben991126/p/11070452.html
转载请注明原文地址: https://win8.8miu.com/read-13709.html