1.题目详情
2.思路:
本题中都是基本的数学运算。方差和标准差都需要用到上一个数据,所以只能用2个单层for循环来计算出平均值和方差。最后用一个单层for循环计算出所有数据的方差。
注意:用double数据类型定义。
Java代码如下(100分)
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
//2022.6-1 归一化处理
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] arr = new int[n];
double avg = 0.0;
double variance = 0.0;
double add_sum = 0.0;
double variance_sum = 0.0;
for (int i = 0; i < n; i++) {
arr[i] = sc.nextInt();
add_sum += arr[i];
}
avg = add_sum / n;
for (int i = 0; i < n; i++) {
variance_sum += Math.pow(arr[i] - avg, 2);
}
variance = variance_sum / n;
for (int i = 0; i < n; i++) {
double result = 0.0;
result = (arr[i] - avg) / Math.sqrt(variance);
System.out.println(result);
}
}
}