【发布时间】:2017-12-11 08:57:29
【问题描述】:
假设我们有k 集合,每个集合都包含q 元素。我想生成所有可能的集合,我们从每个集合中恰好选择 1 个元素。假设集合被表示为一个表,其中每一行是一个集合,它的列是它的元素。还假设所有元素都像这样按行索引
设置 1:1 2 3
第二组:4 5 6
第 3 组:7 8 9
问题是 k,q 可能会有所不同,所以我不能使用嵌套的 for 循环。我在 C++ 中工作,这个结构实际上是 std::vector 和 int 的 std::vector,但我不是在这里要求代码,只是关于如何做到这一点的想法。
【问题讨论】:
-
“问题是 k,q 可能会发生变化,所以我不能使用嵌套的 for 循环。” 为什么?
-
@CinCout 我可能会遗漏一些东西,但我不知道有什么方法可以根据需要生成尽可能多的嵌套循环。就我而言,我需要 k 个嵌套循环。请解释一下。
-
k和q各不相同,但已知对吗?在您给出的示例中,您总共将拥有 27 套。我只是让循环运行q^k次。有什么问题? -
@CinCout 我的意思是每次 k 更改时您都必须更改代码,以添加或删除不切实际的嵌套循环。请提供一些代码或伪代码来阐明您的想法。
-
查看DAle的答案
标签: c++ algorithm set cartesian-product