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;
}

本文介绍了一种结合概率论与数学期望的算法题解决方法,通过递推求解每个状态的概率,并利用数学期望公式计算最终结果。适用于解决涉及概率转换及期望值计算的相关问题。
2555

被折叠的 条评论
为什么被折叠?



