2016多校7 HDU 5810 Balls and Boxes

来源:互联网 发布:淘宝网店上架宝贝教程 编辑:程序博客网 时间:2024/05/17 01:14

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 <cstdio>#include <iostream>#include <algorithm>#include <cmath>#include <cstdlib>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);    }}
0 0
原创粉丝点击