Задача:
Создайте функцию, которая принимает список чисел и возвращает среднее геометрическое этих чисел. Java.
План:
- Алгоритм решения
- Код программы
- Примеры входных данных и ожидаемых результатов
- Объяснение кода программы
- Блок-схема
Алгоритм решения:
-
Определение функции
calculateGeometricMean
, принимающей список чисел типаDouble
. -
Проверка входных данных:
- Если список
null
или пустой, возвращаем 0.
- Если список
-
Инициализация переменной
product
значением 1.0. -
Итерация по всем числам в списке:
- Умножение текущего значения
product
на каждое число.
- Умножение текущего значения
-
Вычисление среднего геометрического:
- Возведение
product
в степень 1/n, где n - количество чисел в списке.
- Возведение
-
Возвращение результата.
-
В
main
методе:- Создание тестового списка чисел.
- Вызов функции
calculateGeometricMean
. - Вывод результата на экран.
Код программы на языке Java:
Код Java
import java.util.List;
public class GeometricMean {
public static double calculateGeometricMean(List<Double> numbers) {
if (numbers == null || numbers.isEmpty()) {
return 0;
}
double product = 1.0;
for (Double number : numbers) {
product *= number;
}
return Math.pow(product, 1.0 / numbers.size());
}
public static void main(String[] args) {
List<Double> numbers = List.of(2.0, 4.0, 8.0);
double geometricMean = calculateGeometricMean(numbers);
System.out.println("Geometric Mean: " + geometricMean);
}
}
Примеры входных данных и ожидаемых результатов:
Пример 1:
Вход: [2.0, 4.0, 8.0]
Ожидаемый результат: 4.0
Пример 2:
Вход: [1.0, 2.0, 3.0, 4.0, 5.0]
Ожидаемый результат: 2.605171084697352
Пример 3:
Вход: [10.0, 20.0, 30.0]
Ожидаемый результат: 18.171205928321397
Пример 4:
Вход: [0.5, 1.5, 2.5]
Ожидаемый результат: 1.2599210498948732
Пример 5:
Вход: []
Ожидаемый результат: 0.0
Пример 6:
Вход: null
Ожидаемый результат: 0.0
Объяснение кода программы:
-
Определение класса и импорт:
Импортируется классimport java.util.List; public class GeometricMean {
List
из пакетаjava.util
, и определяется публичный классGeometricMean
. -
Объявление метода
calculateGeometricMean
:Объявляется статический метод, принимающий список чисел типаpublic static double calculateGeometricMean(List<Double> numbers) {
Double
и возвращающий результат типаdouble
. -
Проверка входных данных:
Проверяется, не является ли входной список null или пустым. Если да, возвращается 0.if (numbers == null || numbers.isEmpty()) { return 0; }
-
Инициализация переменной для произведения:
Инициализируется переменнаяdouble product = 1.0;
product
значением 1.0 для хранения произведения чисел. -
Вычисление произведения чисел:
С помощью цикла for-each перемножаются все числа из списка.for (Double number : numbers) { product *= number; }
-
Вычисление и возврат среднего геометрического:
Вычисляется корень n-ой степени из произведения, где n - количество чисел в списке.return Math.pow(product, 1.0 / numbers.size());
-
Объявление метода
main
:Определяется точка входа в программу.public static void main(String[] args) {
-
Создание тестового списка чисел:
Создается неизменяемый список чисел с помощью методаList<Double> numbers = List.of(2.0, 4.0, 8.0);
List.of()
. -
Вызов метода и вывод результата:
Вызывается методdouble geometricMean = calculateGeometricMean(numbers); System.out.println("Geometric Mean: " + geometricMean);
calculateGeometricMean
с тестовым списком, и результат выводится в консоль.