Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 30.03.2023
Сообщений: 15

В каждой строке с числами нужно найти такие, которые больше среднего арифметического, а среди них выбрать наименьшее

23.06.2023, 14:15. Показов 1184. Ответов 4

Студворк — интернет-сервис помощи студентам
Помогите пожалуйста с задачей

Напишите функцию find_food(), которая поможет Нильсу найти еду. Делается это так.

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

Функции принимает произвольное число позиционных аргументов-строк с числами и произвольное число именованных параметров. Если именованные параметры не переданы, то функция просто возвращает список кортежей, в которых записаны: (количество чисел в строке, отобранное по правилу число).

Если передан именованный аргумент regularize и он имеет значение True, то кортежи в списке должны быть отсортированы. Если False, то отсортированы в обратном порядке.

Если передан именованный аргумент reduce, то полученное число нужно нацело разделить на значение аргумента.
Python
1
2
data = ['2 15 148 3 6 12 9', '23 32 1 2 22 122 1', '3 12 85 7', '1984 42 13 7 5']
print(*find_food(*data), sep="\n")
вывод:
Python
1
2
3
4
(7, 148)
(7, 32)
(4, 85)
(5, 1984)
Python
1
2
data = ['1 2 15 14 8 3 6 12 9', '2 3 3 2 1 2 5 2 1 7 2 4', '3 12 8 5 7', '19 8 4 42 13 7 5']
print(*find_food(*data, regularize=False, reduce=2), sep="\n")
Python
1
2
3
4
(12, 1)
(9, 4)
(7, 9)
(5, 4)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
23.06.2023, 14:15
Ответы с готовыми решениями:

Из чисел A, B, C, D выбрать такие, которые отличны от среднего арифметического максимального и минимального
У меня есть такая задача по программированию. Мне даже на самом деле решение не нужно. Я не понимаю эту формулировку задачи. Кто понимает...

В двумерном массиве найти число элементов в каждой строке больше среднего арифметического элементов данной строки.
В двумерном массиве найти число элементов в каждой строке больше среднего арифметического элементов данной строки.

В каждой строке матрицы выбрать элемент с наибольшим значением, затем среди этих чисел выбрать наименьшее
Данна действительна матрица размером n * m, все элементы которой различны. В каждой строке выбирается элемент с наибольшим значением, затем...

4
1956 / 874 / 352
Регистрация: 05.09.2021
Сообщений: 1,387
23.06.2023, 14:29
HiJeck, Часть где не требуются именованные параметры.
Python
1
2
3
4
5
6
7
8
9
10
11
def find_food(*args, **kwargs):
    result = []
    for line in args:
        numbers = list(map(int, line.split()))
        average = sum(numbers) / len(numbers)
        result.append((len(numbers), min(i for i in numbers if i > average)))
    return result
 
data = ['2 15 148 3 6 12 9', '23 32 1 2 22 122 1', '3 12 85 7', '1984 42 13 7 5']
 
print(*find_food(*data), sep="\n")
Чуть позже остальное допишу, работа отвлекает =(
0
3750 / 1944 / 612
Регистрация: 21.11.2021
Сообщений: 3,706
23.06.2023, 16:08
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
from statistics import mean
 
def find_food(*args, **kwargs):
    result = []
    for line in args:
        numbers = list(map(int, line.split()))
        div = kwargs.setdefault('reduce', 1)
        result.append((len(numbers), min(i//div for i in numbers if i > mean(numbers))))
 
    if 'regularize' in kwargs:
        if kwargs['regularize']:
            result.sort()
        else:
            result.sort(reverse=True)
    return result
 
 
data = ['1 2 15 14 8 3 6 12 9', '2 3 3 2 1 2 5 2 1 7 2 4', '3 12 8 5 7', '19 8 4 42 13 7 5']
print(*find_food(*data, regularize=False, reduce=2), sep="\n")
0
1956 / 874 / 352
Регистрация: 05.09.2021
Сообщений: 1,387
23.06.2023, 16:17
HiJeck, Полное решение.
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
def find_food(*args, **kwargs):
    result = []
    for line in args:
        numbers = list(map(int, line.split()))
        average = sum(numbers) / len(numbers)
        if "reduce" in kwargs:
            result.append((len(numbers), min(i for i in numbers if i > average) // kwargs["reduce"]))
        else:
            result.append((len(numbers), min(i for i in numbers if i > average)))
 
    if kwargs.get("regularize") == True:
        result.sort()
    if kwargs.get("regularize") == False:
        result.sort(reverse=True)
 
    return result
 
data = ['2 15 148 3 6 12 9', '23 32 1 2 22 122 1', '3 12 85 7', '1984 42 13 7 5']
print(*find_food(*data), sep="\n")
 
print()
 
data = ['1 2 15 14 8 3 6 12 9', '2 3 3 2 1 2 5 2 1 7 2 4', '3 12 8 5 7', '19 8 4 42 13 7 5']
print(*find_food(*data, regularize=False, reduce=2), sep="\n")
0
3750 / 1944 / 612
Регистрация: 21.11.2021
Сообщений: 3,706
23.06.2023, 16:38
Еще вариант:

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
from statistics import mean
 
def find_food(*args, **kwargs):
    result = []
    div = kwargs.setdefault('reduce', 1)
    for line in args:
        numbers = list(map(int, line.split()))
        result.append((len(numbers), min(i//div for i in numbers if i > mean(numbers))))
 
    if 'regularize' in kwargs:
        result.sort() if kwargs['regularize'] else result.sort(reverse=True)
    return result
 
data = ['1 2 15 14 8 3 6 12 9', '2 3 3 2 1 2 5 2 1 7 2 4', '3 12 8 5 7', '19 8 4 42 13 7 5']
print(*find_food(*data, regularize=False, reduce=2), sep="\n")
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
23.06.2023, 16:38
Помогаю со студенческими работами здесь

Дан файл целых чисел которые упорядочены по убыванию. Среди этих чисел найти те что больше среднего арифметического суммы всех элементов
Всем привет, можете доделать прогу, а то сортирует на оборот ( как сделать чтоб виводило числа больше среднего?) Дан файл целых чисел...

Найти количество элементов в каждой строке матрицы, больших среднего арифметического элементов в каждой строке
(усл. задачи: Дан двумерный массив. Найти количество элементов в каждой строке, больших среднего арифметического элементов в каждой...

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

Найти значения тех элементов матрицы, которые больше среднего арифметического
Если среднее арифметическое матрицы А положительно, задать элементам С1, C2, ..., Сi; значения тех элементов матрицы А, которые больше...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
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 На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru