Hallo,
ich habe folgede Aufgabe zu lösen
Wir betrachten ein einfaches Verfahren zur Ver- und Entschlüsselung von Nachrichte. Die zu verschlüsselnde Nachricht sei gegeben durch eine Folge x=x0,x1,...xm-1 von m natürlichen Zahlen zwischen 0 und n-1. Wir verschlüsseln diese Nachricht x, indem wir eine Permutation pi benutzen, dei jedem Wert i E{0,1,...n-1} einen neuen Wert pi(i) E {0,1,...n-1} zuordent.
Durch diese Permutation wird jedes Folgenglied x i auf ein neues Folgenglied yi abgebildet und es entsteht die verschlüsselte Nachricht y=y0,y1,....ym-1
a) Wie lässt sich die Permutation pi in geigneten Weise speichern?
b)Schreiben Sie eine Java-Funktion, die für eine gegebene Permutation pi eine Nachricht x verschlüsselt
c) Schreiben Sie eine Java-Funktio, die bei bekannter Permutation pi, aus de verschlüsselten Nachricht y die Originalnachricht x zurückgewinnt. Die Laufzeit sollte linear in n+m sein und auf keinen Fall n*n betragen.:
Habe ganze Weile gegoogelt und bin nicht wirklich vorangekommen. Mir würde es sehr helfen wenn ihr wenn auch nur stichpunktweise wertvolle tipps geben könnt.
ich habe folgede Aufgabe zu lösen
Wir betrachten ein einfaches Verfahren zur Ver- und Entschlüsselung von Nachrichte. Die zu verschlüsselnde Nachricht sei gegeben durch eine Folge x=x0,x1,...xm-1 von m natürlichen Zahlen zwischen 0 und n-1. Wir verschlüsseln diese Nachricht x, indem wir eine Permutation pi benutzen, dei jedem Wert i E{0,1,...n-1} einen neuen Wert pi(i) E {0,1,...n-1} zuordent.
Durch diese Permutation wird jedes Folgenglied x i auf ein neues Folgenglied yi abgebildet und es entsteht die verschlüsselte Nachricht y=y0,y1,....ym-1
a) Wie lässt sich die Permutation pi in geigneten Weise speichern?
b)Schreiben Sie eine Java-Funktion, die für eine gegebene Permutation pi eine Nachricht x verschlüsselt
c) Schreiben Sie eine Java-Funktio, die bei bekannter Permutation pi, aus de verschlüsselten Nachricht y die Originalnachricht x zurückgewinnt. Die Laufzeit sollte linear in n+m sein und auf keinen Fall n*n betragen.:
Habe ganze Weile gegoogelt und bin nicht wirklich vorangekommen. Mir würde es sehr helfen wenn ihr wenn auch nur stichpunktweise wertvolle tipps geben könnt.