我正在寻找一个我无法弄清楚的问题。
我需要所有(现在是正确的数学术语)排列吗?元组?组合?重复由4个给定元素组成。
我有元素A,B,C,D。其中有四个,金额是固定的。对于给定的n,我需要能够从这四个元素中获得所有可能的选项。例如:
n = 1;可能的选择:A B C D.
n = 2;可能的选项:AA AB AC AD BA BB BC BD ... DC DD
n = 4;可能的选择:AAAA AAAB AAAC ... DDDC DDDD
有人能够在某个地方引导我吗?有一些以下条件,但我应该能够在旅途中过滤它们。当然我试着寻找答案,但似乎没有任何话题是我试图解决的问题。
非常感谢任何至少试图让我朝正确方向捏捏的人。
你不能使用嵌套循环来完成它,因为你需要n for循环并且n最初没有确定(并且使用n嵌套for循环是荒谬的)。解决问题的一种方法是使用递归函数。递归函数应返回由4个字母组成的基本列表,对于n = 1,对于n> 1,它应使用参数(n-1)调用自身,然后将四个字母中的每一个附加到递归调用的每个返回字符串中。我建议你在阅读下面的伪代码之前尝试自己实现它!
list func(int n){
if ( n == 1 ) {return list('A', 'B', 'C', 'D'); }
else {
result = list();
permutations = func(n-1);
for (each item in permutations) {
result.append(item+'A');
result.append(item+'B');
result.append(item+'C');
result.append(item+'D');
return result;
}
}
}