Professional Professional
Мудрец
(14369)
3 месяца назад
Для решения этой задачи мы будем использовать модуль random для создания случайных значений и структуру данных стека. В Python, стек может быть представлен как список, где добавление элемента происходит с помощью метода append(), а удаление - с помощью метода pop(). После того как все коробки будут добавлены в стек, мы переместим их в список, используя функцию sorted() для сортировки по убыванию суммы длины и ширины.
Ниже приведен код, который выполняет это:
```python
import random
class Box:
def __init__(self):
self.length = random.randint(1, 100)
self.width = random.randint(1, 100)
self.height = random.randint(1, 100)
def sum_length_width(self):
return self.length + self.width
# Создаем стек
stack = []
# Добавляем 10 коробок в стек
for _ in range(10):
box = Box()
stack.append(box)
# Перемещаем коробки из стека в список
box_list = []
while stack:
box = stack.pop()
box_list.append(box)
# Сортируем список по убыванию суммы длины и ширины
box_list.sort(key=lambda box: box.sum_length_width(), reverse=True)
# Проверка результата
for box in box_list:
print(f'Length: {box.length}, Width: {box.width}, Height: {box.height}, Sum: {box.sum_length_width()}')
```
Этот скрипт создает 10 экземпляров класса Box с случайными длиной, шириной и высотой. Затем они добавляются в стек. Затем все коробки извлекаются из стека и добавляются в список, который затем сортируется в порядке убывания суммы длины и ширины каждой коробки.