Допустим, у меня есть класс из 30 учеников, и я хочу сгенерировать все возможные способы, которыми их можно разделить на группы по 5 человек (порядок не имеет значения).
Я знаю, как найти все комбинации студентов для индивидуального формирования одной группы (http://www.merriampark.com/comb.htm). Используя этот итератор и некоторую рекурсию, я могу найти ПЕРЕСТАНОВКИ возможных комбинаций групп. Однако порядок, в котором выбираются группы, не имеет значения, и я хотел бы минимизировать время выполнения. Итак, как мне найти уникальные КОМБИНАЦИИ возможных групп?
Вышеприведенный алгоритм использует лексикографическое упорядочение, чтобы избежать создания повторяющихся комбинаций... есть ли способ, которым я могу использовать эту идею для групп, а не для объектов?
Я хорошо знаю Ruby и хуже Java/Python. Спасибо заранее за любые советы!
multiset
. Это Perl, но он должен дать вам кое-какой код: search.cpan.org/perldoc /Математика::Комбинаторика - person Telemachus   schedule 26.10.2009