|
0 / 1 / 0
Регистрация: 24.11.2020
Сообщений: 138
|
|
Медиана списка14.09.2021, 22:51. Показов 17857. Ответов 7
Метки нет (Все метки)
Напишите функцию median(), находящую медианное значение списка чисел, то есть такое число, которое стояло бы посередине списка, если его отсортировать. Если в списке чётное количество чисел, то медиана – это среднее двух чисел, стоящих посередине.
Пример 1 Ввод Вывод data = [1, 5, 4, 2, 3] median(data) 3 Пример 2 Ввод Вывод data = [3, 2, 4, 1] median(data) 2.5
0
|
|
| 14.09.2021, 22:51 | |
|
Ответы с готовыми решениями:
7
Медиана, среднее арифметическое и среднеквадратическое отклонение |
|
1190 / 766 / 277
Регистрация: 05.09.2021
Сообщений: 1,772
|
||||||
| 15.09.2021, 07:07 | ||||||
0
|
||||||
|
Супер-модератор
|
||||||
| 15.09.2021, 13:45 | ||||||
|
enx, вот до чего доводит неразумное стремление записать код как можно меньшим количеством строк!
![]() У вас же список будет сортироваться дважды! А длина его будет вычисляться аж трижды! Заголовок этой странной функции противоречит ее сути (функция ничего не возвращает)...
0
|
||||||
|
1190 / 766 / 277
Регистрация: 05.09.2021
Сообщений: 1,772
|
||||||
| 15.09.2021, 14:27 | ||||||
|
Я принт оставил для тестов ниже, в чем проблема заменить его на return, когда автор будет его использовать.
К тому же обратите внимание, в самом кейсе вывод результата получается без участия функции print вне ее тела, а именно: Ввод data = [1, 5, 4, 2, 3] median(data) Вывод 3 Но раз уж мы за чистоту, то уже так:
Добавлено через 10 минут Кроме len() списка, так как она не вычисляется 3 раза, ибо это элемент структуры данных. Никакого обхода данная функция не делает, то есть нет разницы, будет там 1 значение или 1 000 000 000, скорость выполнения O(1). https://github.com/python/cpyt... ect.h#L119 Добавлено через 14 минут И в финале добавлю, список сортируется у меня только 1 раз, только после после определения четности и нечетности длины )) так как if else, но это уже мелочи.
0
|
||||||
|
Супер-модератор
|
|||
| 15.09.2021, 14:37 | |||
|
print(sorted(x)[len(x) // 2] if len(x) % 2 else sum(sorted(x)[len(x) // 2 - 1:len(x) // 2 + 1]) / 2) - два раза, разве нет? Может, Питон оптимизирует код? У меня на сей счет нет данных...
Добавлено через 49 секунд Что же до ваших замечаний к моему коду, то это действительно несущественные мелочи. Добавлено через 2 минуты Хотя да, ваша правда - sorted действительно один раз.
0
|
|||
|
3582 / 2182 / 571
Регистрация: 02.09.2015
Сообщений: 5,510
|
||||||
| 15.09.2021, 14:43 | ||||||
1
|
||||||
|
1190 / 766 / 277
Регистрация: 05.09.2021
Сообщений: 1,772
|
|
| 15.09.2021, 14:50 | |
|
Да все по делу, вы правы с точки зрения красоты кода полностью.
Просто для меня нет разницы, обращаться к функции со сложностью O(1) 3 раза, или 3 раза обращаться по ссылке внутри переменной, чтобы получить результат этой функции, так же 3 раза, с той же сложностью. Именно в такого рода задачах, где решение на поверхности, а автор не хочет (наиболее вероятно) развивать свои навыки, а хочет решение, которое примет его тестовая система. В любом случае спасибо за замечания по стилю, это я всегда учитываю))
1
|
|
|
Супер-модератор
|
|
| 15.09.2021, 15:03 | |
|
Arsegg, а это:
1
|
|
| 15.09.2021, 15:03 | |
|
Помогаю со студенческими работами здесь
8
Медиана списка Медиана списка Медиана Медиана чисел Перцентиль, медиана Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|