Vorlesung ALP I - Übung 219500 V Algorithmen und Programmieren I Wintersemester 2003/2004 Rojas Gloye Übung 2 3. November 2003 (Abgabe 12. November 2003) Aufgabe 1 (2 Punkte) Definieren Sie eine Funktion, die die multiplikative Inverse (Modulo p) von einer Zahl x durch einen sequentiellen Test der Zahlen 1 bis p-1 findet. Dabei soll p eine Primzahl sein. Aufgabe 2 (6 Punkte) Implementieren Sie den RSA-Algorithmus für die Zahlen p=17 und q=23. Testen Sie die rsa_encode- und rsa_decode-Funktionen! Verwenden Sie eine schnelle Methode zur Berechnung der Exponentialfunktion. Aufgabe 3 (2 Punkte) Definieren Sie eine Funktion, die eine positive Dezimalzahl in 8-Tupel von Bits verwandelt. Gehen Sie wie in der Vorlesung vor, indem Sie die Zahl wiederholt dividieren. Aufgabe 4 (6 Punkte) Achtung! Änderung! Definieren Sie die Funktionen add, sub für 5-Tupel von Bits (vom Typ Int), die Zweierkomlementzahlen darstellen. Aufgabe 5 (8 Punkte) Definieren Sie die Funktionen add, sub, mul und div für rationale Zahlen. Die Zahlen sollen 2-Tupel von Ganzen Zahlen sein, wie sie in der Vorlesung eingeführt wurden (2-Tupel von Int). Die Zähler und Nenner sollen nach der Operation teilerfremd sein. Um dies zu erreichen, können die die Haskell-Funktion gcd verwenden. letzte Änderung am 3. November 2003 (Alexander Gloye)