如何重复找到所有选项?

问题描述 投票:-4回答:1

我正在寻找一个我无法弄清楚的问题。

我需要所有(现在是正确的数学术语)排列吗?元组?组合?重复由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

有人能够在某个地方引导我吗?有一些以下条件,但我应该能够在旅途中过滤它们。当然我试着寻找答案,但似乎没有任何话题是我试图解决的问题。

非常感谢任何至少试图让我朝正确方向捏捏的人。

c
1个回答
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;
    }
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.