Как найти медиану трех чисел

Имеется три числа: 10, 20, 30. Как найти среднее из них (не самое большое и не самое маленькое), без множества условий?

jfs's user avatar

jfs

51.8k11 золотых знаков107 серебряных знаков306 бронзовых знаков

задан 30 авг 2017 в 11:00

Sergei Mikhailovskii's user avatar

6

Отсортировать и взять среднее.

public static void main(String[] args) {
    int[] numbers = new int[] {31, 6, 13};
    Arrays.sort(numbers);
    System.out.println(numbers[1]);
}

ответ дан 30 авг 2017 в 11:09

DaysLikeThis's user avatar

0

int max = Math.max(Math.max(a,b), c);
int min = Math.min(Math.min(a,b), c);
int mid = a + b + c - (min + max);

Nikolai's user avatar

Nikolai

3,2928 серебряных знаков18 бронзовых знаков

ответ дан 30 авг 2017 в 11:12

Montego's user avatar

MontegoMontego

10310 бронзовых знаков

2

Можно через условие тернарными операторами

int mid =  (a > b)? ((c<b)?b:((c<a)?c:a)): ( (a>c)?a:(b>c)?c:b);

ответ дан 30 авг 2017 в 11:19

nick_n_a's user avatar

nick_n_anick_n_a

7,9191 золотой знак21 серебряный знак66 бронзовых знаков

0

решение без сортировки, используя сравнение

int a = scanner.nextInt();
int b = scanner.nextInt();
int c = scanner.nextInt();
if ((a - b) * (c - a) >= 0) {              // a >= b and a <= c OR a <= b and a >= c
    System.out.print(a);
} else if ((b - a) * (c - b) >= 0) {       // b >= a and b <= c OR b <= a and b >= c
    System.out.print(b);
} else {
    System.out.print(c);
}

insolor's user avatar

insolor

45.7k16 золотых знаков54 серебряных знака95 бронзовых знаков

ответ дан 19 мар 2020 в 7:17

Andry's user avatar

AndryAndry

113 бронзовых знака

Держи ещё вариант с одним ифом, а не несколькими:

private int middleOfThree(int[] input) {
    int x = Math.max(input[0], input[1]);
    int y = Math.max(input[0], input[2]);
    if (x == y) {
        return Math.max(input[1], input[2]);
    } else {
        return Math.min(x, y);
    }
}

ответ дан 30 авг 2017 в 11:20

Agrgg's user avatar

AgrggAgrgg

1,3088 серебряных знаков11 бронзовых знаков

import static java.lang.Math.*;


int[] digits = {20, 10, 30};
System.out.println(max(max(min(digits[0], digits[1]), min(digits[1], digits[2])), min(digits[0], digits[2])));

ответ дан 30 авг 2017 в 11:34

slippyk's user avatar

slippykslippyk

6,0913 золотых знака19 серебряных знаков38 бронзовых знаков

1

Решение, используя сеть сортировки, построенной на основе метода пузырьков, из ответа @Gyorgy Szekely:

int median = Math.max(Math.min(a, b), Math.min(Math.max(a, b), c));

Полный пример:

public class MedianOf3 {
  public static void main(String[] argv) {
      System.out.println(median(10, 20, 30));
  }
  public static int median(int a, int b, int c) {
      return Math.max(Math.min(a, b), Math.min(Math.max(a, b), c));
  }
}

Вывод:

20

См. Fastest way of finding the middle value of a triple?

ответ дан 31 авг 2017 в 10:38

jfs's user avatar

jfsjfs

51.8k11 золотых знаков107 серебряных знаков306 бронзовых знаков

Вам в любом случае придется использовать условия — пусть даже внешне они будут скрыты в вызовах готовых методов для сортировки (Collections.sort, Arrays.sort и т.п.) или получения мин./макс. значений (Math.min, Math.max и т.п.). Лучше написать простенькую функцию с парой условий — это гарантированно будет работать быстрее.

private static int getMed(int a, int b, int c) {
    return (a >= b && a <= c) || (a <= b && a >= c) ? a : 
          ((b >= a && b <= c) || (b <= a && b >= c) ? b : c);
}

ответ дан 30 авг 2017 в 11:46

Nikolai's user avatar

NikolaiNikolai

3,2928 серебряных знаков18 бронзовых знаков

1

Вот что-то похожее решил на codewars

import static java.util.stream.IntStream.of;
interface Kata {
  static double find_average(int[] array) {
    return of (array).average().orElse(3);
  }
}

ответ дан 16 апр 2021 в 4:43

Valery's user avatar

1

Понятие медианы чисел широко используется в математической статистике. И хотя вычисление медианы не составляет большой сложности, мы сделали калькулятор, который поможет рассчитать медианное значение ряда чисел онлайн с подробным решением. Причем количество чисел не важно, он рассчитает медиану 3, 4, 5 чисел так же быстро, как и для 1000 чисел.

Калькулятор медиана чисел

Как найти медиану чисел

Лучше рассмотреть процесс вычисления медианы на примере. Пусть у нас есть ряд чисел: 13 19 24 17 15 11. Для удобства числа будет записывать через пробел. Найдем его медиану. Для начала необходимо расположить числа в порядке возрастания. Эта процедура называется сортировкой. Получим новый ряд: 11 13 15 17 19 24. Так как количество чисел в ряду равно 6, а число 6 четное, то середина ряда будет между числами 15 и 17. Найдем среднее этих двух чисел: (15 + 17) / 2 = 16. Это и будет медианой ряда. Не стоит путать медиану, среднее гармоническое и среднее арифметическое — это принципиально разные понятия.

Рассмотрим другой пример, когда количество чисел в ряду нечетное. Есть такой ряд: 18 46 10 5 38. Найдем медиану набора этих чисел. Отсортируем ряд по возрастанию и получим ряд: 5 10 18 38 48. Так как количество чисел в этом ряду 5, то у него есть середина — это элемент с номером 2. Значит медиана этого ряда равна элементу с номером 2. Получаем ответ 18.

И еще пример — найдем медиану чисел 158 166 134 130 132. Отсортируем и получим ряд 130 132 134 158 166. Количество чисел нечетное и равно 5, значит средний элемент имеет номер 3. Третий элемент нашего отсортированного ряда — число 134. Это и есть медиана.

Ваша оценка

[Оценок: 263 Средняя: 3]

Медиана ряда чисел Автор admin средний рейтинг 3/5 263 рейтинги пользователей

Онлайн калькулятор для нахождения медианы ряда чисел. Медианой (серединой) набора чисел называется число стоящее посередине упорядоченного по возрастанию ряда чисел. Если количество чисел в ряду чётное, то медианой ряда является полусумма двух стоящих посередине чисел.
Применяется в математической статистике — число, характеризующее выборку (например, набор чисел), также используется для вычисления медианной зарплаты.

Формула медианы числового набора, пример вычисления медианы числового ряда: 3, 7, 1, 6, 9
Решение: упорядочиваем список чисел в порядке возрастания: 1, 3, 6, 7, 9. Поскольку количество чисел в ряду нечётное, то число 6 стоящее по середине и будет являться медианой данного ряда.

Пример нахождения медианы ряда чисел: 1, 5, 8, 4, 3, 9
Решение: записываем все числа ряда в порядке возрастания: 1, 3, 4 ,5, 8, 9. Поскольку чисел в ряду чётное, то медиана этого ряда будет равна полусумме двух средних чисел: (4+5)/2 = 4.5

$begingroup$

How do you determine the median of three numbers where two of the numbers are duplicated?

For example, $(6,6,3)$.

asked Mar 15, 2015 at 17:46

Chris C.'s user avatar

$endgroup$

2

$begingroup$

To find the median of any set of numbers, put them in order from smallest to greatest. If a number occurs more than once, list it more than once. The number in the middle is the median. If there is an even number of numbers, the median is the average of the two numbers in the middle. For your first example, we line them up: $3$,$6$,$6$. Since $6$ is in the middle, it is the median.

answered Mar 15, 2015 at 17:54

J126's user avatar

J126J126

17.2k3 gold badges36 silver badges85 bronze badges

$endgroup$

6

$begingroup$

The duplicate is your answer in all

answered Mar 15, 2015 at 17:49

Tom's user avatar

TomTom

3631 silver badge13 bronze badges

$endgroup$

4

You must log in to answer this question.

Not the answer you’re looking for? Browse other questions tagged

.

Если в числовом ряде есть дробные числа, используйте точку для их записи. Например, 0.42, 0.55.

Медианой ряда
чисел
(или медианой числового ряда) называется число, стоящее посередине
упорядоченного по возрастанию ряда чисел — в случае, если
количество чисел нечётное. Если же количество чисел в ряду чётно, то медианой ряда является полусумма двух стоящих
посередине чисел упорядоченного по возрастанию ряда.

Как найти медиану ряда чисел

Чтобы разобраться, как находить медиану ряда чисел, мы рассмотрим несколько примеров.

Пример 1. Найти медиану числового ряда 5, 17, 3, 9, 14, 2.

Решение. Записываем все числа ряда в порядке возрастания: 2, 3, 5, 9, 14, 17. Количество чисел в ряду
чётно, поэтому медиана этого ряда будет равна полусумме двух средних чисел: frac{5+9}{2}=7.

Пример 2. Найти медиану числового ряда 5, 2, 18, 8, 3.

Решение. записываем все числа ряда в порядке возрастания: 2, 3, 5, 8, 18. Количество чисел в ряду
нечётно, поэтому медиана этого ряда будет равна стоящему посередине числу, то есть равна 5.

Понравилась статья? Поделить с друзьями:
  • Как найти точки входа на рынке акций
  • Как найти впн на хоноре
  • Как найти сигнал в электронике
  • Как найти параметр в макете 1с
  • Как составить промежуточный баланс при реорганизации