我正在尝试生成字符数组的所有可能组合。输入数组有 n 个字符,5 <= n <= 7,我想生成包含所有 C( n , 5 ) 组合的第二个数组 A( C( n , 5 ) , 5 )。数组中字符的顺序并不重要。
举个例子: 输入数组:{ A, B, C, D, E, F } ,所以 n = 6 输出数组应该是:
{A B C D E},
{A B C D F},
{A B C F E},
{A B F D E},
{A F C D E},
{F B C D E},
这对于 n=5 和 n=6 非常简单,但对于 n=7 就变得非常复杂。有谁知道我应该怎么做?
谢谢
最佳答案
递归求解。
例如,您的 n = 7 案例。在外层,你从{A, B, C, D, E, F, G}开始。从这里,你取出一个字母;不同的 7 次。因此,此输出数组集中有 7 个元素,每个元素有 6 个字母:{A、B、C、D、E、F}、{A、B、C、D、E、G} 等。
对于这些输出中的每一个,您可以使用相同的算法进一步减少。您已经知道如何处理 {A, B, C, D, E, F}。
关于excel - VBA Excel 中的排列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29078363/