输入数据javaList<Double> data = Arrays.asList(10.0, 20.0, 30.0, 40.0, 50.0);给定一个数值列表,编写一个Java程序来归一化这些数据,使得所有值都在0到1之间。
时间: 2024-09-19 21:08:31 浏览: 43
归一化数据通常涉及将数值缩放到一个新的范围内,比如0到1。可以使用最小-最大规范化(Min-Max Scaling)方法来实现,即将每个数值减去列表中的最小值,然后除以最大值与最小值的差。以下是Java代码实现:
```java
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class NormalizationExample {
public static void main(String[] args) {
List<Double> data = Arrays.asList(10.0, 20.0, 30.0, 40.0, 50.0);
double min = Double.MAX_VALUE; // 初始化为极大值
double max = Double.MIN_VALUE; // 初始化为极小值
// 找出列表中的最小值和最大值
for (Double num : data) {
if (num < min) {
min = num;
}
if (num > max) {
max = num;
}
}
// 归一化数据
List<Double> normalizedData = normalize(data, min, max);
// 打印归一化后的数据
for (Double value : normalizedData) {
System.out.println(value);
}
}
public static List<Double> normalize(List<Double> originalData, double minValue, double maxValue) {
List<Double> normalizedList = new ArrayList<>(originalData.size());
for (double num : originalData) {
double normalizedNum = (num - minValue) / (maxValue - minValue);
normalizedList.add(normalizedNum);
}
return normalizedList;
}
}
```
在这个代码中,`normalize`函数接受原始数据、最小值和最大值作为参数,计算每个值相对于范围的百分比,并将其存储在新列表中。
阅读全文