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

Задача Найти Еду

20.12.2020, 16:54. Показов 2800. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ребят, помогите решить пытаюсь, что-то не получается.

Лететь с Мартином – одно удовольствие. Только вот беда – есть нечего. Дикие гуси вылавливали для Нильса самые лучшие водоросли и самых больших головастиков, но Нильс никак не решался отведать такое угощение.

Случалось, что ему везло, и в лесу, под сухими листьями, он находил прошлогодние орешки. Он нёс их Мартину, закладывал ему в клюв, и Мартин раскалывал твёрдую скорлупу лучше всяких щипцов.

Но орехов было очень мало.

Чтобы найти хоть один орешек, Нильсу приходилось целый час бродить по лесу, пробираясь сквозь жёсткую, прошлогоднюю траву, увязая в сыпучей хвое, спотыкаясь о хворостинки.

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

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

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

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

Если передан именованный аргумент reduce, то полученное число нужно нацело разделить на значение аргумента.

Пример 1
Ввод Вывод
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")
(7, 148)
(7, 32)
(4, 85)
(5, 1984)
Пример 2
Ввод Вывод
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")
(12, 1)
(9, 4)
(7, 9)
(5, 4)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.12.2020, 16:54
Ответы с готовыми решениями:

Сколько минут в день на еду
Бармаглот страдает от переедания и Алиса разработала для него специальную диету. Каждый день...

Две задачи надо написать часам к 18, еду не успеваю
Ребята, выручайте. 2 задачи на ДЗ. посидел бы и сам сделал, но не дома уже 2 день, еду и к18 дома...

Умножить 5 единиц на 7 единиц
помогите составить выражение для вычисления в интерпретаторе Python 3 11111⋅1111111...

2
 Аватар для mnqp coding
5 / 5 / 0
Регистрация: 29.04.2025
Сообщений: 17
29.04.2025, 18:36
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
25
26
27
28
29
30
def find_food(*args, **kwargs):
    sred = {}
    count = {}
    min_sr = {}
    for i in range(len(args)):
        it = args[i].split()
        items = []
        sumi = 0
        count[i] = len(it)
        for item in it:
            sumi += int(item)
            items.append(int(item))
        sred[i] = sumi / len(it)
        items2 = []
        for itf in items:
            if itf > sred[i]:
                items2.append(itf)
        min_sr[i] = min(items2)
 
    na_vyvod = []
    for item in min_sr:
        if 'reduce' in kwargs:
            na_vyvod.append((count[item], min_sr[item] // kwargs['reduce']))
        else:
            na_vyvod.append((count[item], min_sr[item]))
 
    if 'regularize' in kwargs:
        reversed = not kwargs['regularize']
        na_vyvod = sorted(na_vyvod, reverse=reversed)
    return na_vyvod
1
121 / 116 / 18
Регистрация: 05.08.2021
Сообщений: 506
12.02.2026, 20:36
Цитата Сообщение от Jfldkokpfkdrpy Посмотреть сообщение
Из каждой строки, в которой числа записаны через пробел, нужно найти такие, которые больше среднего арифметического, а среди них выбрать наименьшее
И в чем же конкретно в этом месте у Нильса трудности? С именованными аргументами - еще проще
Python
1
2
3
4
5
6
7
8
9
10
11
data = ['2 15 148 3 6 12 9', '23 32 1 2 22 122 1', '3 12 85 7', '1984 42 13 7 5']
 
def find_food(d):
    n = list(map(lambda x: x.split(), d))
    for i in range(len(n)):
        n[i] = list(map(int, n[i]))
        m = sum(n[i]) / len(n[i])
        n[i] = tuple([len(n[i]), min(list(filter(lambda x: x > m, n[i])))])
    return n
 
print(*find_food(data), sep="\n")
(7, 148)
(7, 32)
(4, 85)
(5, 1984)
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.02.2026, 20:36
Помогаю со студенческими работами здесь

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

Количество последовательностей из нулей и единиц, в которых нет двух соседних единиц (динамическое программирование)
Посчитайте количество последовательностей длины N из нулей и единиц, в которых нет двух соседних...

Создание на основе массива нулей и единиц массивов того же размера, каждый из которых содержит одну из выборок единиц
Имеется двумерный массив размера n*n, заполненный нулями и единицами. Необходимо составить...

Дано целое число A. когда значение A больше 0,то необходимо увеличить его на единицу,иначе уменьшить на единицу
Дано целое число A.Если значение A>0,то необходимо увеличить его на единицу,иначе уменьшить на...

Задача слишком много хочет: вывод в единственном числе
Вот мой код: # Компьютерный формат даты и времени состоит только из чисел, например:...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
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