【发布时间】:2011-05-07 00:01:09
【问题描述】:
假设我有一个 30 名学生的班级,并且想要生成可以将他们分成 5 人一组的所有可能方式(顺序无关紧要)。
我知道如何找到学生的所有组合以单独组成一个小组 (http://www.merriampark.com/comb.htm)。通过使用该迭代器和一些递归,我可以找到可能的组组合的排列。但是,选择组的顺序无关紧要,我想尽量减少执行时间。那么如何找到可能组的唯一组合呢?
上述算法使用字典顺序来避免生成重复的组合...有没有办法可以在组而不是对象上使用这个想法?
我很了解 Ruby,但不太了解 Java/Python。提前感谢您的任何建议!
【问题讨论】:
-
或许可以看看这里,尤其是
multiset函数。它是 Perl,但它应该给你一些代码来戳:search.cpan.org/perldoc/Math::Combinatorics -
谢谢...知道它是一个“多集”将使我的谷歌搜索变得更好。
标签: ruby grouping combinations