在N个元素中创建所有可能的非重复组合的排列

时间:2016-01-28 13:58:01

标签: matlab permutation combinatorics

我想知道我是否有以下组合问题的名称; ii)有没有办法在Matlab中编写代码?

我有N个元素,并希望生成具有不同括号大小的非重复组合的所有可能排列。例如,对于N = 5个元素,我们有以下可能的排列:

  • 最大组组合大小为5:(ABCDE)
  • 最大组合大小为4:(A)(BCDE); (BCDE)(A); (B)(ACDE); (ACDE)(B); (C)(ABDE); (D)(ABCE); (E)(ABCD)等。
  • 最大组合大小为3:(AB)(CDE); (A)(B)(CDE); (AC)(BCD); (A)(C)(BCD)等。
  • 最大组组合大小为2:(AB)(CD)(E); (AB)(C)(D)(E); (AB)(CE)(D)等。
  • 最大组合大小为1:(A)(B)(C)(D)(E); (B)(C)(D)(E)(A);等

请注意,在括号内,顺序无关紧要,即它们只是组合。但是在括号之外,必须进行排列,例如,(AB)(CDE)和(CDE)(AB)是两种可能的排列。

2 个答案:

答案 0 :(得分:1)

这是(i)的部分答案。您需要了解The Twelvefold Way。几乎可以肯定你的问题就是其中一个例子,但从你的描述中我不清楚它是哪种方式。

答案 1 :(得分:1)

非常感谢您的所有回复。他们非常感谢。 Mathworks论坛的某个人能够回答它。

简而言之,问题是“分区问题”,然后是生成的解决方案的排列。

http://www.mathworks.com/matlabcentral/answers/265601-creating-permutations-of-all-possible-non-repeated-combinations-within-n-elements#answer_207742