【发布时间】:2011-04-18 21:13:04
【问题描述】:
假设我有两个项目列表。这两个列表的长度可能相同,也可能不同。
如何生成所有可能的项目对的所有列表,其中一对由每个列表中的一个项目组成?每个项目只能成对。
所以,如果一个列表是:
(1, 2, 3)
另一个列表是:
(a, b)
那么所有可能对的列表将是:
(1a, 2b)
(1a, 3b)
(1b, 2a)
(1b, 3a)
(2a, 3b)
(2b, 3a)
(我在 Perl 中实现了这一点,但显然算法是重要的部分。)
提前致谢。我的递归 foo 不起作用!
【问题讨论】:
-
那些不是成对的,它们是成对的。您的问题描述与您的预期输出不符!
-
@Robin Green:实际上,它似乎是所有可能配对的列表。换句话说,它列出了所有可能的一对一功能。
-
糟糕,抱歉,我误会了。现在说得通了。
-
谢谢。你是对的 - 标题是垃圾,一些描述也是如此。我现在试着让它更清楚一点。当然,它们实际上是成对的列表,而不是成对的成对。它们只是上面的一对,因为在这个简单的示例中,第二个列表只有两个项目。再次感谢。
标签: algorithm recursion combinations