您将如何以编程方式将一组数字的所有可能的唯一组合枚举到多个组中?
例如,如果我有集合 {1,2,3,4,5,6,7,8,9,10} 并且我想要 3 个大小为 3、3、2 的组,一个可能的子集是 { [1, 2, 3], [4, 5, 6], [7, 8] }
这将等同于 { [3, 2, 1], [6, 5, 4], [7, 8] } 并且将被视为重复
而 { [4, 2, 3], [1, 5, 6], [7, 8] } 将被视为不同的子集
显然,我正在寻找最有效和最实用的方法。我将使用相当大的 N,因此算法需要可扩展。