社区讨论

求助随机数输出值相等(使用srand(time(0))))

题目总版参与者 3已保存回复 3

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
3 条
当前快照
1 份
快照标识符
@lqp5i7mz
此快照首次捕获于
2023/12/28 19:58
2 年前
此快照最后确认于
2023/12/28 20:23
2 年前
查看原帖
问题如下:
代码每次输出的结构都只和生成 aia_i的个数有关,如代码循环 10001000 次 , ans=35ans = 35 , 改成 1010 次 , ans=46ans=46
代码:
CPP
#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;
		}
	}
}  

回复

3 条回复,欢迎继续交流。

正在加载回复...