n = p1 ¡¡¡pm

Werbung
SS 2012
Diskrete Mathematik
Vorlesung 6
Der Euklidische Algorithmus
Gröÿter gemeinsamer Teiler
Denition 1 (Teiler)
n
m
2 Z ist. Ist
m
Eine Zahl
Teiler von
Denition 2 (ggT)
n,
2N
m
ist Teiler von
schreibt man
m
j
n,
n
2 Z,
andernfalls
wenn der Quotient
m - n.
Gröÿter gemeinsamer Teiler (ggT) zweier Zahlen
diejenige gröÿte Zahl, die zugleich Teiler von
m
und
n
m; n
2 Z ist
ist. Diese Zahl ist eindeutig
bestimmt und wird mit ggT(m; n) bezeichnet.
Bemerkung 1
Für
Teiler von 0 und
Bemerkung 2
n
n >
0 ist ggT(0; n) =
nicht gröÿer als
n,
denn
n
teilt 0 und
n,
andrerseits können
sein.
n
ggT(0; 0) ist nicht deniert, denn die Menge der Teiler von 0 ist
unbeschränkt und hat kein Maximum.
Primzahlen
Denition 3 (teilerfremd)
Zwei Zahlen
m; n
2 Z heiÿen teilerfremd, wenn ggT(
m; n)
1 ist.
Denition 4 (prim)
Eine Zahl
einzigen Teiler von
sind.
Bemerkung 3
Ist
p
p
prim, so ist
p >
p
1 heiÿt prim (Primzahl), wenn 1 und
p
teilerfremd zu allen positiven Zahlen kleiner
Satz 1 (Fundamentalsatz der Arithmetik)
Primzahlen
n
=
Jede Zahl
n
die
p.
2 N kann als Produkt von
1 pm
p
dargestellt werden und unter der Bedingung
1 : : : pm :
p
ist diese Darstellung eindeutig.
oor, modulo
Denition 5 (oor)
x)
Für
die gröÿte Zahl aus
x
Z,
2 R bezeichnet b c (oor
x
die kleiner oder gleich
x
x,
ganzzahliger Anteil von
ist.
Eine Zahl x mit Rest durch eine Zahl y dividieren heiÿt: Ermitteln, welches ganzzahlige
Vielfache von y in x enthalten ist. Den verbleibenden Rest nennt man x mod y :
=
SS 2012
Diskrete Mathematik
Denition 6 (modulo)
Für
x; y
x
Im Fall
mod
b
= 0 legt man fest:
y
2 Z ist
x=y
y
=
x
y
c = 0.
Beispiel 1
3=5
3=
c
:
3
=
;
=
5 mod 3 =
5 mod
x=y
b 5 3c = 2
( 3) b5 ( 3)c = 1
5
3 b 5 3c = 1
( 3) b 5 ( 3)c =
5 mod 3 = 5
5 mod
b
Vorlesung 6
=
5
;
;
=
2:
Klassischer euklidischer Algorithmus
Den gröÿten gemeinsamen Teiler ggT(m; n) zweier Zahlen m; n
2 Z mit 0 m < n
kann
man nach Euklid rekursiv berechnen durch
ggT(0; n)
=
n
ggT(m; n)
=
ggT(n mod
(1)
m; m); m >
0:
(2)
(1) und (2) beschreiben zusammen einen Rekursionsalgorithmus. (2) stellt gleichzeitig eine
Behauptung dar.
1. Die Rekursion muss nach endlich vielen Schritten enden, nämlich dann, wenn sich
für n mod m Null ergibt.
2. Die Behauptung, die in (2) steckt, ist wahr, da jeder gemeinsame Teiler von m und
n
auch gemeinsamer Teiler von n mod m = n
Beispiel 2
m
b
n=m
c und
m
ist und umgekehrt.
ggT(54; 87) = ggT(33; 54) = ggT(21; 33) = ggT(12; 21) = ggT(9; 12) =
ggT(3; 9) = ggT(0; 3) = 3.
Erweiterter euklidischer Algorithmus
1 0
Der ggT(x ; x ) (0
x
1 < x0 ) wird berechnet durch die Rekursion
xi
+1 = xi 1
xi
b
xi
+1 = 0 und ggT(x1 ; x0") = xn 6=
# 0 endet.
1 =xi c ;
(3)
die mit xn
Mit qi =
b
xi
1 =xi c und Qi =
"
#
xi
xi
"
Aus
#
xn
xn
+1
+1
"
=
"
=
#"
a
b
0
x1
x
Qi
xi
0
1
1
1
qi
#
xi
gilt
"
und
#
"
#
0
= Qn Qn 1 Q1
{z
} x1
|
xn+1
=: a b
xn
x
#
:
folgt die Darstellung
ggT(x1 ; x0 ) =
xn
=
ax
0 + bx1
(a; b
2 Z)
:
(4)
2
SS 2012
Beispiel 3
Diskrete Mathematik
Vorlesung 6
Mit den Zahlen von Beispiel 2 gilt
"
6
x7
#
x
"
=
"
=
=
und damit
0
1
1
3
5
18
" #
3
#"
0
1
#5 "
1
1
#" #
8
87
29
87
#
54
54
0
ggT(54; 87) = 5 87 + ( 8) 54 = 3 :
Aus dieser Beziehung kann man z.B. ablesen, dass
(
8) 54 mod 87 = 79 54 mod 87 = 3
ist.
Ezienz des euklidischen Algorithmus
Benachbarte Fibonacci-Zahlen sind teilerfremd. Dies sieht man, wenn man die rekursive Berechnung der Fibonacci-Zahl Fn
+1
aufrollt und die entstehenden Gleichungen als euklidische Divi-
sionen interpretiert:
F
=1
n=1
n+1
F
n + Fn
1 = b Fnn+1 c Fn + Fn+1 mod Fn
Fn
Fn 1 + Fn 2 = b
Fn 1 c Fn 1 + Fn mod Fn 1
F
F
.
.
.
2 = 1 F1 + F0 = b FF21 c F1 + F2 mod F1
F
+1 ; Fn sind die kleinsten Eingabe-
Diese Gleichungen zeigen noch etwas: Die Fibonacci-Zahlen Fn
daten des euklidischen Algorithmus, die zu n Divisionen mit Rest führen. Benachbarte FibonacciZahlen sind also der ungünstigste Fall für den euklidischen Algorithmus, d.h. sind zur Berechnung
des ggT zweier beliebiger Zahlen x
1 < x0
mindestens n Schritte erforderlich, so ist x
0 Fn+1 .
Es lässt sich daraus herleiten, dass die Anzahl benötigter Divisionen mit Rest beim euklidischen
Algorithmus höchstens linear mit der Stellenzahl der Eingabedaten wächst.
3
Herunterladen