Задача об упаковке в контейнеры

Данный калькулятор выглядит большим и сложным, но суть его очень простая. Все сводится до одного вопроса: сколько элементов можно поместить в контейнер?

И действительно часто в работе нужно думать сколько всего элементов поместиться в той или иной контейнер. По данному поводу и был создан данный калькулятор. Методик расчета заполнения элементов в контейнере есть не мало.

Давайте посмотрим 4 из них:

Next Fit Algorithm

Не очень точная методика, но все же:

Суть методики элементарна:

1. Берем новый элемент

2. Берем новый контейнер.

3. Размещаем элемент в контейнере.

4. Берем следующий элемент.

5. Если элемент помещается в контейнере, то переходим к шагу №3. А если элемент не помещается в контейнере, то переходим к шагу №2.

First Fit Algorithm

1-4. пункты одинаковые во всех методиках;

5. Если элемент помещается в контейнере, то переходим к шагу №3. Если элемент не помещается в контейнере, то по очереди перепроверяем остальные контейнеры. Если все таки находится местечко для данного элемента в одном из контейнеров, то кладем элемент в контейнер и переходим к шагу №4, иначе опять на №2.

Worst Fit Algorithm

1-4. пункты одинаковые во всех методиках;

5. Очень похож метод с First Fit Algorithm, но только тут мы не по очереди проверяем частично свободные контейнеры, а сразу берем и проверяем максимально свободный из частично занятых. Если нет, то берем новый контейнер.

Best Fit Algorithm

1-4. пункты одинаковые во всех методиках;

5. Самый идеальный вариант, если элемент помещается в контейнере, то переходим к шагу №3, если нет, то берем самый заполненный из занятых контейнеров, но в котором есть место для данного элемента.

Поле не заполнено.
'%1' не похож на адрес электронной почты.
Пожалуйста, заполните это поле.
Значение поля должно содержать как минимум %1 символов.
Значение не должно быть длиннее %1 символов.
Значение поля не совпадает с полем '%1'
Введен неверный символ. Допустимые символы:'%1'.
Ожидается число.
Ожидается положительное число.
Ожидается целое число.
Ожидается положительное целое число.
Значение должно быть в диапазоне [%1 .. %2]
Символ '%1' уже присутствует в наборе допустимых символов.
Значение поля должно быть меньше %1.
Первым символом должна быть буква латинского алфавита.
Вс
Пн
Вт
Ср
Чт
Пт
Сб
Январь
Февраль
Март
Апрель
Май
Июнь
Июль
Август
Сентябрь
Октябрь
Ноябрь
Декабрь
век
до Н.Э.
%1 век
Возникла ошибка при импорте данных в строке:%1. Значение: '%2'. Ошибка: %3
Невозможно определить разделитель полей. Для разделения полей можно использовать следующие символы: Tab, точку с запятой (;) или запятую (,).
%3.%2.%1%4
%3.%2.%1%4 %6:%7
с.ш.
ю.ш.
в.д.
з.д.
да
нет
Неправильный формат файла. Поддерживаются только следующие форматы: %1
Пожалуйста оставьте свой телефон и/или адрес электронной почты.
минут
минут
минута
минуты
минуты
минуты
минут
минут
минут
минут
минут
минут
минут
час
часа
часа
часа
часов
часов
часов
часов
часов
часов
часов
дней
день
дня
дня
дня
дней
дней
дней
дней
дней
дней
дней
месяц
месяца
месяца
месяца
месяцев
месяцев
месяцев
месяцев
месяцев
месяцев
месяцев
год
года
года
года
лет
лет
лет
лет
лет
лет
лет
назад
%1 минут назад
%1 минут назад
%1 минуту назад
%1 минуты назад
%1 минуты назад
%1 минуты назад
%1 минут назад
%1 минут назад
%1 минут назад
%1 минут назад
%1 минут назад
%1 минут назад
%1 минут назад
%1 час назад
%1 часа назад
%1 часа назад
%1 часа назад
%1 часов назад
%1 часов назад
%1 часов назад
%1 часов назад
%1 часов назад
%1 часов назад
%1 часов назад
%1 дней назад
%1 день назад
%1 дня назад
%1 дня назад
%1 дня назад
%1 дней назад
%1 дней назад
%1 дней назад
%1 дней назад
%1 дней назад
%1 дней назад
%1 дней назад
%1 месяц назад
%1 месяца назад
%1 месяца назад
%1 месяца назад
%1 месяцев назад
%1 месяцев назад
%1 месяцев назад
%1 месяцев назад
%1 месяцев назад
%1 месяцев назад
%1 месяцев назад
%1 год назад
%1 года назад
%1 года назад
%1 года назад
%1 лет назад
%1 лет назад
%1 лет назад
%1 лет назад
%1 лет назад
%1 лет назад
%1 лет назад
Задача об упаковке в контейнеры
Набор элементов для упаковки
Сохранить Отменить
Импортировать данные
Для разделения полей можно использовать один из этих символов: Tab, ";" или ",": 
OK Отменить
Добавить Импортировать данные Очистить таблицу
Next Fit Decreasing:
 Общее число контейнеров:
 Общее использование контейнеров (%):
First Fit Decreasing:
 Общее число контейнеров:
 Общее использование контейнеров (%):
Worst Fit Decreasing:
 Общее число контейнеров:
 Общее использование контейнеров (%):
Best Fit Decreasing:
 Общее число контейнеров:
 Общее использование контейнеров (%):