CCF-CSP练习 归一化处理
CCF 202206-1 归一化处理
题目背景
在机器学习中,对数据进行归一化处理是一种常用的技术。
将数据从各种各样分布调整为平均值为0、方差为1的标准分布,在很多情况下都可以有效地加速模型的训练。
问题描述
输入格式
输出格式
样例输入
7
-4 293 0 -22 12 654 1000
样例输出
-0.7485510379073613
0.04504284674812264
-0.7378629047806881
-0.7966476369773906
-0.7057985054006686
1.0096468614303775
1.9341703768876082
样例解释
子任务
评分方式
如果你输出的每个浮点数与参考结果相比,均满足绝对误差不大于 10^-4,则该测试点满分,否则不得分。
提示
C/C++:建议使用 double 类型存储浮点数,并使用 printf(“%f”, x);$$’ 进行输出。
Python:直接使用 print(x) 进行输出即可。
Java:建议使用 double 类型存储浮点数,可以使用 System.out.print(x); 进行输出。
我的提交
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,i;
double a[1005],f[1005],all=0,ave,d=0;
cin>>n;
for(i=1;i<n+1;i++){
cin>>a[i];
all+=a[i];
}
ave=all/n;
for(i=1;i<n+1;i++){
d+=pow(a[i]-ave,2);
}
d=d/n;
for(i=1;i<n+1;i++){
printf("%.16f\n",(a[i]-ave)/sqrt(d));//cout<<(a[i]-ave)/sqrt(d)<<endl;
}
return 0;
}