【发布时间】:2009-10-11 08:02:34
【问题描述】:
我有设置 S1 = {s11,s12,s13), S2 = {s21,s22,s23) 等等直到 SN。我需要生成由 S1,S2..SN.. 组成的所有排列每个集合中只有一个元素。
例如:
S1 = {a,b,c}
S2 = {d,e,f}
S3 = {g,h,i}
我的排列是:
{a,d,g}, {a,d,h}, {a,d,i}, {a,e,g}, {a,e,h}....
我该怎么做呢? (我可以随机从每个中提取 1 个并将它们合并,但在我看来,这甚至是个坏主意)。
为了一般性,假设每个集合中有“n”个元素。我正在考虑在 C 中实现它。请注意,'N' 和 'n' 不是固定的。
【问题讨论】:
-
是的。它基本上是集合的笛卡尔积。
-
我可以有一个二维矩阵表示。但是,同样,可以有任何数据结构,只要它不是过度杀伤并且在 C 中可以编写代码。
标签: c set permutation