Hi,
um eine Permutation abzubilden, habe ich eine rekursive Methode geschrieben. Diese soll alle möglichen Permutationen aus z.B. drei Zahlen darstellen und zurückgeben.
Weiter unten in meinem Code rufe ich dann die Methode auf, und möchte mir alle Permutationen ausgeben lassen.
Zu den Bezeichnungen: urspr_dataist das ursprüngliche array, das ich mir am Anfang initialisiere durch static int [] urspr_data= {23,17,11};
w ist ein Laufindex, der dafür achten soll, dass die rekursive Methode abbricht.
Meine Idee ist, dass ich mir die Zahlen wie folgt ausgeben lasse:
23 17 11
22 17 11
21 17 11
...
0 17 11
_______
23 16 11
22 16 11
...
0 16 11
_______
...
...
23 0 11
...
0 0 11
_______
23 17 10
22 17 10
usw.
Der Code bildet wahrscheinlich noch nicht alle Zahlenkombinationen ab. Dies kann ich hoffentlich noch im späteren Verlauf ändern.
Mir ist bisher unklar, warum er in der System.out.-Ausgabe lediglich -1 -1 0 schreibt und nicht alle vorhergehenden Werte.
Wo habe ich den Fehler gemacht?
um eine Permutation abzubilden, habe ich eine rekursive Methode geschrieben. Diese soll alle möglichen Permutationen aus z.B. drei Zahlen darstellen und zurückgeben.
Java:
public static int[] schleife (int w, int[]data){
if (w>data.length-2){
return data;
}
else{
if (data[w]!=-1){
data[w] = data[w]-1;
return schleife(w, data);
}
else{
data[w]=urspr_data[w];
data[w+1]=data[w+1]-1;
if(data[w+1]==0){
w=w+1;
return schleife(w, data);
}
return schleife(w, data);
}
}
}
Java:
int[]test = new int[3];
test=vz.schleife(0, urspr_data);
for (Integer zahl: test){
System.out.println(zahl);
}
Zu den Bezeichnungen: urspr_dataist das ursprüngliche array, das ich mir am Anfang initialisiere durch static int [] urspr_data= {23,17,11};
w ist ein Laufindex, der dafür achten soll, dass die rekursive Methode abbricht.
Meine Idee ist, dass ich mir die Zahlen wie folgt ausgeben lasse:
23 17 11
22 17 11
21 17 11
...
0 17 11
_______
23 16 11
22 16 11
...
0 16 11
_______
...
...
23 0 11
...
0 0 11
_______
23 17 10
22 17 10
usw.
Der Code bildet wahrscheinlich noch nicht alle Zahlenkombinationen ab. Dies kann ich hoffentlich noch im späteren Verlauf ändern.
Mir ist bisher unklar, warum er in der System.out.-Ausgabe lediglich -1 -1 0 schreibt und nicht alle vorhergehenden Werte.
Wo habe ich den Fehler gemacht?