Permutationen

Status
Nicht offen für weitere Antworten.
J

Jo.J

Gast
Guten Tag,

Ich hänge an folgendem Problem fest und komme nicht weiter.
Die Aufgabe war eine rekursive Methode public void permute(...) in eine Klasse Combinatorics zu implementieren, die für ein übergebenes int-Array alle Permutationen mit System.out.println(...) ausgibt, am Beispiel {1,2,3}.
Permutationen hiervon sind:
(1,2,3), (1,3,2), (2,1,3), (2,3,1), (3,1,2), (3,2,1)


Mein Ansatz bisher:
Code:
public class Combinatorics{
	public static void main(String[] args) {

//übergebenes int-Array
int[] perm = new int[6];

public void permute(1,2,3){
	for(i=1; i<4; i++){
		perm[i]=i;  //notwendig?
	}
		system.out.println("Permutation:"+getI());
	for(j=1; j<4; j++){
		perm[j]=j;  //notwendig?
		if(j!=i){
			return j;
		}
	}
		system.out.println("Permutation:"+getJ());
	for(k=1; k<4; k++){
		perm[k]=k; //notwendig?
		if(k!=j & k!=i){
			return k;
		}
	}
			system.out.println("Permutation:"+getK());
}
}
}
Ich habe wie gefordert die Methode implementiert, um diese dann rekusiv zu gestalten habe ich mich für 3 for-Schleifen entschieden, die jeweils immer unterschiedliche Werte(durch if-Anweisung festgelegt) für das gewählte Zahlenspektrum ausgeben sollen.

1. Kann man das so überhaupt verwenden?
2. Ich wollte es durch ausführen/kompilieren in eclipse ausprobieren, bekam dann aber folgende Fehlermeldung:
[Problemzeile:" public void permute(1,2,3){"]

Exception in thread "main" java.lang.Error: Unresolved compilation problems:
void is an invalid type for the variable permute
Syntax error on token "(", = expected
Syntax error on token "(", { expected after this token
Syntax error, insert "}" to complete ArrayInitializer
Syntax error, insert ";" to complete LocalVariableDeclarationStatement

at Permutation.main(Permutation.java:6)

-->"void is an invalid type for the variable permute"
Diese Zeile macht mich stutzig, es wurde in der Aufgabe doch genau gefordert diese Methode zu verwenden, warum funktioniert das Konstrukt gerade dann an der Stelle nicht oder habe ich an anderer Stelle ein Fehler gemacht, der zu diesem Bericht führte?

Bin hier gerade etwas am verzweifeln, ich hoffe auf Hilfe.
Die nächste Aufgabe ist nochmal um einiges schwerer :/

Gruß
 

muddin

Mitglied
Hi!

zu 1: ich glaube nicht, dass man das so verwenden kann... sieht jedenfalls sehr umständlich aus - und es fehlt die Rekursion!!
zu 2: public void permute(1,2,3) - das ist keine Methodendefinition. Das ist ... nichts sinnvolles jedenfalls.
Du sollst doch ein Array als argument übergeben, oder?

mfg,
 

Loep

Aktives Mitglied
Hi,

seh ich das richtig, dass du versuchst in der main()-Methode weitere Methoden zu implementieren?
Es hat auch den Anschein, dass das nur ein Teil deines Codes ist...wie sieht der Rest bzw. alles aus?

PS:
Ist das ne Kuchen-Übung?

Edit: Öhm, du hast gar keine Rekursion implementiert, so wie du es beschrieben hast... du rufst nie eine Methode in sich selbst auf.
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben