【发布时间】:2018-07-31 11:35:28
【问题描述】:
给定 2 个数据列表(列表 A 和列表 B),我需要一个算法来生成所有可能的组合 C,以便在每个组合中:
-
A的所有项目都必须存在,排序无关紧要(例如,abc与cba相同) -
B中的恰好 1 项必须出现在A中的每个项目之后 -
B中的项目可以重复
示例 1
A = {a, b, c}
B = {1, 2}
答案:
a1b1c1
a1b1c2
a1b2c1
a1b2c2
a2b1c1
a2b1c2
a2b2c1
a2b2c2
示例 2
A = {a, b}
B = {1, 2, 3}
答案:
a1b1
a1b2
a1b3
a2b1
a2b2
a2b3
a3b1
a3b2
a3b3
我可以遵循什么算法来生成这个答案?谢谢。我看到了模式,但无法将其转换为代码。我将使用 C++ 进行编码,但算法会为我工作。
我已经检查了有关此主题的以下关于 SO 的问题。但没有一个像我的问题。
How to find all combinations of sets of pairs - 不允许在第二组重复。
All combinations of pairs within one set - 处理一组。
combinations between two lists? - 不允许在第二组重复。
Finding all possible value combinations between two arrays - 不允许在第二组重复。
An efficient method to generate all possible ways to pair up items in a data set - 处理单组,不允许重复。
因为我不知道算法,所以我想不出一个最小的例子。
【问题讨论】:
-
成为会员这么久有这么多问题,你真的表现得更好。是时候重新阅读the help pages,尤其是"What topics can I ask about here?" 和"What types of questions should I avoid asking?"。还有re-take the SO tour 和re.read about how to ask good questions。当然还要重新学习如何创建Minimal, Complete, and Verifiable Example。
-
另外,请阅读this question checklist 和所有idownvotedbecau.se,了解您的问题可能被否决的一些原因。最后请learn how to debug your programs.
-
@Someprogrammerdude:好的。编辑了我的问题。你认为这是另一个配对问题吗?可能这不是真的,在发帖之前我搜索了答案但找不到答案。我知道如何调试,但我不会编码,因为我不知道算法!谢谢,idownvotedbecau.se 很有趣。
-
@JHBonarius:对不起,我错过了 - 你在哪里看到置换在问题中的应用?
-
@JHBonarius,这不是便便评论。如果你只看
b中的元素,那些是长度重复的排列a.size()
标签: c++ algorithm combinations permutation