Я знаю, что уже существует масса подобных вопросов, но ни один из них не решает мой вопрос.
Учитывая массив символов, я хочу чтобы иметь возможность
Я хочу создать список всех возможных комбинаций с этими символами определенной длины. И для каждого элемента списка я хочу записать его в отдельную строку выходного файла.
Обратите внимание, что этот код должен быть предназначен для использования с большими наборами элементов. цифры. (Я хочу использовать его для набора данных длиной 36 символов и хочу сгенерировать строку длиной 32). Я знаю, что существует 6.3340286662e+49 возможных ответов, и хочу, чтобы эта функция сгенерировала все из них .
int[] a ={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','1','2','3','4','5','6','7','8','9','0'};
calc(a,32);
Я действительно не знаю, как мне структурировать алгоритм
Это мой код на данный момент, я знаю, что его немного, я буду добавлять больше кода по мере работы:
import java.io.FileWriter;
import java.io.PrintWriter;
import java.util.Random;
public class generator {
public static void gen(int[] i, int l) {
FileWriter fileWriter = new FileWriter("out.txt");
PrintWriter printWriter = new PrintWriter(fileWriter);
//printWriter.print("Some String");
boolean gotAll = false;
Random rand = new Random();
while (!gotAll) {
String newStr = "";
//not the best way to algorithmically get all possible outcomes
for (int y = 0; y < l; y++) {
//randomly generating characters from array
newStr += i[rand.nextInt(i.length)];
}
//need to check for duplicate generation
printWriter.println(newStr);
}
}
public static void main(String[] args) {
int[] i = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0'};
try {
gen(i, 32);
} catch (IOException e) {
e.printStackTrace();
}
}
}
Лучший способ получить все возможные результаты, который я могу придумать, — это продолжать генерировать случайным образом числа до тех пор, пока они все не будут найдены. Очевидно, что это требует очень много времени и ресурсов (а решение неизбежно будет).
Я знаю, что уже существует масса подобных вопросов, но ни один из них не решает мой вопрос.
Учитывая массив символов, я хочу чтобы иметь возможность Я хочу создать список всех возможных комбинаций с этими символами определенной длины. И для каждого элемента списка я хочу записать его в отдельную строку выходного файла.
Обратите внимание, что этот код должен быть предназначен для использования с [b]большими[/b] наборами элементов. цифры. (Я хочу использовать его для набора данных длиной 36 символов и хочу сгенерировать строку длиной 32). Я знаю, что существует 6.3340286662e+49 возможных ответов, и хочу, чтобы эта функция сгенерировала все из них .
Вот пример ввода/вывода:
Ввод:
[code]int[] a ={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','1','2','3','4','5','6','7','8','9','0'};
Я действительно не знаю, как мне структурировать алгоритм Это мой код на данный момент, я знаю, что его немного, я буду добавлять больше кода по мере работы:
public class generator { public static void gen(int[] i, int l) { FileWriter fileWriter = new FileWriter("out.txt"); PrintWriter printWriter = new PrintWriter(fileWriter); //printWriter.print("Some String"); boolean gotAll = false; Random rand = new Random(); while (!gotAll) { String newStr = ""; //not the best way to algorithmically get all possible outcomes for (int y = 0; y < l; y++) { //randomly generating characters from array newStr += i[rand.nextInt(i.length)]; } //need to check for duplicate generation printWriter.println(newStr); } }
Лучший способ получить все возможные результаты, который я могу придумать, — это продолжать генерировать случайным образом числа до тех пор, пока они все не будут найдены. Очевидно, что это требует очень много времени и ресурсов (а решение неизбежно будет).
Я знаю, что уже существует масса подобных вопросов, но ни один из них не решает мой вопрос.
Учитывая массив символов, я хочу чтобы иметь возможность
Я хочу создать список всех возможных комбинаций с этими символами определенной длины. И для каждого...
Я знаю, что уже существует масса подобных вопросов, но ни один из них не решает мой вопрос.
Учитывая массив символов, я хочу чтобы иметь возможность
Я хочу создать список всех возможных комбинаций с этими символами определенной длины. И для каждого...
Я знаю, что уже существует масса подобных вопросов, но ни один из них не решает мой вопрос.
Учитывая массив символов, я хочу чтобы иметь возможность
Я хочу создать список всех возможных комбинаций с этими символами определенной длины. И для каждого...
Я знаю, что уже существует масса подобных вопросов, но ни один из них не решает мой вопрос.
Учитывая массив символов, я хочу чтобы иметь возможность
Я хочу создать список всех возможных комбинаций с этими символами определенной длины. И для каждого...
Я знаю, что уже существует масса подобных вопросов, но ни один из них не решает мой вопрос.
Учитывая массив символов, я хочу чтобы иметь возможность
Я хочу создать список всех возможных комбинаций с этими символами определенной длины. И для каждого...