题意:
有n个人在电梯外等待,每隔一秒会有p的概率有一人进入电梯,问t秒后电梯中人数的期望
题解:
概率dp
但是接触概率的题很少,对于求期望自己一无所知
dp[i][j]表示i秒后电梯中有j人的概率
j=0时,该秒无人进入,dp[i][j]+=dp[i-1][j] * (1-p)
0<j<n时,dp[i][j]+=dp[i-1][j-1] * p+dp[i-1][j] * (1-p)
j=n时,dp[i][j]+=dp[i-1][j-1] * p+dp[i-1][j]
ans=
额。。dp本来就不熟,概率更是不会。。算了抓紧学吧
代码:
#include <bits\stdc++.h>
using namespace std;
const int N = 2001;
double dp[N][N];
int main() {
int n, t;
double p;
cin >> n >> p >> t;
dp[0][0] = 1;
for(int i = 1 ; i <= t ; i++){
for(int j = 0 ; j <= n ; j++){
dp[i][j] += (j == n ? dp[i-1][j] : dp[i-1][j]*(1-p));
if(j-1 >= 0){
dp[i][j] += dp[i-1][j-1]*p;
}
}
}
double ans = 0;
for(int i = 1 ; i <= n ; i++){
ans += dp[t][i]*i;
}
cout << setiosflags(ios::fixed) << setprecision(6) << ans << endl;
return 0;
}

京公网安备 11010502036488号