inverse Permutationen

Status
Nicht offen für weitere Antworten.

kwonilchang

Aktives Mitglied
Hallo!

Soll für die Uni ein Programm zur Nachbildung der Enigma schreiben. Im Moment hänge ich an der Implementierung der Rotoren. Ich soll für eine gegebene Permutation auch die inverse Permutation abspeichern. Eine Permutation ist ein int-Array, dass z. B. an der Stelle 0 eine 4 stehen hat, d. h. das A wird zu einem E verschlüsselt.

Das Invertieren der Permutationen bekomm ich aber nicht hin. Hab im Internet schon gesucht, aber auch nichts passendes gefunden. Gibt es da schon eine vordefinierte Methode für? Kann mir jemand erklären, wie man die inverse Permutation selber berechnen kann?

Vielen Dank!
 

javimka

Top Contributor
Eine Permutation ist ein int-Array, dass z. B. an der Stelle 0 eine 4 stehen hat, d. h. das A wird zu einem E verschlüsselt.!
Folglich wäre die inverse Operation zu dieser 4 eine -4, die aus einem E wieder ein A macht. Wenn wir 26 Buchstaben haben, wäre das 26-4 = 22. Oder habe ich dich falsch verstanden?
 

Marco13

Top Contributor
Wenn das, was ich mir intuitiv drunter vorstelle wirklich die inverse Permutation ist: Wenn eine Permutation z.B.
3 0 2 1
lautet, dann würde ich sagen, dass die inverse gerade
1 3 2 0
ist (also eben die, die die Permutation wieder rückgängig macht).

Und wenn man die erste gegeben hat, und sich das mal so ansieht:
3 0 2 1
Die 0 steht an index 1
Die 1 steht an index 3
Die 2 steht an index 2
Die 3 steht an index 0
...
Hm. Müßt' passen...
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben