gpt4 book ai didi

java - 无法定义循环算法

转载 作者:行者123 更新时间:2023-12-01 12:11:25 24 4
gpt4 key购买 nike

我正在尝试创建数字列表的所有可能数字组合的子集。这是一个例子:

数字列表:1,2,3,4,5,6

子集(一组 3 个数字):

1,2,3

1,2,4

1,2,5

1,2,6

1,3,4

1,3,5

1,3,6

1,4,5

1,4,6

1,5,6

2,3,4

2,3,5

2,3,6

2,4,5

2,4,6

2,5,6

3,4,5

3,4,6

3,5,6

4,5,6

我在尝试确定实现此列表的循环算法时遇到了困难。我可以看到我需要一个嵌套循环,但我无法理解其中的逻辑。此示例包含所有可能的 3 个数字组,但仅是一个示例。我需要能够扩展到更大的列表和更多的组。请帮忙!

我是一个 Java 迷,所以我很欣赏 Java 解决方案,但也很乐意使用任何语言甚至伪代码进行解释。

最佳答案

我写了一个递归代码 -

public class SubSetsOfLengthK {
public static void main(String[] args) {
int n = 6;
int k = 3;

int[] arr = new int[k];
printSubSets(1,n,k,arr,0);
}

/*
Method prints all the subsets of length k of set (1.....n)
*/
private static void printSubSets(int start, int n, int k, int[] arr, int pos) {
if(k==0) {
for(int a : arr) {
System.out.print(a+" ");
}
System.out.println();
return;
}

for(int j=start;j<= n;j++) {
arr[pos] = j;
printSubSets(j+1,n,k-1, arr, pos+1);
}
}
}

为了快速访问,您可以查看这里 https://coderpad.io/2R9CAG47

关于java - 无法定义循环算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27254435/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com