zoukankan      html  css  js  c++  java
  • 数学:概率计算

    刘汝佳书上的一道题,UVA11021

    一只麻球只能活一天,然后每天会生一次

    给出n,k,m

    n代表有一只麻球一次最多生n-1只;接下去n行分别是生0到n-1只的概率

    k代表一开始有k只麻球;问m天后麻球死光的概率

    用f[i]表示一只麻球i天死光的概率

    f[i] = p0 + p1 * f(i - 1) + p2 * f(i - 1)^2 + p3 * f(i - 1)^3....pn-1 * f(i - 1)^n-1

    递推式的意思是生几只再乘上他们死的概率就好了

    算出f[m],答案就是f[m]^k

     1 #include<cstdio>
     2 #include<cstring>
     3 #include<cmath>
     4 const int maxn=1005;
     5 int n,m,k;
     6 double f[maxn],p[maxn];
     7 int main()
     8 {
     9     int T,cas=1;
    10     scanf("%d",&T);
    11     while(T--)
    12     {
    13         memset(f,0,sizeof(f));
    14         scanf("%d%d%d",&n,&k,&m);
    15         for(int i=0;i<n;i++) scanf("%lf",&p[i]);
    16         f[0]=0;
    17         f[1]=p[0];
    18         for(int i=2;i<=m;i++)
    19             for(int j=0;j<n;j++)
    20                 f[i]+=p[j]*pow(f[i-1],j);
    21         printf("Case #%d: %.7lf
    ",cas++,pow(f[m],k));
    22     }
    23     return 0;
    24 }
  • 相关阅读:
    十三周上机练习
    上机练习
    第十一周作业
    第十一周上机作业
    第十周上机作业
    第九周作业
    第八次作业
    第八次作业
    第六次作业
    第五次作业
  • 原文地址:https://www.cnblogs.com/aininot260/p/9583812.html
Copyright © 2011-2022 走看看