简单的算法来完成所有排列

时间:2013-10-05 14:49:47

标签: combinations permutation combinatorics

假设我们有一个数组{1,1,2,2,3,3} 我希望在满足这些要求的同时完成所有可能的组合:

  • 不要将第一个数组复制到任何地方
  • 每次迭代都必须只使用两个元素,例如,如果有的话 112233我们可以转到121233 112323,因为只需要一次交换,但不需要332211,因为它需要多次交换

是的,这是可能的,我已经尝试编程自己来检测这样的序列,但我得到一个古怪的模式,如(一个象征交换,0象征未改变的元素):

  • 011000
  • 001100
  • 110000

等,我找不到任何简单的公式,这将允许我在算法上迭代每个排列。

0 个答案:

没有答案