求助随机数输出值相等(使用srand(time(0))))
  • 板块题目总版
  • 楼主fnoiylin
  • 当前回复3
  • 已保存回复3
  • 发布时间2023/12/28 19:57
  • 上次更新2023/12/28 20:23:39
查看原帖
求助随机数输出值相等(使用srand(time(0))))
490741
fnoiylin楼主2023/12/28 19:57

问题如下:

代码每次输出的结构都只和生成 aia_i的个数有关,如代码循环 10001000 次 , ans=35ans = 35 , 改成 1010 次 , ans=46ans=46

代码:

#include<bits/stdc++.h>
using namespace std;
double sum,minn,a[1100];
int ans,b[110];
int main(){
	srand(time(0));
	while(1){
		memset(a,0,sizeof 0);
		for(int i=1; i<=1000; i++){
			while(!a[i])a[i]=rand()%101;
		}
		sort(a+1,a+1000+1);
		sum=0;
		for(int i=1; i<=1000; i++){
			sum+=a[i];
		}
		sum/=1000;
		sum*=2;
		sum/=3;
		minn=0x7fffffff;
		double c;
		for(int i=1; i<=1000; i++){
			if(sum-a[i]>0){
				c=sum-a[i];
			}else c=a[i]-sum;
			if(c<minn){
				minn=c;
				ans=a[i];
			}
		}
		b[ans]++;
		printf("%lf %lf\n",sum,minn);
		printf("%d:%d\n",ans,b[ans]);
		if(b[ans]==100){
			printf("%d\n",ans);
			for(int i=1; i<=100; i++){
				printf("%d:%d\n",i,b[i]);
			}
			return 0;
		}
	}
}  
2023/12/28 19:57
加载中...