题意:
有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; }