题意:有n个球m个盒子,把球随机放入,xi为第i个盒子的球数,方差为,求E[V]
题解:
E[V]=E[m∑i=1m(Xi−X¯)2]=E[(Xi−X¯)2]=E[Xi2−2XiX¯+X¯2]
= E[X_i^2] - 2\bar XE[X_i] + E[\bar X^2] = E[X_i^2] - 2\bar X^2 + \bar X^2 = E[X_i^2] - \frac{n^2}{m^2}=E[Xi2]−2X¯E[Xi]+E[X¯2]=E[Xi2]−2X¯2+X¯2=E[Xi2]−m2n2
所以关键是要求出E[X_i^2]E[Xi2]. 我们用随机变量Y_jYj来表示第j个球是否在第i个盒子中,如果在则Y_j = 1Yj=1,否则Y_j = 0Yj=0. 于是
E[X_i^2] = E[(\sum_{j=1}^{n} Y_j)^2] = E[\sum_{j=1}^{n} Y_j^2] + 2E[\sum_{j=1}^{n} \sum_{k=1,k\neq j}^{n} Y_jY_k] = nE[Y_j^2] + n(n-1)E[Y_jY_k]E[Xi2]=E[(∑j=1nYj)2]=E[∑j=1nYj2]+2E[∑j=1n∑k=1,k≠jnYjYk]=nE[Yj2]+n(n−1)E[YjYk]
=\frac{n}{m}+\frac{n(n-1)}{m^2}=mn+m2n(n−1)
因此,
E[V] = \frac{n}{m} + \frac{n(n-1)}{m^2} - \frac{n^2}{m^2} = \frac{n(m-1)}{m^2}E[V]=mn+m2n(n−1)−m2n2=m2n(m−1)
连第一部分都没推出来。。概率论白学了如果怎么也推不出来的话,就暴力找规律吧
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
#include <stack>
#include <queue>
#include <map>
#include <set>
#include <vector>
#define LL long long
#define eps 1e-8
#define maxn 150
#define mod 110119
#define inf 0x3f3f3f3f
#define IN freopen("in.txt","r",stdin);
using namespace std;
LL gcd(LL a,LL b){
if(b==0) return a;
return gcd(b,a%b);
}
int main(){
// IN;
LL n,m;
while(~scanf("%lld%lld",&n,&m)){
if(n==0 && m==0) break;
LL x=n*(m-1);
LL y=m*m;
LL t=gcd(x,y);
x/=t;y/=t;
printf("%lld/%lld\n",x,y);
}
return 0;
}