2016多校7 HDU 5810 Balls and Boxes

2016多校联合训练#7

HDU 5810 Balls and Boxes

方差,期望,数学

传送门:HDU


题意

把n个球放到m个盒子里面,随机变量 Xi 表示每个盒子中球的个数,求球个数方差V的期望E(V)。

V=ni=0(XiX¯¯¯)2m

思路

我是不会。。下面的摘自大神们的博客。

  • 首先这是一个二项分布。对于一个盒子来说,n次实验是扔n个球,每次进入盒子概率是1/m。样本方差的期望等于总体的方差!证明爱看不看。直接的结果: E(V)=n(m1)m2

  • 有不用这个性质直接推出公式的。膜大神。

    E(V)=E(ni=0(XiX¯)2)m=E(x2)2nmE(x)+n2m2
    E(x)=nm
    E(x2)=D(x)+[Ex]2
    二项分布, D(x)=n(m1)m2
    所以带到上面的式子中就变成了 E(V)=n(m1)m2

  • 官方题解我是看不懂。

    E[V]=E[mi=1(XiX¯)2m]=E[(XiX¯)2]=E[X2i2XiX¯+X¯2]
    =E[X2i]2X¯E[Xi]+E[X¯2]=E[X2i]2X¯2+X¯2=E[X2i]n2m2
    所以关键是要求出 E[X2i] . 我们用随机变量 Yj 来表示第j个球是否在第i个盒子中,如果在则 Yj=1 ,否则 Yj=0 . 于是
    E[X2i]=E[(nj=1Yj)2]=E[nj=1Y2j]+2E[nj=1nk=1,kjYjYk]=nE[Y2j]+n(n1)E[YjYk]
    =nm+n(n1)m2
    因此,
    E[V]=nm+n(n1)m2n2m2=n(m1)m2


代码

#include 
#include 
#include 
#include 
#include 
using namespace std;
typedef long long ll;
ll gcd(ll a,ll b)
{
    return b==0 ? a : gcd(b,a%b);
}
int main()
{
    ll m,n;
    while(scanf("%lld%lld",&n,&m)==2&&(m!=0&&n!=0))
    {
        ll fz=(ll) n*(m-1);
        ll fm=(ll) m*m;
        ll g=gcd(fz,fm);
        fz/=g;
        fm/=g;
        printf("%lld/%lld\n",fz,fm);
    }
}

你可能感兴趣的:(2016多校,概率期望,想法题)