[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: вписать прямоугольники в область
mailmoney
Здравствуйте.
--
Есть массив, длина и ширина (прямоугольник), есть рулон, допустим 1м в ширину и длина не ограничена. Нужно вписать прямоугольники с минимальными потерями материала.

Может у кого есть заготовки, не нужно рисовать ничего, нужно просто логически понять суть.

т.е. будет массив исходный
1500*300
1500*500
1200*500
1200*400
1200*200

получится - первый отрезок (по высоте режем)
1500*500
1500*300
и еще дальше смотрит что войдет
1200*200

второй:
1200*500
1200*400

И это все без БД, на массивах, так что тут select не поможет.
kaww
mailmoney, условие так написано, что ничего не понятно. Как от рулона шириной метр (наверное, все остальные числа приведены в мм, тогда 1м = 1000мм) отрезать 1500x500?
mailmoney
вот нарисовал, для первого примера как и писал выше.

user posted image


впринципе я сейчас уже логику немного придумал, НО подскажите, как упорядочить массив по двум значениям, чтобы мои цифры встали на уменьшение по обоим значениям.
kaww
Т.е. это задача об упаковке в контейнеры. Вот может помочь http://habrahabr.ru/post/136225/
mailmoney
да все верно, спасибо за название, нашел решение
http://phpforum.su/index.php?showtopic=33893
но оно так скажем для одномерного массива... может есть готовый у кого то еще?
mailmoney
Помогите, очень нужна фунция. Такая же как в ссылке, Только два значения.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.