zoukankan      html  css  js  c++  java
  • UVA 11427 Expect the Expected [概率]

      一个游戏胜利的概率为p,小明每天晚上都会玩这个游戏直到胜利的比例大于p为止,他就会认为今天胜利了,但每天至多只能玩N次。小明会一直玩这个游戏直到有一天失败为止。求小明玩这个游戏天数的期望。

      首先,假设小明每天玩这个游戏胜利的概率为q,根据期望公式有S=∑i*q^i*(1-q)。用数学方法化简可以得到S=1/(1-q),现在问题就转化为求q。

      直接用概率论没想出来怎么搞,由于N比较小,可以想到用DP来解,用d[i][j]表示第i天赢了j次并且目前没有获得胜利的概率,有d[i][j]=d[i-1][j-1]*p+d[i-1][j]*(1-p)。

     1 #include <stdio.h>
     2 #include <string.h>
     3 int cas, n, p1, p2;
     4 double p, d[110][110];
     5 int main(){
     6     //freopen("test.in", "r", stdin);
     7     scanf("%d", &cas);
     8     for (int ca = 1; ca <= cas; ca++) {
     9         scanf("%d/%d%d", &p1, &p2, &n);
    10         p = p1*1.0/p2;
    11         memset(d, 0, sizeof d);
    12         d[1][0] = 1-p;
    13         for (int i = 2; i <= n; i ++) {
    14             for (int j = 0; p2*j <= p1*i; j++) {
    15                 d[i][j] += d[i-1][j]*(1-p);
    16                 if (j > 0) d[i][j] += d[i-1][j-1]*p;
    17             }
    18         }
    19         double t = 0;
    20         for (int i = 0; i*p2 <= p1*n; i++) t += d[n][i];
    21         printf("Case #%d: %d\n", ca,  (int)(1/t));
    22     }
    23     return 0;
    24 }
  • 相关阅读:
    计算机病毒的认识
    计算机病毒的认识
    围棋知多少
    围棋知多少
    工业相机基础知识(一)
    辨异 —— 逻辑之辨、人文社科观念
    辨异 —— 逻辑之辨、人文社科观念
    telnet 的使用(ping 与 telnet)
    HDU 2437 Jerboas (剪枝搜索)
    设计模式
  • 原文地址:https://www.cnblogs.com/swm8023/p/2745685.html
Copyright © 2011-2022 走看看