UVA11021麻球繁衍

题意:
     有K只麻球,每只生存一天就会死亡,每只麻球在死之前有可能生下一些麻球,生i个麻球的概率是pi,问m天后所有的麻球都死亡的概率是多少?


思路:
      涉及到全概率公式,因为麻球的各种活动都互不影响,所以现在只考虑一直麻球,我们假设f[i]是第i天全部都死亡的概率,那么
f[i] = p0 + p1*f[i-1] + p2*f[i-1]^2 + ...pn-1*f[i - 1]^(n-1)
也就是用前一天的全部死亡概率来代替今天的每一只死亡的概率,又因为今天的每只的生死概率什么的都是独立的,所以p2*f[i-1]^2可以理解成剩下2只,然后两只都死了,这样最后在第m天死光的概率就是f[m],但是这个只是一只麻球的,所有麻球都死光是f[m]^k。


#include<math.h>
#include<stdio.h>


#define N 1000 + 10


double P[N] ,F[N];


int main ()
{
   int t ,n ,m ,k ,i ,j ,cas = 1;
   scanf("%d" ,&t);
   while(t--)
   {
      scanf("%d %d %d" ,&n ,&k ,&m);
      for(i = 0 ;i < n ;i ++)
      scanf("%lf" ,&P[i]);
      F[0] = 0 ,F[1] = P[0];
      for(i = 2 ;i <= m ;i ++)
      {
         F[i] = 0;
         for(j = 0 ;j < n ;j ++)
         F[i] += P[j] * pow(F[i-1] ,j);
      }
      printf("Case #%d: %.7lf " ,cas ++ ,pow(F[m] ,k));
   }
   return 0;
}
   





原文地址:https://www.cnblogs.com/csnd/p/12062582.html