Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
-11 / 2 / 1
Регистрация: 22.09.2021
Сообщений: 97

Проталкивание

30.11.2021, 17:41. Показов 2367. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужно определить, какие коробки можно протолкнуть в окно. Считаем, что это можно сделать, если одна из граней коробки – прямоугольного параллелепипеда – имеет оба размера не больше размеров окна.
Напишите функцию extruding(), отбирающую такие коробки.
Функции передается произвольное число кортежей из трех размеров коробок и именованный аргумент window – кортеж размеров окна.
Функция возвращает объемы проходящих в окно коробок без повторений.
Используйте filter, map и/или lambda.

Пример 1
Ввод:
data = [(1, 2, 3), (1, 1, 1), (2, 2, 1), (3, 2, 2), (4, 1, 1)]
print(*extruding(*data, window=(1, 2)))

Вывод:
1 4 6

Пример 2
Ввод:
data = [(5, 2, 3), (1, 2, 4), (2, 2, 2), (5, 2, 2)]
print(*extruding(*data, window=(2, 2)))

Вывод:
8 20
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
30.11.2021, 17:41
Ответы с готовыми решениями:

Как исключить "проталкивание" объекта сквозь терреин?
Всем привет! На сцене есть колесо и персонаж. Колесо физический объект и оно взаимодействует с персонажем (т.е. персонаж может его...


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

Или воспользуйтесь поиском по форуму:
1
 Аватар для avdivo
303 / 213 / 112
Регистрация: 03.12.2016
Сообщений: 409
30.11.2021, 22:51
Лучший ответ Сообщение было отмечено RioPAsy как решение

Решение

RioPAsy,
Python
1
2
3
4
5
6
7
def extruding(*data, window):
    out = set()
    for i in data:
        li = sorted(list(i))
        if li[0] <= min(window) and li[1] <= max(window):
            out.add(li[0] * li[1] * li[2])
    return out
Добавлено через 29 минут
Ой, чуть не забыл
Цитата Сообщение от RioPAsy Посмотреть сообщение
Используйте filter, map и/или lambda.
Python
1
2
3
4
def extruding(*data, window):
    out = map(lambda x: sorted(list(x)), data)
    out = filter(lambda x: x[0] <= min(window) and x[1] <= max(window), out)
    return set(i[0] * i[1] * i[2] for i in out)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Ответ Создать тему
Новые блоги и статьи
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru