Исключение нулевого указателя генерируется, когда приложение пытается использовать null в случае, когда требуется объект. К ним относятся:
null
. null
. null
, как если бы это был массив. null
, как если бы это был массив. null
как будто это было значение Throwable. Приложения должны бросать экземпляры этого класса, чтобы указать на другие незаконные использования объекта null
.
Ссылка: http://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html
Это Мусорное ведро, Упаковывающее проблема, и это является NP-трудным. Для небольшого количества объектов и пакетов, Вы могли бы быть в состоянии просто использовать метод грубой силы попытки каждой возможности. Кроме того, необходимо будет использовать какую-то эвристику. Статья Wikipedia имеет некоторые детали, наряду со ссылками на бумаги, которые Вы, вероятно, хотите проверить.
альтернатива, конечно, должна запуститься с действительно простого алгоритма (такого как простая 'укладка' объектов) и вычислить разумную верхнюю границу на поставку использования, что, тогда если Ваши упаковщики - люди могут добиться большего успеха, Вы получаете небольшую прибыль. Или обесценьте свои расчетные цены немного при условии, что Ваша упаковка не идеальна.
Вы пытаетесь видеть, сколько из единственного типа вписывается в конкретный размерный пакет, или Вы пытаетесь смешать типы также?
Кажется, что Вы пытаетесь решить проблема Ранца . Вы могли бы быть в состоянии найти некоторые алгоритмы для того, что могло быть адаптировано к Вашим конкретным требованиям. Просто поймите, что будет трудно найти эффективный алгоритм, поскольку проблемой является завершенный NP (хотя в зависимости от Ваших конкретных требований можно быть в состоянии найти эффективное приближение, или исходные данные могут быть достаточно маленькими, что это не имеет значения).
Если поля должны быть упакованной рукой, то Вы могли бы рассмотреть запись алгоритма, который сделает то, что разумный сделал бы человек. Причина я предлагаю это, состоит в том, потому что, если Вы не хотите распечатать инструкции по упаковке для каждого порядка, тогда кто бы ни делает Вашу упаковку, оказывается перед необходимостью тренировка, как они собираются соответствовать заказанным объектам в однако многих полях, это было выделено для порядка.
Это могло бы тогда привести к Вашим упаковщикам - людям, приезжающим в НАСТОЛЬКО спрашивающий относительно того, как к программно тренировке, как упаковать n объекты в m поля.:-P (Они могли бы также попросить Вы делать это, просить у Вас инструкции, и т.д.).
, пока Ваш алгоритм делает то, что сделал бы разумный человек, я лично приму его оценку поставки.
Возможно, это будет звучать очевидным, но это могло бы стоить к memoize проблема, затем сделать некоторых из них вручную. Нахождение самого эффективного решения для произвольных исходных данных и окружает NP-трудный, но путем ограничения пространства задач и принятия некоторой неэффективности, тот размер NP мог бы быть чем-то разумным, и memoizing, Вы могли бы быть в состоянии снизить время "общего падежа" существенно.
Это могло бы также помочь думать о вещах с точки зрения иерархической упаковки.