1

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

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

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

  • 011000
  • 001100
  • 110000

等等,我找不到任何简单的公式可以让我在算法上迭代每个排列。

4

0 回答 0