题解:P13910 [CSPro 26] 归一化处理
题目传送门
一道肥肠难的题目,所以我就直接上代码了
AC代码:
#include <iostream>
#include <vector>
#include <cmath>
#include <iomanip>
using namespace std;
int main() {
int n;
cin >> n;
vector<int> a(n);
double sum = 0.0;
for (int i = 0; i < n; i++) {
cin >> a[i];
sum += a[i];
}
double mean = sum / n;//首先读取整数 n,然后读取 n 个整数存入数组 a,并计算它们的总和 sum。
double variance = 0.0;
for (int i = 0; i < n; i++) {
variance += (a[i] - mean) * (a[i] - mean);
}//通过总和 sum 除以 n 得到平均值 mean。
variance /= n;
double std_dev = sqrt(variance);//遍历每个数据,计算每个数据与平均值的差的平方和,然后除以 n 得到方差 variance。
for (int i = 0; i < n; i++) {
double normalized = (a[i] - mean) / std_dev;//取方差的正平方根得到标准差 std_dev。
cout << setprecision(15) << normalized << endl;
}
return 0;
}
结束!