【发布时间】:2013-12-07 03:06:29
【问题描述】:
我正在用 C++ 编写一个程序,我需要获取一组项目并生成所有唯一组合所有长度。我在这里看到了很多示例,它们采用 [1,2,3,4] 之类的集合并创建 [1,2,3,4], [1,2,4,3], [1,3 ,2,4], [1,3,4,2]...等,但这不是我需要的。我需要像 [1,2,3,4] 这样的集合并生成像这样的项目集:
1,2
1,3
1,4
2,3
2,4
1,2,3
1,3,4
2,3,4
1,2,3,4
(以及我可能错过的任何其他内容)
最简单的算法是什么?
【问题讨论】:
-
Knuth 的第 4A 卷涵盖了执行此操作的算法。
-
@ElGavilan 不用担心,你是对的。我只是想讽刺和有趣的是,即使硬件问题也能得到如此多的答案,包括来自我的答案。无法抗拒多汁的小问题,大声笑。祝你有个愉快的夜晚!
标签: c++ math combinations permutation