【期望】乘坐电梯(金牌导航 期望-2)
生活随笔
收集整理的這篇文章主要介紹了
【期望】乘坐电梯(金牌导航 期望-2)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
乘坐電梯
金牌導航 期望-2
題目大意
有n個人,對于沒一個單位時間有p的概率最前面的1個人進電梯,有(1-p)的概率不進,問你t個單位時間后,電梯中的期望人數
樣例輸入 1
1 0.50 1
樣例輸出 1
0.5
樣例輸入 2
1 0.50 4
樣例輸出 2
0.9375
樣例輸入 3
4 0.20 2
樣例輸出 3
0.4
數據范圍
1?n,t?20001\leqslant n,t\leqslant 20001?n,t?2000
0?p?10\leqslant p\leqslant 10?p?1
解題思路
設fi,jf_{i,j}fi,j?為i個單位時間后,電梯中有j個人的期望值
那么有
fi+1,j+1+=fi,j×pfi+1,j+=fi,j×(1?p)\begin{aligned}f_{i + 1,j + 1} & += f_{i,j} \times p \\ f_{i + 1,j}& += f_{i,j} \times (1 - p)\end{aligned}fi+1,j+1?fi+1,j??+=fi,j?×p+=fi,j?×(1?p)?
代碼
#include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #define ll long long using namespace std; int n, t; double p, ans, f[2021][2021]; int main() {scanf ("%d%lf%d", &n, &p, &t);f[0][0] = 1;for (int i = 0; i < t; ++i){f[i + 1][n] += f[i][n];//全都進了那就100%沒人會再進for (int j = 0; j < n; ++j){f[i + 1][j + 1] += f[i][j] * p;//進f[i + 1][j] += f[i][j] * (1 - p);//不進}}for (int i = 0; i <= n; ++i) ans += f[t][i] * i;//計算結果printf("%.6lf", ans);return 0; }總結
以上是生活随笔為你收集整理的【期望】乘坐电梯(金牌导航 期望-2)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2016游戏电脑配置推荐(2016游戏电
- 下一篇: 【期望】期望收益(金牌导航 期望-3)