给出麻球活0 1 2 ... n-1天的概率
让你算初始k只麻球最多活m天的概率
推算能活到m天的概率应为这一天麻球的数量×m-1天的概率
代码如下:
#include <cmath>
#include <cstdio>
#include <iostream>
#include <algorithm>
#define MAXN 1010
using namespace std;
double a[MAXN], dp[MAXN];
int main(void) {
int n, m, k, T;
scanf("%d", &T);
for(int _=1; _<=T; ++_) {
scanf("%d%d%d", &n, &k, &m);
for(int i=1; i<=n; ++i) {
scanf("%lf", &a[i]);
}
dp[0] = 0;
dp[1] = a[1];
for(int i=2; i<=m; ++i) {
dp[i] = 0.00;
for(int j=1; j<=n; ++j) {
dp[i] += a[j]*pow(dp[i-1], j-1);
}
}
double ans = 0.0;
ans += pow(dp[m], k);
cout.setf(ios::fixed);
cout.precision(8);
printf("Case #%d: ", _);
cout << ans << endl;
}
return 0;
}