C语言编一个随机数问题

来源:百度知道 编辑:UC知道 时间:2024/05/05 14:38:11
将n个球放入m个盒子中,设每个球落入各个盒子是等可能的,求有球的盒子数X的均值。
答案是 m*(1-(1-m)^n/m^n)
如何用C语言编程实现?
有FLASH就更好了,感谢!
编程让计算机多次重复做这个实验,求出这个实验的概率,应该是和理论答案相符的
C语言初学者,最好有源程序,谢了!

我采用m=100 n=100编写了代码,通过修改T 的值来改变实验次数.. 

#include <stdlib.h> 

#include <stdio.h> 

#include <time.h> 

#define T 10 

void main( void ) 

int x[100]; 

int n,i,k,m; 

long sum; 

sum=0; 

srand( (unsigned)time( NULL ) ); 

for (n=1;n<=T;n++)//做T次试验 

m=0; 

for (i=0;i<100;i++) x[i]=0;//盒子清0 

for( i = 0; i <100;i++ ) //每循环丢一个球,共100个球 

k=rand()%100+1; 

//printf( " k=%d\n", k ); 

x[k]++; 

for (i=0;i<100;i++) if (x[i]>0) m++;//算有球的盒子数 

//printf("第%4d次实验有球的盒子数%d\n",n,m) ; 

sum=sum+m; 

}&