解题思路
求解平均数、方差、和平均差即可
C++ 代码
#include <iostream>
#include <cmath>
using namespace std;
const int N = 1000000 + 10;
double avernum = 0,D = 0,sqrtD = 0;
int a[N],n;
double getaver()
{
double sum = 0;
for(int i = 1;i <= n;i ++ )sum += a[i];
return (sum * 1.0) / (n * 1.0);
}
double getD()
{
double sum = 0;
for(int i = 1;i <= n;i ++ )sum += (a[i] - avernum) * (a[i] - avernum);
return (sum * 1.0) / (n * 1.0);
}
double getsqrtD()
{
return sqrt(D);
}
int main()
{
cin >> n;
for(int i = 1;i <= n;i ++ )cin >> a[i];
avernum = getaver();
D = getD();
sqrtD = getsqrtD();
for(int i = 1;i <= n;i ++ )
{
printf("%.16lf\n",(a[i] - avernum) * 1.0 / (sqrtD));
}
return 0;
}