有6個球,每個球都隨機丟入5個箱子,求空箱的期望值?

回應

您所提出的解答有誤!
若按照您所述的方式相乘求解,求得期望值,
則您並未考慮到多球置於同一箱子內的情況!
引用:

coldbear 寫道:
先算一個空箱的機率(先不管其他箱子是否有沒有球),最後再乘5
(4*4*4*4*4*4)/(5*5*5*5*5*5)...........一個空箱
在*5.............五個箱子
答案為4096/3125=1.31072
我所提出的解法如下:
若假設在五個箱子內皆有一個「虛球」,
則問題轉化為在6+5=11個球產生的10條縫中,
插入4條線段(且不在同一條縫中),
使其共被分為5個部份。
可以求得空箱的期望值應為:
C(5取3)*1/C(10取4)+C(5取2)*2/C(10取4)+C(5取1)*3/C(10取4)+C(5取0)*4/C(10取4)
=49/210 =7/30
2樓是對的

15625種情況中
一共有20480個空箱


以下是程式碼
(暴力法 不建議使用)

#include
#include
#include

int i,s=0,o[6]={0,0,0,0,0,0};
bool b[5];
FILE *f;

void op(void)
{
o[5]++;
if(o[5]>4){o[5]=0;o[4]++;}
if(o[4]>4){o[4]=0;o[3]++;}
if(o[3]>4){o[3]=0;o[2]++;}
if(o[2]>4){o[2]=0;o[1]++;}
if(o[1]>4){o[1]=0;o[0]++;}
}

int main(void)
{
f=fopen("empty box.txt","w+t");
for(i=15625;i;i--)
{
b[0]=b[1]=b[2]=b[3]=b[4]=1;
fprintf(f,"%d%d%d%d%d%d",o[0],o[1],o[2],o[3],o[4],o[5]);
b[o[0]]=0;b[o[1]]=0;b[o[2]]=0;b[o[3]]=0;b[o[4]]=0;b[o[5]]=0;
fprintf(f," %d\n",b[0]+b[1]+b[2]+b[3]+b[4]);
s+=b[0]+b[1]+b[2]+b[3]+b[4];
op();
}
fprintf(f,"%d\n%f\n",s,s/15625.0);
getchar();
return 0;
}