Статья Автор: Лебедев Дмитрий

TUZ_2-10 Поиск медианы по тройкам чисел

TUZ_2-10  Поиск медианы по тройкам чисел
Задача 52155

TUZ_2-10  Поиск медианы по тройкам чисел
2-10  Поиск медианы по тройкам чисел
Медиана - это статистическая характеристика набора данных. Для её точного нахождения нужно отсортировать данные,
что является достаточно трудоемким процессом на больших объемах данных. Для получения "хорошей" оценки медианы можно применить следующий подход.

Эта задача требует многократного поиска медианы в списке положительных целых чисел, пока не останется максимум три числа.
В частности, для каждой группы из трех чисел необходимо вычислить их медиану и использовать ее в качестве входного аргумента для следующей итерации.
Этот процесс продолжается до тех пор, пока не останется не более трех чисел. Их медиана возвращается как окончательный результат.
Ваша задача: написать функцию, которая принимает список положительных целых чисел и возвращает медиану последней оставшейся группы чисел.
В табл. 2.10 показаны ожидаемые результаты для некоторых входных данных.
Таблица 2.10. Некоторые ожидаемые результаты для задачи вычисления медианы в тройке медиан
Список Ожидаемый результат
909, 4, 4, 7, 9, 12, 77, 45 9
1, 4, 90, 65, 3, 2 4
22, 40, 65, 80, 93, 21 80
100, 9, 12, 20, 3 12

Алгоритм
.Для вычисления медианы медиан алгоритм итеративно вычисляет медианы в сегментах списка, содержащих по три элемента, пока не останется только три числа. Процесс включает деление входного списка на группы по три элемента, вычисление их медиан и добавление их в список медиан.
Затем функция рекурсивно вызывает себя со списком медиан, пока не останется не более трех элементов. Потом функция сортирует их в порядке возрастания и возвращает среднее значение в качестве результата.
1. Определяется длина входного списка.
2. Если длина равна 1, то единственный элемент такого списка возвращается как медиана.
3. В противном случае создается пустой список medians для хранения медиан.
4. Входной список делится на подсписки по три элемента в каждом с использованием цикла for и функции range с размером шага 3.
Каждый подсписок сортируется в порядке возрастания, и из него извлекается средний элемент в качестве медианы.
5. Каждая медиана добавляется в список medians.
6. Предыдущий шаг выполняется рекурсивно, пока не останется не более трех элементов.
7. Когда останется не более трех элементов, они сортируются в порядке возрастания, и извлекается средний элемент, который и будет конечной медианой.
8. Конечная медиана возвращается в качестве результата.

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


Пропустить Навигационные Ссылки.
Чтобы оставить комментарий нужна авторизация
Печать