Moin,
ich muss für die Bundesliga, alle Möglichkeiten der Belegung der noch offene Spielen berechnen.
Ich habe zwar eine Lösung, die jedoch extrem rechenintensiv ist und meinen Rechner in die Knie zwingt.Hat jemand hier Erfahrung mit derartigen Problemen und kann mir weiterhelfen meine Lösung zu optimieren?
hier ist mein code
S steht für Sieg, U für unentschieden und N Niederlage. reste_games steht für die offene Spiele.
Danke im Voraus
ich muss für die Bundesliga, alle Möglichkeiten der Belegung der noch offene Spielen berechnen.
Ich habe zwar eine Lösung, die jedoch extrem rechenintensiv ist und meinen Rechner in die Knie zwingt.Hat jemand hier Erfahrung mit derartigen Problemen und kann mir weiterhelfen meine Lösung zu optimieren?
hier ist mein code
Code:
public class Combinations {
public ArrayList<ArrayList<String>> calculate_combinations(int rest_games) {
String[] perm = new String[(int) Math.pow(3, rest_games)];
ArrayList<ArrayList<String>> Lists = new ArrayList<ArrayList<String>>();
String[][] sets = new String[rest_games][3];
for (int l = 0; l < rest_games; l++) {
for (int j = 0; j < 3; j++) {
if (j == 0) {
sets[l][j] = "S,";
}
if (j == 1) {
sets[l][j] = "U,";
}
if (j == 2) {
sets[l][j] = "N,";
}
}
}
combine(sets, 0, "", perm, Lists, rest_games);
return Lists;
}
public void combine(String[][] list, int index, String comb,
String[] perm, ArrayList<ArrayList<String>> Lists, int rest_games) {
int j = 0;
int k = 0;
ArrayList<String> tmp = new ArrayList<String>();
if (index == list.length)
return;
for (String i : list[index]) {
combine(list, index + 1, comb + i, perm, Lists, rest_games);
if (index == list.length - 1) {
perm[j] = comb + i;
String[] parts = perm[j].split(",");
for (int l = 0; l < rest_games; l++) {
tmp.add(l, parts[l].trim());
}
k++;
Lists.add(j, tmp);
tmp = new ArrayList<String>();
j++;
}
}
}
}
Danke im Voraus