Einfuehrung in die Computeralgebra

Werbung
Einführung in die Computeralgebra - Übungsblatt 1
Wintersemester 2009/2010
Michael Stoll
26. Oktober 2009
(1) Ergänzen Sie im Pseudocode für die Addition zweier ganzer Zahlen den Teil für
die Subtraktion.
(2) Schreiben Sie ein Programm (Pseudocode) für die Schulmethode fürs Multiplizieren zweier ganzer Zahlen. Für die Multiplikation stellt der Prozessor einen
Befehl entsprechend der Relation
r+s·B =u·v
zur Verfügung, wobei u und v die Eingabeworte und r und s die Ausgabeworte
sind.
(3) Prüfen Sie experimentell, ob MAGMA große ganze Zahlen (oder Polynome großen
Grades über einem endlichen Körper) mittels eines Algorithmus quadratischer
Komplexität multipliziert, etwa indem Sie die Befehle
> N := 10^6; a := Random(2^(N-1), 2^N-1); time b := a*a;
verwenden (für verschiedene Werte von N ).
(4) Formulieren Sie die Schulmethode für die Division mit Rest (mit a ≥ 0 und
b > 0) als Pseudocode für die von uns gewählte Darstellung ganzer Zahlen. Für
die Division stellt der Prozessor einen Befehl entsprechend der Relation
a0 + a1 B = qb + r ,
0≤r<b
zur Verfügung, wobei a0 , a1 , b (mit b > 0, a1 < b) die Eingabeworte und q, r die
Ausgabeworte sind.
(5) Analysieren Sie die Komplexität des folgenden binären Euklidischen Algorithmus
(für a, b ≥ 0):
function ggT(a, b)
if a = 0 then return b end if
s←1
while 2 | a do
a ← a/2
if 2 | b then b ← b/2; s ← 2 · s end if
end while
while true do
if b = 0 then return s · a end if
while 2 | b do b ← b/2 end while
(a, b) ← (b, |a − b|)
end while
end function
Herunterladen