• LightOJ


    Batting Practice

    After being all out for 58 and 78 in two matches in the most prestigious tournament in the world, the coach of a certain national cricket team was very upset. He decided to make the batsmen practice a lot. But he was wondering how to make them practice, because the possibility of getting out seems completely random for them. So, he decided to keep them in practice as long as he can and told them to practice in the net until a batsman remains not-out for k1 consecutive balls. But if the batsman continues to be out for consecutive k2 balls, then the coach becomes hopeless about the batsman and throws him out of the team. In both cases, the practice session ends for the batsman. Now the coach is wondering how many balls the practice session is expected to take.

    For a batsman the probability of being out in a ball is independent and is equal to p. What is the expected number of balls he must face to remain not out for k1 consecutive balls or become out in consecutive k2 balls.

    Input

    Input starts with an integer T (≤ 15000), denoting the number of test cases.

    Each case starts with a line containing a real number p (0 ≤ p ≤ 1) and two positive integers k1 and k2 (k1 + k2 ≤ 50)pwill contain up to three digits after the decimal point.

    Output

    For each case, print the case number and the expected number of balls the batsman will face. Errors less than 10-2 will be ignored.

    Sample Input

    5

    0.5 1 1

    0.5 1 2

    0.5 2 2

    0.19 1 3

    0.33 2 1

    Sample Output

    Case 1: 1

    Case 2: 1.5

    Case 3: 3

    Case 4: 1.2261000000

    Case 5: 1.67

    闲来无事,做做数学题也是极好的,我只是感觉数学很有有趣罢了

    独立事件的概率是p,如果连续成功的k1次或者连续失败k2次结束,问需要多少次的期望值

    设f(x)为连续成功x次的期望,g(x)为连续失败x次的期望
    f(k1)=g(k2)=0

    然后根据期望的公式推啊,我要刚开始成功的概率已经是1了,那么期望值肯定是k2,因为我不可能失败,但是我成功的几率接近于0,那么我只要成功k1次就好了

    #include <bits/stdc++.h>
    using namespace std;
    int main(){
    int T,ca=1;
    scanf("%d",&T);
    while(T--){
        double p,q;
        int k1,k2;
        scanf("%lf%d%d",&p,&k1,&k2);
        q=1-p;
        if(p<1e-6)
            printf("Case %d: %d
    ",ca++,k1);
        else if(q<1e-6)
        printf("Case %d: %d
    ",ca++,k2);
        else{
        double a=1-pow(q,k1-1),b=1-pow(p,k2-1);
        double x=(a*b/q+a/p)/(1-a*b),y=b*x+b/q;
        printf("Case %d: %f
    ",ca++,p*y+q*x+1);}
    }
    return 0;}
  • 相关阅读:
    Unity 分场景打包
    Unity -- AssetBundle(本地资源加载和加载依赖关系)
    unity出的apk在较高安卓版本安装失败问题
    将一个目录下的某个格式的所有文件复制到另一个目录下
    Unity项目Assets目录下的资源存放规范
    AndroidStudio引用jar和aar包
    音频(二)_UnityAudio系统(4.AudioMixer)
    音频(二)_UnityAudio系统(3.AudioListener)
    音频(二)_UnityAudio系统(2.AudioSource)
    音频(二)_UnityAudio系统(1.AudioClip)
  • 原文地址:https://www.cnblogs.com/BobHuang/p/7325865.html
Copyright © 2020-2023  润新知