Какого максимального размера должны быть квадраты, чтобы ровно впихнуть их в прямоугольник c известными сторонами?

есть количество квадратов n
есть прямоугольник с заданными сторонами.
все квадраты должны быть равны
все квадраты должны полностью помещаться в прямоугольник
необходимо найти площадь одного из таких квадратов

Пример:
Прямоугольник 960 на 500 пикселей,
есть 10 квадратов.
надо их впихнуть целиком в этот прямоугольник так чтобы они при этом были максимально возможного размера.
  • Вопрос задан
  • 4160 просмотров
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Если не нужно полное покрытие прямоугольника, то общий алгоритм такой:
1. Считаем максимальную сторону квадрата = int(sqrt(высота_прямоугольника*ширина_прямоугольника/количество_квадратов)) = 219
2. Берём ширину и высоту, делим нацело на все числа от 1 до количества квадратов. Из полученного списка удаляем все числа, большие максимальной стороны квадрата, удаляем дубликаты и сортируем по убыванию.
(192, 166, 160, 137, 125, 120, 106, 100, 96, 83, 71, 62, 55, 50)
3. Для полученных размеров считаем количество квадратов, умещающихся в прямоугольник = int(высота_прямоугольника/размер_квадрата)*int(ширина_прямоугольника/размер_квадрата). Как только получаем число большее необходимого количества квадратов - останавливаемся.
n(192) = 10
Итого - сетка 5х2 со стороной квадрата 192 пиксела. По вертикали остаются 116 свободных пикселов.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
gbg
@gbg
Любые ответы на любые вопросы
Наибольший общий делитель длин сторон прямоугольника. Искать алгоритмом Евклида. Это будет сторона. А площадь найдется возведением в квадрат.
Ответ написан
opium
@opium
Просто люблю качественно работать
Наибольший общий делитель даст размер стороны квадрата
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы