Übungen zur Computeralgebra — Blatt 1 Dr. D. Vogel Dr. A. Maurischat Sommersemester 2012, Abgabe: Mi 25.4.2012, 9.00 Uhr 1. Aufgabe: (4 Punkte) Gegeben seien die ganzen Zahlen x = 22 und y = −19. (a) Bestimmen Sie die ternären (=3-adischen) Darstellungen von x und y. (b) Bestimmen Sie die ternäre Darstellung des Produktes z = x · y, indem Sie die gewöhnliche Multiplikation ganzer Zahlen in 3-adischer Darstellung ausführen, d.h. Algorithmus 1.7 für B = 3 anwenden. (c) Erklären Sie, wie Algorithmus 1.7 modifiziert werden muss, um für ausgewogen ternäre Darstellungen (vgl. Aufgabe 3) zu funktionieren. 2. Aufgabe: (4 Punkte) (a) Führen Sie den Algorithmus zur Division mit Rest natürlicher Zahlen (Algorithmus 1.11) in Dezimaldarstellung (=10-adischer Darstellung) mit den Zahlen x = 3471 und y = 32 durch. (b) Zeigen Sie, dass der Algorithmus zur Division mit Rest natürlicher Zahlen (Algorithmus 1.11) stets das korrekte Ergebnis liefert. Verifizieren Sie dabei insbesondere, dass in jedem Schleifendurchlauf bei Punkt (7) die Gleichheit Pm 0 i i=0 ai B qj−n = (yd)B j−n gilt. 3. Aufgabe: (4 Punkte) (Ausgewogen ternäres Zahlensystem) (a) Zeigen Sie, dass sich jede ganze Zahl z ∈ Z in der Form Pk z = i=0 ai 3i mit k ∈ N, ai ∈ {−1, 0, 1}, darstellen lässt (ausgewogen ternäre Darstellung). (b) Geben Sie einen Algorithmus an, der zu einer Zahl in Dezimaldarstellung ihre ausgewogen ternäre Darstellung berechnet. Wenden Sie den Algorithmus auf z = 15243 an (Schreiben Sie die Ziffer“ ” −1 als 1̄). (c) Zeigen Sie, dass sich das Vorzeichen einer Zahl in ausgewogen ternärer Darstellung an der höchsten Ziffer ungleich Null ablesen lässt. Wie bekommt man aus der ausgewogen ternären Darstellung von z diejenige von −z? 4. Aufgabe: (4 Punkte) (Einarbeitung in Magma) (a) Schreiben Sie in Magma eine (nicht-rekursive) Funktion Zahlensumme(n), die für eine ganze Zahl n die Summe der Zahlen 1, 2, . . . , n berechnet, falls n > 0 ist, und in diesem Fall die Summe zurückgibt. Im Fall n ≤ 0 soll der Wert 0 zurückgegeben werden. (b) Schreiben Sie in Magma eine rekursive Funktion ZahlensummeRekursiv(n), die das gleiche macht wie Zahlensumme(n), aber für n > 1 rekursiv arbeitet, soll heißen, für n > 1 wird die Gesamtsumme berechnet, indem man zur Zahl n das Ergebnis der Funktion ZahlensummeRekursiv(n − 1) hinzuaddiert. (c) Testen Sie die Funktionen Zahlensumme(n) und ZahlensummeRekursiv(n) für von Magma zufällig gewählte 4-stellige und 6-stellige Zahlen. (Zum Erzeugen zufälliger Zahlen sollte man die Funktion Random(a, b) benutzen.) Bemerkung: Beachten Sie die auf der Homepage angegebenen Hinweise/Richtlinien zu den praktischen Übungsaufgaben. Die Übungsblätter sowie weitere Informationen zur Vorlesung Computeralgebra finden Sie unter http://www.iwr.uni-heidelberg.de/~Andreas.Maurischat/compalg-ss2012