(парадокс, парадокс, самый гениальный парадокс)
Это первая часть серии из нескольких частей, вдохновленная различными функциями R.
Задание
Учитывая набор данных положительных целых чисел, мне нужно , чтобы вычислить сводку 5 числа от . Однако я работаю с большими наборами данных, поэтому мне нужно, чтобы ваш код был как можно меньше, чтобы я мог хранить его на своем компьютере.
Пятизначная сводка состоит из:
- Минимальное значение
- Первый квартиль (Q1)
- Медиана / Второй квартиль (Q2)
- Третий квартиль (Q3)
- Максимальное значение
Существует несколько различных способов определения квартилей, но мы будем использовать тот, который реализован в R:
Определения:
- Минимум и максимум: наименьшее и наибольшее значения соответственно.
- Медиана: среднее значение, если имеет нечетное число записей, и среднее арифметическое двух средних значений, если имеет четное количество записей. Обратите внимание, что это означает, что медиана может быть нецелым значением. Мы должны были вычислить медиану раньше .
- Первый и третий квартили: разделите данные на две половины, включая центральный элемент в каждой половине, если имеет нечетное число записей, и найдите медианное значение каждой половины. Медиана нижней половины является первым квартилем, а медиана верхней половины - третьим квартилем.
Примеры:
. Медиана равна , а нижняя половина равна , что дает первый квартиль , а верхняя половина равна , что дает третий квартиль .
. Медиана равна , а нижняя половина равна , что дает первый квартиль, равный , а верхняя половина равна , что дает третий квартиль, равный .
Дополнительные правила:
- Ввод в виде массива или ближайшего аналога вашего языка.
- Вы можете предположить, что массив отсортирован в порядке возрастания или убывания (но укажите, какой именно).
- Вы можете вернуть / распечатать результаты в любом последовательном порядке и в любом удобном для вас формате, но, пожалуйста, укажите порядок и формат в своем ответе.
fivenum
Разрешены эквивалентные встроенные функции , но, пожалуйста, также реализуйте свое собственное решение.- Вы не можете предполагать, что каждое из пяти чисел будет целым числом.
- Пояснения приветствуются.
- Это код-гольф , поэтому выигрывает самый короткий ответ на каждом языке!
Случайно сгенерированные тесты
1 1 1 1 1 2 2 2 2 2 3 3 4 4 4 4 4 5 5 5 -> 1 1.5 2.5 4 5
1 2 2 2 4 4 5 5 6 7 7 8 9 9 9 9 9 10 10 10 -> 1 4 7 9 10
2 2 2 6 8 10 15 16 21 22 23 24 26 33 35 38 38 45 46 47 48 -> 2 10 23 38 48
1 2 9 -> 1 1.5 2 5.5 9
1 2 3 3 3 4 9 -> 1 2.5 3 3.5 9
1 1 2 5 7 7 8 8 15 16 18 24 24 26 26 27 27 28 28 28 29 29 39 39 40 45 46 48 48 48 48 49 50 52 60 63 72 73 79 85 86 87 88 90 91 93 94 95 95 97 100 -> 1 25 45 76 100
2 2 4 4 6 8 10 11 13 14 14 15 17 21 23 24 26 27 27 28 28 30 31 33 33 34 36 36 38 38 39 40 41 42 42 43 45 45 47 47 47 47 47 48 48 48 50 51 53 53 55 56 56 56 57 57 58 62 62 63 64 64 65 65 66 67 67 67 68 69 69 71 71 71 74 79 80 81 81 81 82 82 83 83 86 86 86 87 89 94 94 94 95 95 97 98 99 100 100 100 -> 2 33.5 54 76.5 100
1 3 3 4 -> 1 2 3 3.5 4
1 3 3 3 4 -> 1 3 3 3 4
quantile
возвращает именованный вектор, тогдаfivenum
как безымянный. Может быть, это проблема ниже по течению, гдеfivenum
используется?