大佬们帮忙看看
  • 板块灌水区
  • 楼主w15998366226
  • 当前回复0
  • 已保存回复0
  • 发布时间2022/11/29 09:16
  • 上次更新2023/10/27 01:02:25
查看原帖
大佬们帮忙看看
742120
w15998366226楼主2022/11/29 09:16

大佬们看看这个求数据平均值,方差等数据的代码,有什么问题吧并没有太多注释

#pragma GCC optimize(1)
#pragma GCC optimize(2)
#pragma GCC optimize(3,"Ofast","inline")
#include<bits/stdc++.h>
using namespace std;
struct shu{
	double first;
	int second;
}a[10001];
int c[10001];
int n;
int main(){
	//freopen("shuju.in","r",stdin);
	cin>>n;
	int b=0;
	int maxn=INT_MIN,minn=INT_MAX,maxm=0;
	for(int i=1;i<=n;i++){
		cin>>b;
		maxn=max(maxn,b);
		minn=min(minn,b);
		c[i]=b;
		a[b].first=b;
		a[b].second++;
		maxm=max(maxm,a[b].second);
	}
	sort(c+1,c+1+n);
	int cnt=0;
	double ansp=0;
	for(int i=1;i<=maxn;i++){
		cnt=cnt+a[i].second;
		ansp=ansp+a[i].first*a[i].second;
	}
	double zhong4[n]={};//众数
	for(int i=1;i<=maxn;i++){
		if(a[i].second==maxm){
			zhong4[i]=a[i].first;
		}
	}
	double ping=ansp/cnt;//平均数
	double ji=maxn-minn;//极差
	double zhong3=(c[int(ceil((1+n)/2))]+c[int(floor((1+n)/2))])/2;//中位数
	double fang;//方差
	for(int i=1;i<=n;i++){
		fang=fang+pow(c[i]-ping,2);
	}
	fang=fang/n;
	double biao=sqrt(fang);
	cout<<ping<<endl<<zhong3<<endl;
	for(int i=1;i<=maxn;i++){
		if(zhong4[i]!=0){
			cout<<fixed<<zhong4[i]<<" ";
		}
	}
	cout<<endl<<ji<<endl<<fang<<endl<<biao;
	//fclose(stdin);
	return 0;
}

2022/11/29 09:16
加载中...