Vorlesung02

Werbung
Euklidische Algorithmus,
Restklassenringe
(Zm, ⊕, ⊗)
Manfred Gruber
http://www.cs.hm.edu/~gruber
SS 2008, KW 14
M.Gruber, SS 2008
Diskrete Mathematik
Gröÿter gemeinsamer Teiler
Denition 1. [Teiler]
von
n∈
von
n,
Z
, wenn der Quotient
schreibt man
m | n,
Denition 2. [ggT]
(ggT) zweier Zahlen
m∈
Eine Zahl
n
m
∈
Z
N
ist. Ist
ist Teiler
m
Teiler
m - n.
andernfalls
Gröÿter gemeinsamer Teiler
m, n ∈
Z
m
Zahl, die zugleich Teiler von
ist diejenige gröÿte
und
n
ist eindeutig bestimmt und wird mit
ist. Diese Zahl
ggT(m, n)
be-
zeichnet.
Bemerkung 1.
n
teilt
0
und
n,
nicht gröÿer als
Für
n > 0 ist ggT(0, n) = n, denn
andrerseits können Teiler von
n
Bemerkung 2.
0
und
n
sein.
ggT(0,0)
die Menge der Teiler von
0
ist nicht deniert, denn
ist unbeschränkt und hat
kein Maximum.
1
M.Gruber, SS 2008
Diskrete Mathematik
Primzahlen
Denition 3. [teilerfremd]
Z
heiÿen teilerfremd, wenn
Denition 4. [prim]
ggT(m, n) = 1
von
p
ist.
Eine positive Zahl
heiÿt prim (Primzahl), wenn
m, n ∈
Zwei Zahlen
p ∈
Z
1 und p die einzigen Teiler
sind.
Bemerkung 3.
Ist
p
prim, so ist
allen positiven Zahlen kleiner
p
teilerfremd zu
p.
Satz 1. [Fundamentalsatz der Arithmetik]
Jede Zahl
n∈
N
kann als Produkt von Primzahlen
n = p1 · · · pm
dargestellt werden und unter der Bedingung
p1 6 . . . 6 pm .
ist diese Darstellung eindeutig.
2
M.Gruber, SS 2008
Diskrete Mathematik
oor, modulo
x ∈
R
ganzzahliger Anteil von
x)
Denition 5. [oor]
x,
(oor
aus
Z
Für
, die kleiner oder gleich
Eine Zahl
x
x
bezeichnet
bxc
die gröÿte Zahl
ist.
mit Rest durch eine Zahl
y
dividieren
heiÿt: Ermitteln, welches ganzzahlige Vielfache von
in
x
y
enthalten ist. Den verbleibenden Rest nennt man
x mod
y:
Denition 6. [modulo]
Für
x, y ∈
Z
ist
x mod y = x − y · bx/yc .
Im Fall
y=0
legt man fest:
bx/yc = 0.
Beispiel 1.
5 mod 3 = 5 − 3 · b5/3c = 2,
5 mod −3 = 5 − (−3) · b5/(−3)c = −1,
−5 mod 3 = −5 − 3 · b−5/3c = 1,
−5 mod −3 = −5 − (−3) · b−5/(−3)c = −2.
3
M.Gruber, SS 2008
Diskrete Mathematik
Klassischer euklidischer
Algorithmus
Den gröÿten gemeinsamen Teiler
Zahlen
m, n ∈
Z
mit
ggT(m, n)
0 6 m < n
zweier
kann man nach
Euklid rekursiv berechnen durch
ggT(0, n) = n
(1)
ggT(m, n) = ggT(n mod 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 mod m = n − m · bn/mc
n
auch gemeinsamer Teiler von
und
m
ist und umgekehrt.
Beispiel 2.
ggT(54,87) = ggT(33,54) = ggT(21,33) =
ggT(12,21) = ggT(9,12) = ggT(3,9) = ggT(0,3) =
3.
4
M.Gruber, SS 2008
Diskrete Mathematik
Erweiterter euklidischer
Algorithmus
ggT(x1, x0) (0 6 x1 < x0)
Der
wird berechnet durch
die Rekursion
xi+1 = xi−1 − xi · bxi−1/xic ,
die mit
Mit
"
und
qi = bxi−1/xic
"
#
xi
xi+1
"
Aus
xn+1 = 0
= Qi
xn
xn+1
#
xi−1
xi
"
=
und
(3)
ggT(x"1, x0) = #xn 6= 0
Qi =
#
"
und
0
1
1
−qi
xn
a
∗
∗
x1
gilt
#
xn+1
#" #
b x0
endet.
" #
x0
= |QnQn−1
· · · Q}1
.
{z
x1
b
=: a
∗ ∗
folgt die Darstellung
ggT(x1, x0) = xn = ax0 + bx1
Z
(a, b ∈ ) .
(4)
5
M.Gruber, SS 2008
Beispiel 3.
" #
x6
x7
Diskrete Mathematik
Mit den Zahlen von Beispiel 2 gilt
"
=
0
1
"
=
=
#"
1
0
−3
5
−18
" #
3
1
#5 "
1 −1
#" #
−8 87
29
#
87
54
54
0
und damit
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.
6
M.Gruber, SS 2008
Diskrete Mathematik
Ezienz des euklidischen
Algorithmus
Benachbarte Fibonacci-Zahlen sind teilerfremd. Dies sieht man,
wenn man die rekursive Berechnung der Fibonacci-Zahl
Fn+1 auf-
rollt und die entstehenden Gleichungen als euklidische Divisionen
interpretiert:
Fn+1 = 1 · Fn + Fn−1 = b
Fn+1
Fn c
· Fn + Fn+1
mod
Fn = 1 · Fn−1 + Fn−2 = b F Fn c · Fn−1 + Fn
n−1
Fn
mod
Fn−1
..
.
F
F2 = 1 · F1 + F0 = b F2 c · F1 + F2
1
Diese
Gleichungen
Fn+1 , Fn
zeigen
noch
mod
etwas:
Die
Fibonacci-Zahlen
sind die kleinsten Eingabedaten des euklidischen Al-
gorithmus, die zu
n
Divisionen mit Rest führen. d.h. sind zur
Berechnung des ggT zweier beliebiger Zahlen
n
F1
Schritte erforderlich, so ist
x1 < x0
mindestens
x0 > 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.
7
M.Gruber, SS 2008
Diskrete Mathematik
modulo
Für
m∈
N, m > 2
und
Zm := {0, . . . , m − 1}
ten wir die Abbildung modulo
rm :
Z → Zm,
a
von
a0
betrach-
m
a 7→ a mod m = a − m · ba/mc .
Bemerkung 4.
sich
m
rm(a) = rm(a 0) genau dann, wenn
durch ein ganzzahliges Vielfaches von
m
unterscheidet.
Beweis ⇒: Aus a − m · ba/mc = a 0 − m · ba 0/mc folgt a − a 0 =
m · (ba/mc − ba 0 /mc).
⇐:
Aus
a = a 0 + km
folgt
a − m · ba/mc = (a 0 + km) − m ·
b(a 0 +km)/mc = a 0 +km−km−m·ba 0 /mc = a 0 −m·ba 0 /mc.
Bemerkung 5.
Auf
Zm
gibt es eine Addition und
eine Multiplikation:
a⊕b
:=
(a + b) mod m
a⊗b
:=
ab mod m .
8
M.Gruber, SS 2008
Beispiel 4.
(
Z6, ⊕)
Diskrete Mathematik
(Z6, ⊕, ⊗)
In
Z6
gilt folgende Additionstabelle:
⊕
0
1
2
3
4
5
0
0
1
2
3
4
5
1
1
2
3
4
5
0
2
2
3
4
5
0
1
3
3
4
5
0
1
2
4
4
5
0
1
2
3
5
5
0
1
2
3
4
ist eine kommutative Gruppe : Das neutrale
Element (der Addition) ist
0.
Jedes Element hat ein
eindeutig bestimmtes (additives) Inverses bezüglich
z.B. ist
−1 = 5,
denn
0,
1 + 5 = 0.
Mit Hilfe der Additionstabelle ist die Bestimmung der
inversen (negativen) Elemente leicht: Kreuzt sich eine Zeile mit einer Spalte in einer Null, so sind die
zugehörigen Elemente zueinander invers.
9
M.Gruber, SS 2008
In
(
Z6
Diskrete Mathematik
gilt folgende Multiplikationstabelle:
Z6, ⊗)
⊗
0
1
2
3
4
5
0
0
0
0
0
0
0
1
0
1
2
3
4
5
2
0
2
4
0
2
4
3
0
3
0
3
0
3
4
0
4
2
0
4
2
5
0
5
4
3
2
1
ist eine kommutative Halbgruppe : Es gibt ein
neutrales Element der Multiplikation, nämlich
ist
(
Z6, ⊗)
Element).
1. Damit
ein sog. Monoid (Halbgruppe mit neutralem
1
und
5
sind invertierbar (
1
1
= 1, 15 = 5),
die
anderen Elemente nicht.
(
Z6, ⊕, ⊗)
ist ein kommutativer Ring mit Einsele-
ment, jedoch kein Integritätsbereich, d.h. es gibt sog.
Nullteiler; z.B. ist
2 · 3 = 0.
10
M.Gruber, SS 2008
Man kann
beliebige
⊕
Diskrete Mathematik
und
a, b ∈
Z
⊗
auf
ausdehnen, indem man für
deniert:
a⊕b
=
(a mod m) ⊕ (b mod m)
(5)
a⊗b
=
(a mod m) ⊗ (b mod m) .
(6)
Bemerkung 6.
Die Formeln (5) und (6) machen
das Rechnen modulo
1.
Z
Rechnen
mit
⊕:
Mit
m
leicht.
m = 6
rechnet
man
z.B.
(2539 +
7677) mod 6 = ((2539 mod 6) + (7677 mod 6)) mod 6 =
(1 + 3) mod 6 = 4.
2.
Rechnen
mit
⊗:
Mit
m = 6
rechnet
man
z.B.
(2539 ·
7677) mod 6 = ((2539 mod 6) · (7677 mod 6)) mod 6 = (1 ·
3) mod 6 = 3.
3.
ggT(2539,7677) mod 6
=
ggT(2539 mod 6,7677 mod
6) = ggT(1,3) = 1, denn es gilt allgemein ggT(x, y) = ax+
by mit geeigneten a, b ∈ Z und deshalb ggT(x, y) mod m =
(a mod m) · (x mod m) + (b mod m) · (y mod m).
11
M.Gruber, SS 2008
Diskrete Mathematik
Modulare Inverse
Denition 7. [modulare Inverse]
x ∈
Zm
invertierbar, wenn es ein
das
x⊗y = 1
von
x.
gilt.
y
Man
y ∈
Zm
nennt
gibt, für
heiÿt dann modulare Inverse
Die Menge der invertierbaren Elemente von
bezeichnet man mit
Satz 2.
x∈
Z∗m
Z∗m
.
genau dann, wenn
fremd sind, d.h. wenn
Zm
ggT(x, m) = 1
x
und
m
teiler-
gilt.
Beweis Wir zeigen: x invertierbar ⇒ x und m teilerfremd. Wenn
x ∈ Zm invertierbar ist, gibt es ein y ∈ Zm mit x ⊗ y = 1 in Zm ,
d.h. xy − m · bxy/mc = 1 in Z. Aus der letzten Gleichung folgt
aber, dass jeder gemeinsame Teiler (in Z) von x und m auch ein
Teiler von
1
ist.
Nun zeigen wir:
x und m teilerfremd ⇒ x invertierbar. Sind x und
m teilerfremd, dann gibt es (erweiterter euklidischer Algorithmus)
a, b ∈
Z
mit
ax + bm = 1.
m)(x mod m) = 1.
Damit gilt auch
a ⊗ x = (a mod
12
M.Gruber, SS 2008
Diskrete Mathematik
Bemerkung 7.
In Beispiel 4 war
Z∗6 = {1,5}
. Nun
weiÿ man auch, wieso.
Bemerkung 8.
verse in
Zm
Wie berechnet man modulare In-
? Mit dem erweiterten euklidischen Algo-
rithmus! Für einen gröÿten gemeinsamen Teiler
d (in
Z
)
von
x und m erhält man die Darstellung d = ax + bm.
Ist
d mod m 6= 1,
d mod m = 1,
so ist
so ist
x
x
nicht invertierbar. Ist
invertierbar und
a mod m
das modulare Inverse von
x.
Bemerkung 9.
eine Primzahl, so ist jedes
Element von
diesem Falle
Ist
p
Zp \ {0}
Zp \ {0} = Z∗p
x∈
teilerfremd zu
p,
also ist in
.
13
M.Gruber, SS 2008
Diskrete Mathematik
Literatur
[CM] Ronald L. Graham, Donald E. Knuth and Oren Patashnik,
Concrete Mathematics: A Foundation for Computer Science.
Addison-Wesley, 1989; second edition, 1994.
http://www-cs-faculty.stanford.edu/~knuth/gkp.
html
14
Herunterladen