我卡在了一个问题上:
找到将一个大小为'n'的组分成大小为'k'的子组的所有可能性。(这里,n%k=0)
例如,要将集合{1,2,3,4,5,6}分成大小为3的子组(k=3,n=6),可能的结果是:
a) {1,2,3},{4,5,6}
b) {1,3,5},{2,4,6}
c) {1,3,6},{2,4,5}
d) {1,3,4},{2,5,6} 等等。
我尝试的做法是,首先从集合中找到所有大小为k的组合。 然后循环这些组合,找出哪些组合可以组合在一起,以此来找出子组的列表。
但是我认为这种方法的时间复杂度相当糟糕。有没有更好的方法解决这个问题呢?
例如,要将集合{1,2,3,4,5,6}分成大小为3的子组(k=3,n=6),可能的结果是:
a) {1,2,3},{4,5,6}
b) {1,3,5},{2,4,6}
c) {1,3,6},{2,4,5}
d) {1,3,4},{2,5,6} 等等。
我尝试的做法是,首先从集合中找到所有大小为k的组合。 然后循环这些组合,找出哪些组合可以组合在一起,以此来找出子组的列表。
但是我认为这种方法的时间复杂度相当糟糕。有没有更好的方法解决这个问题呢?