Реализовать процедуру для вычисления MSE на языке Java с помощью функциональной парадигмы. Программа получает на вход два вектора и возвращает число – оценку MSE для этих векторов.
java
import java.util.function.BiFunction;
import java.util.stream.IntStream;
public class MSECalculator {
public static double calculateMSE(int[] vector1, int[] vector2) {
BiFunction<Integer, Integer, Double> squareDifference = (a, b) -> Math.pow(a - b, 2);
double sumOfSquareDifferences = IntStream.range(0, vector1.length)
.mapToObj(i -> squareDifference.apply(vector1[i], vector2[i]))
.mapToDouble(Double::doubleValue)
.sum();
return sumOfSquareDifferences / vector1.length;
}
public static void main(String[] args) {
int[] vector1 = {1, 2, 3, 4, 5};
int[] vector2 = {2, 4, 6, 8, 10};
double mse = calculateMSE(vector1, vector2);
System.out.println(mse);
}
}
В данной реализации мы определили функцию squareDifference, которая принимает два целых числа и возвращает квадрат разности. Затем мы использовали IntStream, чтобы пройти по элементам векторов и применить функцию squareDifference для каждой пары элементов. Результат приводим к типу double и вычисляем сумму всех квадратов разностей. Наконец, мы делим сумму на длину вектора и возвращаем полученное значение.
В методе main мы создаем два вектора и вызываем функцию calculateMSE для вычисления оценки MSE. Результат выводим на консоль.
Таким образом, данная программа реализует вычисление MSE с использованием функциональной парадигмы в Java.Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет
Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет