Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/194.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 用数组值计算n个可能性_Java_Android_Data Structures - Fatal编程技术网

Java 用数组值计算n个可能性

Java 用数组值计算n个可能性,java,android,data-structures,Java,Android,Data Structures,我有三个数组 A[]={"a","b"},B[]={"c","d"},C[]={"e","f"}. Output={"ace"},{"acf"},{"ade"},{"adf"},{"bce"},{"bcf"},{"bde"},{"bdf"} 通过使用这三个数组,我必须计算可能性。 类似地,我想计算n个数组的可能性。使用这种方法 for (int i = 0; i <A.length ; i++) { for (int j = 0; j <B.length ; j

我有三个数组

A[]={"a","b"},B[]={"c","d"},C[]={"e","f"}.

Output={"ace"},{"acf"},{"ade"},{"adf"},{"bce"},{"bcf"},{"bde"},{"bdf"}
通过使用这三个数组,我必须计算可能性。 类似地,我想计算n个数组的可能性。

使用这种方法

 for (int i = 0; i <A.length ; i++) {
        for (int j = 0; j <B.length ; j++) {
            for (int k = 0; k <C.length ; k++) {
              Log.e("output",A[i]+B[j]+C[k]);

            }

        }
    }

对于(int i=0;i

可以通过回溯来解决,请查找下面的代码

import java.util.ArrayList;
import java.util.List;

public class NumberOfPossibilities {

public static void main(String[] args) {

    List<String> result = new ArrayList<String>();
    StringBuilder builder = new StringBuilder();

    char[] A = {'a', 'b'};
    char[] B = {'c', 'd'};
    char[] C = {'e', 'f'};

    List<char[]> list = new ArrayList<>();
    list.add(A);
    list.add(B);
    list.add(C);

    dfs(list, result, builder, 0);

    for (String str : result)
        System.out.println(str);
}

public static void dfs(List<char[]> list, List<String> result, StringBuilder builder, int index) {

    if (builder.length() == list.size()) {
        result.add(builder.toString());
        return;
    }

    for (char ch : list.get(index)) {
        builder.append(ch);
        dfs(list, result, builder, index + 1);
        builder.setLength(builder.length() - 1);
    }
}
import java.util.ArrayList;
导入java.util.List;
公营班级人数{
公共静态void main(字符串[]args){
列表结果=新建ArrayList();
StringBuilder=新的StringBuilder();
char[]A={'A','b'};
char[]B={'c','d'};
char[]C={'e','f'};
列表=新的ArrayList();
列表.添加(A);
列表.添加(B);
增加(C)项;
dfs(列表、结果、生成器、0);
for(字符串str:result)
系统输出打印项次(str);
}
公共静态无效dfs(列表、列表结果、StringBuilder、int索引){
如果(builder.length()==list.size()){
add(builder.toString());
返回;
}
for(char-ch:list.get(index)){
附加(ch);
dfs(列表、结果、生成器、索引+1);
builder.setLength(builder.length()-1);
}
}
}