Think:
1知识点:概率+数学期望
2题意:
3解题思路:
4解题步骤:
(1):递推求解每一个点的概率
(2):通过期望公式计算累加每一个点的期望
以下为Accepted代码
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
double rec[1014], dp[1014];
int main(){
int cas = 1, T, n, i, j;
scanf("%d", &T);
while(T--){
scanf("%d", &n);
for(i = 1; i <= n; i++){
scanf("%lf", &rec[i]);
dp[i] = 0.0;
}
dp[1] = 1;
for(i = 1; i <= n; i++){
int len = min(n-i, 6);
for(j = 1; j <= len; j++){
dp[i+j] += dp[i]*(1.0/(double)len);
}
}
double ans = 0.0;
for(i = 1; i <= n; i++){
ans += rec[i]*dp[i];
}
printf("Case %d: %.7lf\n", cas++, ans);
}
return 0;
}