zoukankan      html  css  js  c++  java
  • UVa11427 Expect the Expected

    数学期望 概率递推

    每一天的概率都是独立且相同的。可以先推出每天打i盘赢j盘的概率f[i][j]

    f[i][j]=f[i-1][j]*(1-p) + f[i-1][j-1]*p

        输          赢

    设此人打一天胜率不满足要求的概率为p

    那么打一天的概率是1*p

    打两天的概率是1*p*(p^2)

    以此类推

    ----

    题解待施工 

    学自http://www.cnblogs.com/neopenx/p/4282768.html

    ----

    WA点:

      1、a和b用double存,可能引起了精度误差。

      2、输出没换行

     1 /*by SilverN*/
     2 #include<algorithm>
     3 #include<iostream>
     4 #include<cstring>
     5 #include<cstdio>
     6 #include<cmath>
     7 #include<vector>
     8 using namespace std;
     9 const int mxn=110;
    10 int n;
    11 double f[mxn][mxn];
    12 int main(){
    13     int T;int i,j,a,b,cas=0;
    14     scanf("%d",&T);
    15     double p;
    16     while(T--){
    17         memset(f,0,sizeof f);
    18         scanf("%d/%d%d",&a,&b,&n);
    19         p=(double)a/b;
    20         f[0][0]=1;
    21         f[0][1]=0;
    22         for(i=1;i<=n;i++){
    23             f[i][0]=f[i-1][0]*(1-p);
    24             for(j=1;j*b<=i*a;j++){
    25                 f[i][j]=f[i-1][j]*(1-p)+f[i-1][j-1]*p;
    26             }
    27         }
    28         double res=0.0;
    29         for(i=0;i<=n;i++)res+=f[n][i];//
    30         double ans=1/res;
    31         printf("Case #%d: %d
    ",++cas,(int)ans);
    32     }
    33     return 0;
    34 }
  • 相关阅读:
    socket 编程练习--UDP聊天程序
    练习 多线程
    练习二:求最大公约数
    练习一:单链表的反转,串的模式匹配
    【算法1】string 的全排列
    lw资料
    SDmenu滑动菜单获取导航连接部分代码
    FileOperate(个人资料)
    C/C++基本数据类型
    C++/MFC计算程序运行时间
  • 原文地址:https://www.cnblogs.com/SilverNebula/p/6252988.html
Copyright © 2011-2022 走看看