Как найти среднее арифметическое чисел джава

Например:

int[] numbers = {5, 8, 12, -18, -54, 84, -35, 17, 37};

Как найти среднее?
Какой алгоритм, или может есть специальные функции для этого?

Nofate's user avatar

Nofate

34.3k15 золотых знаков64 серебряных знака93 бронзовых знака

задан 17 июл 2015 в 16:55

Александр's user avatar

АлександрАлександр

9736 золотых знаков13 серебряных знаков33 бронзовых знака

1

Ну например:

IntStream.of(numbers).average();

Это Java 8, stream API. Проверка: http://ideone.com/hSng8I

ответ дан 17 июл 2015 в 16:57

VladD's user avatar

VladDVladD

206k27 золотых знаков289 серебряных знаков521 бронзовый знак

6

Сам алгоритм, который работает для всех версий Java:

// среднее арифметическое - сумма всех чисел деленная на их количество
int[] numbers = {5, 8, 12, -18, -54, 84, -35, 17, 37};

double average = 0;
if (numbers.length > 0)
{
    double sum = 0;
    for (int j = 0; j < numbers.length; j++) {
         sum += numbers[j];
    }
    average = sum / numbers.length;
}

ответ дан 17 июл 2015 в 21:54

pavelip's user avatar

1

OptionalDouble average = Arrays.stream(numbers).average();

ответ дан 17 июл 2015 в 17:36

kandi's user avatar

kandikandi

5,10910 золотых знаков47 серебряных знаков96 бронзовых знаков

class average {
    public static void main(String args[]) {
        int num [] = {5, 8, 12, -18, -54, 84, -35, 17, 37};
        double sum = 0;
        for (int x: num) {
        sum += x;
        }
            System.out.print("среднее арифметическое чисел равно: " + sum/num.length);
    }
}

ответ дан 22 авг 2018 в 14:10

Бахтияр Акпалинов's user avatar

В нашей жизни мы далеко не всегда используем точные цифры, да это и не каждый раз удобно. Некоторые результаты обобщают, выражая среднее значение, особенно когда речь идет о статистике, прогнозах и отчетах. Это может быть и среднее время в пути, и средняя успеваемость ученика, и средняя заработная плата на предприятии, и средняя температура по больнице (в последнем примере мы, разумеется, шутим). Но как бы там не было, мы должны знать, как быстро и точно посчитать среднее арифметическое число. Об этом — наша статья. Дополнительно рассмотрим на примерах, как вычисляет среднее арифметическое число компилятор языка программирования Java.

На практике формулу о том, как найти или вычислить среднее арифметическое, изучают в пятом классе. Что же, давайте освежим знания, полученные в далеком (а для кого-то и в недалеком) детстве.  

Что такое среднее арифметическое? Формула нахождения числа

Средним арифметическим некоторого множества чисел называют сумму всех этих чисел, разделенных на общее количество слагаемых. То есть искомое значение вычисляет следующая формула:

В примере ниже мы считаем среднее арифметическое трех простейших чисел:

  • 2,
  • 3,
  • 4.

Давайте обозначим сре днее арифметическое латинской буквой «m» и вычислим сумму вводимых чисел:

2 + 3 + 4 = 9.

А чтобы рассчитать среднее арифмети ческое, останется разделить эту сумму на три. Таким образом, формулу нахождения можно представить следующим образом:

И все? Так просто?

И да, и нет. Если углубляться в математику, мы узнаем, что существуют различные способы вычисления, однако мы не будем усложнять вышесказанное и ограничимся стандартной формулой:

Что здесь что:

  • x — это наше среднее арифметическое;
  • xn — конкретное значение числа;
  • n — общее количество значений.

У такой формулы есть много плюсов:

  • прекрасный выбор при нормальном распределении значений в существующей выборке;
  • интуитивная доступность;
  • посчитать легко и просто.

Однако с математической точки зрения тут существуют и минусы:

  • используя эту формулу, довольно сложно представить распределение введенных значений;
  • есть вероятность запутаться в различных величинах.

Теперь давайте посмотрим, как расчет среднего числа может выглядеть в программном коде. Заодно и проверим пример выше ;-):

public class Main {

    public static void main(String[] args) {

        int[] nums = {2, 3, 4};

        int result = 0;

        for (int m : nums) {

            result += m;

        }

        System.out.println(«Значение среднего арифметического равно: » + result / nums.length);

    }

}

Можно было легко догадаться, что мы получим 3, значит вышеописанная формула нахождения среднего арифметического числа находит правильный результат.

На деле вы можете ввести в код выше какие угодно значения чисел, а также изменить количество введенных чисел. Однако если надо вычислить более точный результат (это особенно актуально для ввода ряда чисел с десятичным значением), тип данных в Java надо будет изменить на double:

Источники:

  • https://skysmart.ru/articles/mathematic/kak-najti-srednee-arifmeticheskoe;
  • https://www.examclouds.com/ru/java/java-core-russian/srednee-arifmeticheskoye.

Все это выглядит чрезвычайно просто. Если же вы ищете действительно сложные и продвинутые решения по Java-программированию, обратите внимание на программу Java-курса в Otus:


Загрузить PDF


Загрузить PDF

Вычисление средней величины – важно в повседневной жизни. Средняя величина или среднее арифметическое значение используется во многих математических операциях, и очень важно уметь это вычислять. Но, при работе с большими числами, гораздо проще использовать специальную программу. Здесь вы прочитаете, как самостоятельно написать программу на Java, чтобы вычислить среднюю величину.

Шаги

  1. Изображение с названием Write a Program in Java to Calculate the Mean Step 1

    1

    Напишите план программы. Планирование – это очень важный шаг. Подумайте о том, где будет использоваться данная программа. Эта программа будет работать с очень большими числами? Если да, то вы можете решить, использовать ли такие типы данных, как long вместо int.

    • Попробуйте вычислить среднюю величину ряда чисел самостоятельно. Это поможет вам понять принцип действия программы.
  2. 2

    Напишите код. Чтобы вычислить среднюю величину, вам понадобятся следующие параметры:

    Изображение с названием Write a Program in Java to Calculate the Mean Step 2
    • Сумма всех введенных пользователем чисел
      • К примеру, если сумма введенных чисел = 100, а количество чисел = 10, то средняя величина =100 / 10 = 10
    • Таким образом , формула вычисления средней величины:

      Средняя величина = сумма всех чисел /количество чисел.

    • Чтобы получить эти данные, используйте функцию «Scanner» в Java.
      • Вам потребуется получить большое количество пользовательских данных из которых вам нужно вычислить среднюю величину. Для этого попробуйте использовать цикл. В примере кода ниже используется цикл «for». Также вы можете попробовать использовать цикл «while».
  3. Изображение с названием Write a Program in Java to Calculate the Mean Step 3

    3

    Вычислите среднюю величину. Используя формулу, приведенную выше, напишите код для вычисления средней величины. Убедись в том, что переменная, используемая для сохранения значения «средней величины» имеет тип «float». Иначе ответ может быть неправильным.

    • Это происходит потому, что тип данных «float» это 32 битное число одинарной точности, которое даже считает десятичные в математических вычислениях. Таким образом, при использовании переменною типа float, ответ для математического действия 5 / 2 (5 делить на 2) будет 2.5.
      • Если такое же вычисление (5 / 2) будет выполняться при помощи переменной типа «int», ответ будет 2.
      • Однако, переменные, в которых вы сохраняете «сумму» и «количество значений», могут иметь тип «int». Используя переменную типа «float» для «средней величины» автоматически изменит её тип с «int» на «float»; и все вычисление будет выполняться в float вместо int.
  4. Изображение с названием Write a Program in Java to Calculate the Mean Step 4

    4

    Выведите на экран результат. Когда программа вычислит среднюю величину, покажите ее пользователю. В Java для этого спользуйте функцию System.out.print или System.out.println (чтобы печатать на новой строке).

    Реклама

Пример кода

import java.util.Scanner;

public class main_class {
    public static void main(String[] args){
      int sum = 0, inputNum;
      int counter;
      float mean;
      Scanner NumScanner = new Scanner(System.in);
      Scanner charScanner = new Scanner(System.in);
      
      System.out.println("Enter the total number of terms whose mean you want to calculate");

      counter = NumScanner.nextInt();
      
      System.out.println("Please enter " + counter + " numbers:");
      
      for(int x = 1; x<=counter ;x++){          
          inputNum = NumScanner.nextInt();
          sum = sum + inputNum;
          System.out.println();
      }
      
      mean = sum / counter;
      System.out.println("The mean of the " + counter + " numbers you entered is " + mean);
    }
}
import java.util.Scanner;

/*
*Эта система ввода позволяет пользователю вводить  
*числа, пока не будут введены все необходимые данные. 
*Командная строка используется, чтобы программа распознала,
 *когда пользователь ввел данные. 
*Integer.parseInt (строка  s) возвращает к числу, которое
 *содержит строка  (т.е. Integer.parseInt("462")==462).
 *
 *Важно отметить: используя этот метод для ввода переменных,
 *нельзя сравнивать строки  "==" or "!=". Иначе,
 *строки сравниваются, основываясь на их расположении в памяти компьютера.
 *s.equals(строка  t) показывает, если содержимое строк
 *одинаково. !s.equals(String t) показывает, если содержание строк
 *разное.

 */
public class main_class {
    public static void main(String[] args){
      String sentinel = "";
      int sum = 0;
      int counter = 0;
      double mean = 0.0;
      Scanner NumScanner = new Scanner(System.in);
      
      System.out.println("Enter numbers to add. Enter "d" when done.");
      
      System.out.print("Enter number: ");
      sentinel = NumScanner.next();
      System.out.println();

      while(!sentinel.equals("d") && !sentinel.equals("D")) {
           sum += Integer.parseInt(sentinel);
           counter++;

           System.out.print("Enter number: ");
           sentinel = NumScanner.next();
           System.out.println();
      }

      mean = (sum*1.0)/counter;

      System.out.println();
      System.out.println("The arithmetic mean is: " + mean +".");
    }
}

Советы

  • Попробуйте использовать программу для выполнения многочисленных математических операций.
  • Попробуйте изменить графический интерфейс, чтобы программа стала более красочной и легкой в использовании.

Реклама

Об этой статье

Эту страницу просматривали 15 553 раза.

Была ли эта статья полезной?

Средним арифметическим множества чисел называют сумму всех этих чисел, разделенных на общее количество слагаемых. В Java найти среднее арифметическое можно при помощи цикла или используя стримы. Рассмотрим пример с циклом:

class App {
    public static double average(int[] numbers) {
        var length = numbers.length;
        var sum = 0;

        // Находим сумму всех чисел
        for (double num : numbers) {
            sum += num;
        }
        // И делим её на количество слагаемых
        return sum / length;
    }
}
App.average(new int[] {1, 2, 3}); // 2.0

Также можно использовать стримы. Рассмотрим вариант на стримах

import java.util.Arrays;

class App {
    public static double average(int[] numbers) {
        Arrays.stream(numbers).average().getAsDouble();
    }
}
App.average(new int[] {1, 2, 3}); // 2.0

In this article, we will discuss how to calculate sum and average of a List or ArrayList in Java 8

  • Use IntSummaryStatistics to find various parameters/statistics of a List like,
    • Sum of all elements in a List using getSum() method which returns value in long-type
    • Average of all elements in a List using getAverage() method which returns value in double-type
    • Minimum element from a List using getMin() method which returns value in integer-type
    • Maximum element from a List using getMax() method which returns value in integer-type
    • Number of elements in a List (or count) using getCount() method which returns value in long-type

CalculateStatisticsOfListInJava8.java

package in.bench.resources.list.sum.average;

import java.util.Arrays;
import java.util.IntSummaryStatistics;
import java.util.List;

public class CalculateStatisticsOfListInJava8 {

	public static void main(String[] args) {

		// list
		List<Integer> numbers = Arrays.asList(
				2, 3, 5, 7, 11, 13, 17
				);


		// print numbers to console
		System.out.println("Original elements :-");
		numbers.stream().forEach(num -> System.out.println(num));


		// IntSummaryStatistics using Java 8 Stream API
		IntSummaryStatistics statistics = numbers
				.stream()
				.mapToInt(num -> num)
				.summaryStatistics();


		// 1. sum - print sum to the console
		System.out.println("n1. Sum is = " + statistics.getSum());


		// 2. average - print average to the console
		System.out.println("n2. Average is = " + statistics.getAverage());


		// 3. min - print minimum to the console
		System.out.println("n3. Minimum is = " + statistics.getMin());


		// 4. max - print maximum to the console
		System.out.println("n4. Maximum is = " + statistics.getMax());


		// 5. count - print count to the console
		System.out.println("n5. Count is = " + statistics.getCount());
	}
}

Output:

Original elements :-
2
3
5
7
11
13
17

1. Sum is = 58

2. Average is = 8.285714285714286

3. Minimum is = 2

4. Maximum is = 17

5. Count is = 7

2. Java – Find sum and average of a List

  • In the below illustrations, we will find sum, average, minimum, maximum and count of elements in a List
    • Sum – by iterating using enhanced for-loop and adding/summing & saving in a variable
    • Averagedivide above calculated sum by number of elements (or size of elements)
  • Sort List elements in ascending order
    • Minimum – get 1st element from sorted List using index 0
    • Maximum – get last element from sorted List using last index i.e., (size – 1)
  • Use size() method of List to get number/count of elements

CalculateStatisticsOfList.java

package in.bench.resources.list.sum.average;

import java.util.Arrays;
import java.util.Collections;
import java.util.List;

public class CalculateStatisticsOfList {

	public static void main(String[] args) {

		// local variables
		int sum = 0;
		double average = 0.0;


		// list
		List<Integer> numbers = Arrays.asList(
				2, 3, 5, 7, 11, 13, 17
				);


		// print numbers to console
		System.out.println("Original elements :-");
		numbers.stream().forEach(num -> System.out.println(num));


		// sort List elements to find min and max
		Collections.sort(numbers);


		// find sum by iterating using enhanced for-loop
		for(int num : numbers) {
			sum += num;
		}


		// 1. sum - print sum to the console
		System.out.println("n1. Sum is = " + sum);


		// find average by dividing sum and size of List elements
		average = (double) sum / (double) numbers.size();


		// 2. average - print average to the console
		System.out.println("n2. Average is = " + average);


		// 3. min - print minimum to the console
		System.out.println("n3. Minimum is = " + numbers.get(0));


		// 4. max - print maximum to the console
		System.out.println("n4. Maximum is = " + numbers.get(numbers.size() - 1));


		// 5. count - print count to the console
		System.out.println("n5. Count is = " + numbers.size());
	}
}

Output:

Original elements :-
2
3
5
7
11
13
17

1. Sum is = 58

2. Average is = 8.285714285714286

3. Minimum is = 2

4. Maximum is = 17

5. Count is = 7

Related Articles:

  • Java 8 – Find Largest number in an Arrays or List or Stream
  • Java 8 – Find Smallest number in an Arrays or List or Stream
  • Java 8 – Find 2nd Largest number in an Arrays or List or Stream
  • Java 8 – Find 2nd Smallest number in an Arrays or List or Stream
  • Java 8 – Find sum of Largest 2 numbers in an Arrays or List or Stream
  • Java 8 – Find sum of Smallest 2 numbers in an Arrays or List or Stream
  • Java 8 – Find 1st and Last elements in an Arrays
  • Java 8 – Find 1st and Last elements in a List or ArrayList
  • Java 8 – Find 1st and Last elements in a Set or HashSet
  • Java 8 – Find 1st and Last entries in a Map or HashMap
  • Java 8 – Find sum and average of a List or ArrayList
  • Java 8 – How to calculate sum and average of an Arrays ?

References:

  • IntStream (Java Platform SE 8 ) (oracle.com)
  • IntSummaryStatistics (Java Platform SE 8 ) (oracle.com)

Happy Coding !!
Happy Learning !!

Добавить комментарий