Java, alle möglichen Kombinationen?
Hi. Vorab: Ja, ich hab schon gegoogelt. Allerdings bin ich mit dingen wie Datenstrukturen usw recht ... Einfach zu verwirren.
Ich hab ein Array, mit allen möglichen Position, also halt alle Position die es gibt. Das sieht so aus:
ArrayList<Pos> avail = new ArrayList<Pos>();
Die Klasse sieht so aus:
final class Pos {
public final int col;
public final int row;
public final int val;
Pos(int col, int row, int val) {
this.col = col;
this.row = row;
this.val = val;
}
}
Aber das Problem ist, ich brauche jede einzelne mögliche Kombination in einem Array. Nur ist das absolut verwirrend, vor allem da irgendwie überall nur mit Integern gearbeitet wird. Also, wie geht das? Danke im voraus!
Was ist die genaue Aufgabenstellung?
Es gibt ein Grid und ich muss die anzahl der Wege zum Ziel finden. Ich will alle Combis nehmen und dann sehe ich an den Koordinaten ob die letze das Ziel und die erste der Start is
Ist das Grid einfach bspw. 5x5? Oder auch rechteckig? Wie zB 3x4
Beides.
1 Antwort
Der Fachbegriff dafür heißt „Permutation“ – „Kombination“ ist etwas anderes.
Ich will alle Combis nehmen und dann sehe ich an den Koordinaten ob die letze das Ziel und die erste der Start is
Nimm doch nur die Permutationen von allen Positionen außer Start und Ziel, und klebe die beiden in Gedanken vorne und hinten an.
Und da es bei n Positionen genau n! Permutationen gibt, kannst Du diese Zahl (n−2)! leicht ausrechnen, ohne jede Permutation einzeln zu betrachten. Letzteres funktioniert eh nur bei sehr kleinen Feldern. Bei über zehn Positionen wird das bald unerträglich langsam.