题解: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;
}

结束!