UVA11021 Tribbles 麻球繁衍 概率 全概率公式

有k只麻球,每只活一天就会死亡临死前可能产生新的麻球。产生i个麻球的概率为P(i) 。给定m,问m天后所有麻球均死亡的概率。不足m天时全死亡的情况也算在内。

对此类概率问题。应掌握一定的套路。 

由于每只麻球独立存活,只需求出一开始1只麻球,m天后全部死亡的概率为f(m) 。由全概率公式 

f(i) = P0 + P1 * f(i-1) + P2 * f(i-1)2 + P3 * f(i-1)3 ......

其中P(j) * f(i-1) 含义是这个麻球生了j个后代,它们在i-1天后全部死亡。 于是最终答案 f(m)k

double p[maxn];
double f[maxn];
int n, k, m;


int main() {
    int T;
    scanf("%d", &T);
    int K = 1;
    while (T--) {
        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++) {
            f[i] = 0;
            for (int j = 0; j < n; j++) f[i] += p[j] * pow(f[i - 1], j);
        }
        printf("Case #%d: %.7f\n",K++ ,pow(f[m], k));
    }
}

猜你喜欢

转载自www.cnblogs.com/hznumqf/p/13198213.html