Мне нужно решить следующую задачу: У меня есть несколько прямоугольников размером: ширина-высота, ширина/2 высота/2, ширина/4 высота/4 , ширина/8 высота/8 ... и т.д.
Мне нужно упаковать эти прямоугольники в большой прямоугольник размером x*ширина y*высота так, чтобы ни один прямоугольник не перекрывался, прямоугольники были распределены в упаковке случайным образом и любой прямоугольник должен хотя бы касаться другого прямоугольника. Я попробовал довольно простой жадный алгоритм, но он не работает.
Не могли бы вы подсказать мне, как решить эту проблему?
Спасибо!
EDIT: Вы можете иметь более одного прямоугольника каждого размера
Это не домашнее задание. Я пытаюсь создать эффект, подобный эффекту на ted.com
Под случайностью я подразумеваю, что может существовать более одной упаковки прямоугольников, удовлетворяющей ограничениям. Алгоритм не должен создавать одну и ту же упаковку при каждом запуске.