Caesar-Verschlüsselung mit fortschreitender Quelle - Umkehralgorithmus |
01.12.2013, 19:37 | Auf diesen Beitrag antworten » | |||||
InformaTiger | Caesar-Verschlüsselung mit fortschreitender Quelle - Umkehralgorithmus Hallo, ich bin ziemlich am verzweifeln... den "Hinweg" - Algorithmus habe ich Problemlos hingekriegt, aber der "Rückweg" - Algorithmus macht nur probleme... Dies ist der "Hinweg" - Algorithmus:
Kann mir jemand einen Ansatz geben wie ich den hier umkehren kann? Weitere Details: Caesar Verschlüsselung mit fortschreitender Quelle Der gesamte Quellcode ist als Anhang mitdabei. Danke, schon im voraus. Mfg InformaTiger |
|||||
|
||||||
01.12.2013, 20:17 | Auf diesen Beitrag antworten » | |||||
eulerscheZahl |
|
|||||
02.12.2013, 14:28 | Auf diesen Beitrag antworten » | |||||
InformaTiger | Man erkennt wiedermal den unterschied zwischen einem Anfänger und einem Proficode.... Die String.Contains Methode erspart es dir eine eigene Methode zu schreiben, das ist klar. Mit der IndexOf Methode kannst du ein Zeichen sozusagen finden, wenn ich das richtig verstanden habe. Das einzige was ich dann noch nicht ganz verstehe ist die Sache mit dem Modulo, wobei ich mir denke, dass dir diese erspart zu kontrollieren ob sich das Zeichen innerhalb des Alphabets befindet. Danke Mfg InformaTiger |
|||||
02.12.2013, 16:22 | Auf diesen Beitrag antworten » | |||||
eulerscheZahl | Noch besser wäre es gewesen, wenn ich für das Ergebnis einen StringBuilder genommen hätte (wegen besserer Performance) Contains und IndexOf hast du richtig erkannt. Zum Modulo: Mein Alphabet vom Beispielaufruf hat 26 Zeichen. Wenn ich z.B. den Buchstaben X(=23, wenn A=0) und eine Verschiebung von 5 habe, dann ist die Summe 28, was größer als Z(=25) ist. Durch das Modulo sorge ich dafür, dass die 28 zur 2 wird, also wieder von Vorne begonnen. Beim Entschlüsseln muss ich die Verschiebung aber abziehen, nicht aufaddieren. Modulo kann bei negativer Eingangszahl aber auch negative Zahlen liefern (hier Intervall [-25;0]), hier wäre ich außerhalb des Arraybereichs. Um sicherzustellen, dass ich eine positive Zahl habe, addiere ich daher 26 und rechne dann (wegen 0+26 = 26 bzw. positivem Ergebnis nach 1. Modulo) nochmals Modulo 26. |
|||||
Anzeige | ||||||
|
|
Verwandte Themen
Die Beliebtesten » |
|
Die Größten » |
|
Die Neuesten » |
|