zoukankan      html  css  js  c++  java
  • Kids and Prizes Gym

    http://www.aichengxu.com/other/1640203.htm

    题目大意: N个奖品,M个人,求被给出去的奖品数量的期望。

    对于M个人来说,拿到奖品的概率为Y[i],不拿到奖品的概率为N[i], 因为这两个事件是对立的,所以 N[i]=1-Y[i];

    第i个拿到奖品的人概率,可由第i-1个人没拿到奖品和拿到奖品两种状态推出来。

    Y[i]=N[i-1]*Y[i-1]+Y[i-1]*(Y[i-1]-1/n);

    #include<iostream>
    #include<cstdio>
    #define maxn 1000005
    using namespace std;
    double Y[maxn],N[maxn];
    int main()
    {
        double n,m;
         //freopen("kids.in", "r", stdin);
         //freopen("kids.out", "w", stdout);
        scanf("%lf%lf",&n,&m);
        double ans=1;
        Y[1]=1;
        N[1]=0;
        for(int i=2;i<=m;i++)
        {
            Y[i]=N[i-1]*Y[i-1]+Y[i-1]*(Y[i-1]-1.0/n);
            N[i]=1-Y[i];
            ans+=Y[i];
        }
        printf("%.10f
    ",ans);
        return 0;
    
    
    }

    正难则反:求被给出去的奖品数量的期望,就是总数-没给出去的奖品的数量的期望。

    #include<iostream>
    #include<cstdio>
    #include<cmath>
    #include<cstring>
    using namespace std;
    int main()
    {
        //freopen("kids.in", "r", stdin);
         //freopen("kids.out", "w", stdout);
        double n,m;
        while( scanf("%lf%lf",&n,&m)!=EOF)
        {
            double p=(n-1)/n;
            double ans=n*(1-pow(p,m));
            printf("%.10f
    ",ans);
        }
    return 0;
    }
  • 相关阅读:
    团队冲刺2---个人工作总结一(5.25)
    第十二周学习进度
    课堂作业——找水王
    个人冲刺07
    第十五周学习进度情况
    构建之法阅读笔记06
    构建之法阅读笔记05
    第十四周学习进度情况
    个人冲刺06
    个人冲刺05
  • 原文地址:https://www.cnblogs.com/Twsc/p/7281954.html
Copyright © 2011-2022 走看看