uva-11021-全概率公式

Posted zzq

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了uva-11021-全概率公式相关的知识,希望对你有一定的参考价值。

https://vjudge.net/problem/UVA-11021

 

    有n个球,每只的存活期都是1天,他死之后有pi的概率产生i个球(0<=i<n),一开始有k个球,问m天之后所有球都死完的概率(m天之前都死完也算m天之前的)。由于每个球的成长与死亡都是独立的所以我们可以分开讨论,设f(i)表示初始1个球的情况下i天死光的概率,那么答案就是pow(f(m),k)。现在只要求出f(m)即可,利用全概率公式 f(i)=P(0)+P(1)*f(i-1)+P(2)*f(i-1)2+...+P(n-1)*f(i-1)n-1.

    

 1 #include<iostream>
 2 #include<cstring>
 3 #include<queue>
 4 #include<cstdio>
 5 #include<stack>
 6 #include<set>
 7 #include<map>
 8 #include<cmath>
 9 #include<ctime>
10 #include<time.h> 
11 #include<algorithm>
12 using namespace std;
13 #define mp make_pair
14 #define pb push_back
15 #define debug puts("debug")
16 #define LL long long 
17 #define pii pair<int,int>
18 #define eps 1e-12
19 double P[1010];
20 double f[1010];
21 int main()
22 {
23     int n,m,i,j,k,t;
24     int cas=0;
25     cin>>t;
26     while(t--){
27         scanf("%d%d%d",&n,&k,&m);
28         for(i=0;i<n;++i) scanf("%lf",P+i);
29         f[1]=P[0];
30         for(i=2;i<=m;++i){
31             f[i]=0;
32             for(j=0;j<n;j++){
33                 f[i]+=P[j]*pow(f[i-1],j);
34             }
35         }
36         printf("Case #%d: %.7f\n",++cas,pow(f[m],k));
37     }
38     return 0; 
39 }

 

以上是关于uva-11021-全概率公式的主要内容,如果未能解决你的问题,请参考以下文章

●UVA 11021 tunnello

UVA 11021 麻球繁衍

Tribles UVA - 11021(全概率推论)

uva 11021 Tribles

乱入Uva11021麻球繁衍

UVA11021 Tribles[离散概率 DP]