Я работаю над проблемой, где у меня есть 18 предметов, которые необходимо сортировать по 3 ведрам. Половина предметов красная, а половина - голубые. Также каждый элемент имеет определенный размер; однако размеры распределены неравномерно (I.e. 18, 20, 24, 18, 19, 26 ...). Мне нужен алгоритм, который может распространять эти предметы на 3 ковши следующим образом: 1) Каждое ведро должно состоять из шести предметов. 2) Каждое ведро должно состоять из 3 красных предметов и 3 синих предметов. 3) (часть, с которой я борюсь). Если вы усредняете размер шести предметов в каждом ковше, они должны быть как можно ближе к среднему размеру предметов в других ведрах.Равномерное распределение предметов в ведрах
Я просто научился кодировать и работаю над этой проблемой как частью проекта; Тем не менее, я читал об алгоритмах сортировки в течение нескольких дней, но я не нашел решений, которые помогли бы решить проблему под рукой, и я не могу понять. Я бы предпочел прийти к решению самостоятельно, но был бы очень благодарен за толкание в правильном направлении.
Спасибо!
Поисковое пространство кажется довольно маленьким; как насчет грубой силы? – wildplasser
@wildplasser Взаимодействие с грубой силой примет значение «O (n * [(n!)^2])' ~ 'O (10^12)', где 'n' = 18/2 = 9. Это займет несколько дней для запуска типичный домашний компьютер. –
@AnmolSinghJaggi: существует много симметрий (6^5), что приводит к возможным разбиениям (6 * 4 * 4 * 7 * 7) * (5 * 5 * 4 * 4) (IMO, IANAM). Нарушение симметрии также станет ключом к сокращению пространства поиска в рекурсивном разделе. Плюс: правило № 3 может помочь обрезке. – wildplasser