题目链接:https://onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1962
题目大意:
全概率公式:把样本空间S分成若干个不相交的部分B1, B2, B3,…,Bn,则
这里P(A|B)表示在B事件发生的情况下,A事件发生的概率。
思路:那么按照生麻雀的数量来划分样本空间。
#include<bits/stdc++.h>
#define LL long long
using namespace std;
double f[1005];
double p[1005];
int main()
{
int t, T=1;
scanf("%d", &t);
while(t--){
memset(f, 0, sizeof(f));
int n, k, m;
scanf("%d%d%d", &n, &k, &m);
for(int i=0; i<n; i++){
scanf("%lf", &p[i]);
}
f[1]=p[0];
for(int i=2; i<=m; i++){
for(int j=0; j<n; j++){
f[i]+=p[j]*pow(f[i-1], j);
}
}
printf("Case #%d: %.7f\n", T++, pow(f[m], k));
}
return 0;
}