Permutationen aus Satzbausteinen

jimb0p

Erfahrenes Mitglied
Hallo Zusammen,

ich habe eine ArrayList<ArrayList<String>>. Diese ArrayList enthält 33 ArrayList<String>. Die enthaltenen ArrayListen enthalten jeweils drei Werte, so genannte Teilsätze. Jetzt möchte ich dass aus dieser ArrayList<ArrayList<String>> mir alle Satzkombinationen ausgegeben werden. Zur Veranschaulichung:

Drei Spalten die jeweils 1,2,3 enthalten können.

1,1,1
1,1,2
1,1,3
1,2,1
1,2,2
1,2,3
1,3,1
usw.

Ich habe schon einiges rumprobiert leider ohne Erfolg. Hier ist mein letzter Stande:

Java:
public void writeTxtElements() throws IOException{
		FileWriter fw = new FileWriter(new File("texte.txt"));
		for(int k = 0; k < txtElements.size(); k++){
			for(int i = 0; i < txtElements.get(0).size(); i++){
				for(int j = 0; j < txtElements.size(); j++){
					fw.append(txtElements.get(j).get(i)+" ");
				}
			}
			fw.append("\n\n");
		}
		fw.flush();
		fw.close();
		System.out.println("fertig.");
}
 
Zuletzt bearbeitet:
Mir ist trotz Veranschaulichung nicht klar, was womit kombiniert werden kann.

Zurzeit hört es sich so an:
Die 33 Arraylisten sind einzeln zu behandeln
Pro AL von den 33 nimmt man die Strings 1,2,3 und gibt aus:
111
112
113
121
122
123
131
132
133
211
212
213
221
222
223
231
232
233
311
312
313
321
322
323
331
332
333
 
Achso, habe ich falsch Verstanden. Also zum verdeutlichen noch die Info: Ich habe einen Satz der aus 33 Bestandteilen besteht. Pro Bestandteil gibt es 3 Synonyme. Daraus möchte ich dann jede mögliche Satzkombination generieren. Daher gibt es einer ArrayList, die 33 ArrayList<String> enthält und diese wiederrum enthält die 3 Synonyme.
 
Ich glaube dann ist Permutation aber nicht das richtige Wort. Ich würde hier eher zur Rekursion greifen. Bist du dir bewusst, dass es nach deiner Beschreibung 5.559.060.566.555.523 Möglichkeiten gibt?

Daher frage ich mal ganz unverblümt, ob ich es nun richtig verstanden habe... angenommen deine ArrayList hat nur die Länge von 3 mit diesen Werten:
A B C
a b c
1 2 3
Dann würdest du folgende Varianten sehen wollen:
A a 1
A a 2
A a 3
A b 1
A b 2
A b 3
A c 1
A c 2
A c 3
// das gleiche nochmal mit B und C
 
Zuletzt bearbeitet:
Das habe ich auch gerade gemerkt :D überlege jetzt die Bestandteile der Sätze zu reduzieren oder sie per Zufall zu generieren. Das korrektere Wort wäre Kombination dann oder?
 
Bei Kombination und Permutation liegen m.E. an jeder Position die gleichen Elemente zugrunde. Du hast aber an jeder Position eine neue Menge an 3 Elementen, d.h. eigentlich wäre ein Satz eine Aneinanderreihung von der Kombination 1 aus 3. Wie genau man soetwas mathematisch nennen würde weiß ich spontan leider auch nicht. Vermutlich würde ich sagen: "Koordination von kombinatorischen Elementen"
 
Zuletzt bearbeitet:
Schön langsam kenn ich mich immer weniger aus.

Annahme, deine Al aus ALs ist nicht 33 lang, sondern nur 2.
Beide Innen-ALs haben 3 Elemente

AL1: A1, B2, C3
AL2: D4, E5, F6
(normalerweise bis AL33 weiter)

Schreib jetzt bitte alle Ergebnisse auf, die du gern hättest. Wirklich alle.
 

Neue Beiträge

Zurück