# inverse Permutationen



## kwonilchang (1. Dez 2009)

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 (1. Dez 2009)

kwonilchang hat gesagt.:


> 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 (1. Dez 2009)

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...


----------



## kwonilchang (1. Dez 2009)

Danke für die schnelle Hilfe.


----------

