作业帮 > 综合 > 作业

求C语言代码 循环.在数字0~99之间随机产生3个数字.作为原始数字.然后用同样的方法循环产生3个数字,直到后面产生的3

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/05/01 03:21:46
求C语言代码 循环
.在数字0~99之间随机产生3个数字.作为原始数字.
然后用同样的方法循环产生3个数字,直到后面产生的3个数字跟原始数字一样就停止.这3个数字不要求顺序.看看要循环多少次?
比如第一次产生了 76,32,5
再经过N次循环后,出现了 32,76,5 那就中断循环.告诉我N这个时候是几.
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;
}
printf("实验次数是%d\t平均有球的盒子数是:%f\n",T,sum/T*1.0);
}
实验结果如下,不知符合你给的公式否?