Permutation eines Arrays mit Wiederholung in Java

8

Es gibt einige ähnliche Fragen auf der Seite, die etwas geholfen haben, aber ich kann dieses Problem nicht ganz festhalten, also hoffe ich, dass sich das nicht wiederholt.

Dies ist eine Hausaufgabe, bei der Sie ein festgelegtes Array von Zeichen [A, B, C] haben und Rekursion verwenden müssen, um alle Permutationen (mit Wiederholung) zu erhalten. Der Code, den ich habe, macht das so:

%Vor%

Allerdings sollte der Parameter n die Länge der Ausgabe definieren. Während also diese Funktion alle Permutationen der Länge 3 ausgibt, kann sie nicht die Länge 2 haben. Ich habe alles versucht, was mir einfällt, und habe über Google nachgedacht Suchergebnisse, und ich bin mit mir selbst verschärft, weil ich nicht in der Lage bin, ein scheinbar einfaches Problem zu lösen.

    
user1788424 31.10.2012, 12:10
quelle

4 Antworten

6

Wenn ich richtig verstanden habe, erhalten Sie eine Menge von Zeichen c und die gewünschte Länge n .

Technisch gibt es keine Permutation mit Wiederholung. Ich nehme an, dass Sie alle Zeichenfolgen der Länge n mit Buchstaben von c wollen.

Sie können es so machen:

%Vor%

Im Code:

%Vor%     
John Dvorak 31.10.2012, 12:42
quelle
2

Ich benutze diese Java-Realisierung von Permutationen mit Wiederholungen. A ~ (n, m): n = Länge der Anordnung, m = k. m kann größer oder kleiner als n sein.

%Vor%

Beispielausgabe ist

%Vor%     
Ilya Slyisarenko 18.10.2016 06:49
quelle
1

Ich hatte gerade eine Idee. Was ist, wenn Sie ein verstecktes Zeichen (H für versteckt) [A, B, C, H] hinzugefügt haben, dann haben Sie alle Permutationen mit fester Länge gemacht (Sie sagten, Sie wissen, wie man das macht). Wenn Sie es dann ablesen, hören Sie bei dem versteckten Zeichen auf, z. [B, A, H, C] würde (B, A) werden.

Hmm, der Nachteil ist, dass Sie verfolgen müssten, welche Sie erstellt haben, obwohl [B, H, A, C] dasselbe ist wie [B, H, C, A]

    
Darren 31.10.2012 12:17
quelle
1

Hier ist c # Version, um die Permutationen einer gegebenen Zeichenfolge mit Wiederholungen zu erzeugen:

(wesentliche Idee ist - Anzahl der Permutationen von String der Länge 'n' mit Wiederholungen ist n ^ n).

%Vor%

Nachfolgend finden Sie die entsprechenden Komponententests:

%Vor%     
Dreamer 08.08.2014 11:42
quelle

Tags und Links