我正在寻找一个我无法理解的问题。
我需要所有(现在是正确的数学术语)排列吗?元组?组合?重复由4个给定的元素组成。
我有元素 A,B,C,D 。其中有四个,金额是固定的。对于给定的 n ,我需要能够从这四个元素中获得所有可能的选项。例如:
n = 1 ; 可能的选择: :一种 乙 C d
n = 2 ; 可能的选择: 的 AA AB AC 广告 BA BB 公元前 BD ... DC DD
n = 4 ;可能的选择: AAAA AAAB AAAC ... DDDC DDDD
有人能够在某处指导我吗?有一些以下条件,但我应该能够在旅途中过滤它们。当然我试着寻找答案,但似乎没有任何话题是我试图解决的问题。
非常感谢任何至少试图让我朝正确方向捏捏的人。
答案 0 :(得分:0)
你不能使用嵌套循环来完成它,因为你需要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;
}
}
}