Задача Гарднера: как выложить (заполнить область) прямоугольник несколькими плитками известных размеров? - PullRequest
0 голосов
/ 02 августа 2020

У моего садовника есть «простой» ежедневный запрос:

Обеспечьте минимальное количество рулонов и, возможно, минимальные потери, чтобы покрыть заданный угол поворота

Общая проблема укладка плитки является NP-полной, но, к счастью, это гораздо более простая проблема.

«Плитки» - это рулоны синтетической c травы трех размеров: 2X25, 3X25, 4X25 метров. 1010 * Определение потерь: всякий раз, когда разрез приходится на «ширину» рулона, а не на длину.

Пример: разрезание рулона через 13 метров, потери равны 0 (нулю). Если разрезать рулон 2X25 пополам, потери составляют 12,5 кв.м.

Учитывая прямоугольник ввода, вы должны округлить его размеры в большую сторону (Math.ceil) перед мозаикой и вычислить потери в конце.

Допущения:

  1. Цена за метр одинакова для всех рулонов.
  2. Введите размеры в метрах, действительные числа (не обязательно целые)

Ожидаемый результат:

Список используемых рулонов (плиток), их длина (<= 25 метров) и сумма потерь, если> 0.

Я поискал, нашел много связанный вопрос, но НЕТ для этого реального мира, ежедневный вопрос.

...