我正在寻找一种适用于任何设定大小的算法,例如{A B C}
我想要以下组合:
ABC (== CBA)
ACB (== BCA)
BAC (== CAB)
[编辑] 我认为像gray code之类的东西通过仅反转当前排列(p)中的2个元素来生成下一个排列(p + 1)可能会有所帮助,但我可以还没看到模式。
答案 0 :(得分:2)
如果您确保集合中的元素不同并且假设它们具有可比性,则算法应如下所示:
1) Go through all permutations
2) For each permutation take it if and only if its first element is less than
the last one.
第二步允许每对中只有一个排列
答案 1 :(得分:0)
我觉得这可能是家庭作业,所以这里只是一个提示。
查看每对组合。