Matlab 在N个元素中创建所有可能的非重复组合的置换

Matlab 在N个元素中创建所有可能的非重复组合的置换,matlab,permutation,combinatorics,Matlab,Permutation,Combinatorics,我想知道我)下面的组合数学问题是否有一个名字;ii)是否有在Matlab中编写代码的方法 我有N个元素,并且希望生成所有可能的排列,这些排列是具有不同括号大小的非重复组合。例如,对于N=5个元素,我们有以下可能的排列: 最大组组合大小为5:(ABCDE) 最大组组合大小为4:(A)(BCDE);(BCDE)(A);(B) (ACDE);(ACDE)(B);(C) (阿布德);(D) (ABCE);(E) (ABCD)等 最大组组合大小为3:(AB)(CDE);(A) (B)(CDE);(AC)

我想知道我)下面的组合数学问题是否有一个名字;ii)是否有在Matlab中编写代码的方法

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

  • 最大组组合大小为5:(ABCDE)
  • 最大组组合大小为4:(A)(BCDE);(BCDE)(A);(B) (ACDE);(ACDE)(B);(C) (阿布德);(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)是两种可能的排列。

这是对(i)的部分回答。你需要意识到这一点。几乎可以肯定,您的问题就是其中的一个例子,但从您的描述来看,我不清楚它是哪种方式。

非常感谢您的回答。他们非常感激。来自Mathworks论坛的人能够回答这个问题

简言之,这个问题是一个“划分问题”,然后是生成的解的排列


看起来您只是在分组并进行
烫发
;你想先想出你自己的解决方案吗?@GameOfThrows:使用perms,你将在4中生成
(A)(BCDE)
=24个不同的命令。@yl91:函数应该做什么?您是在寻找一个可以创建所有可能的解决方案的生成器,还是一个可以生成随机样本的函数?虽然两者看起来非常相似,但可能的实现可能完全不同。@Dan he说括号内的顺序并不重要,所以我假设(A)(BCDE),(A)(BCED)(A)(BECD)等都算数?或者我误解了这个问题。我)你在寻找一个集合的所有分区排列。