zoukankan      html  css  js  c++  java
  • hdu 5810 Balls and Boxes 二项分布

    Balls and Boxes

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)
    Total Submission(s): 260    Accepted Submission(s): 187


    Problem Description
    Mr. Chopsticks is interested in random phenomena, and he conducts an experiment to study randomness. In the experiment, he throws n balls into m boxes in such a manner that each ball has equal probability of going to each boxes. After the experiment, he calculated the statistical variance V as
    V=mi=1(XiX¯)2m

    where Xi is the number of balls in the ith box, and X¯ is the average number of balls in a box.
    Your task is to find out the expected value of V.
     
    Input
    The input contains multiple test cases. Each case contains two integers n and m (1 <= n, m <= 1000 000 000) in a line.
    The input is terminated by n = m = 0.
     
    Output
    For each case, output the result as A/B in a line, where A/B should be an irreducible fraction. Let B=1 if the result is an integer.
     
    Sample Input
    2 1 2 2 0 0
     
    Sample Output
    0/1 1/2
    Hint
    In the second sample, there are four possible outcomes, two outcomes with V = 0 and two outcomes with V = 1.
     
    Author
    SYSU
     
    Source
     
    Recommend
    wange2014   |   We have carefully selected several similar problems for you:  5820 5819 5817 5816 5815 
    题意:给你n个球,m个盒子,每个球落入每个盒子的概率是等可能的,求方差的期望值。
    #include <iostream>
    #include <cstdio>
    #include <cstdlib>
    #include <cmath>
    #include <map>
    #include <vector>
    #include <queue>
    #include <cstring>
    #include <string>
    #include <algorithm>
    using namespace std;
    typedef  long long  ll;
    typedef unsigned long long ull;
    #define MM(a,b) memset(a,b,sizeof(a));
    #define inf 0x7f7f7f7f
    #define FOR(i,n) for(int i=1;i<=n;i++)
    #define CT continue;
    #define PF printf
    #define SC scanf
    const int mod=1000000007;
    const int N=1e3+10;
    
    ll gcd(ll a,ll b)
    {
        if(b==0) return a;
        else return gcd(b,a%b);
    }
    
    int main()
    {
        ll n,m;
        while(~scanf("%lld%lld",&n,&m)&&(n||m))
        {
          ll fenzi=n*(m-1),fenmu=m*m;
          while(1)
          {
              ll k=gcd(fenzi,fenmu);
              if(k==1) break;
              fenzi/=k;fenmu/=k;
          }
          printf("%lld/%lld
    ",fenzi,fenmu);
        }
        return 0;
    }
    

     分析:比赛时就感觉是个什么分布,,但是学的很多又忘了,最后百度了一下,才发现可以二项分布做;

    对于每个盒子,每个球落入其中的概率是p=1/m;

    那么总共n个球p(x=k)=C(n,k)*p^k*(1-p)^(n-k),显然的二项分布;

    二项分布数学期望E(x)=np(n是实验次数,p是每次试验球落入盒子的概率);

    方差D(x)=np(1-p)

    本题中D(x)=n/m*(1-1/m)=n*(m-1)/(m^2);

     然后因为每个盒子是平等的,方差又是描述数据的混乱程度,所以多个均等的盒子的方差与单个盒子方差
    是一样的
  • 相关阅读:
    浅析[53300] FATAL: remaining connection slots are reserved for non-replication superuser connections
    浅析Web安全漏洞里的X-Frame-Options、X-XSS-Protection、X-Content-Type-Options响应头配置以及如何通过nginx配置避免
    浅析SpringSecurity的方法级安全管控
    浅析mybatis的全局配置文件mybatis-config.xml各配置的意义
    字节序--大端字节序和小端
    【转】go语言中int和byte转换方式
    [转]float32数据在内存中的存储方法
    go语言复制一个struct 对象
    一个table 中 可以有多个tbody. table 可以嵌套
    【转】rpc框架设计
  • 原文地址:https://www.cnblogs.com/smilesundream/p/5755971.html
Copyright © 2011-2022 走看看