Diskrete Strukturen - Technische Universität München

Werbung
Technische Universität München
Fakultät für Informatik
Lehrstuhl für Effiziente Algorithmen
Prof. Dr. Ernst W. Mayr
Wintersemester 2005
Lösungsblatt 6
6. Dezember 2005
Diskrete Strukturen
Aufgabe 1
Wir betrachten die ganzzahlige Division a ÷ b zweier Zahlen a ∈ Z, b ∈ N und die zugehörige modulo-Operation a mod b, für die gilt
a = (a ÷ b) · b + (a mod b) ,
mit 0 ≤ a mod b < b.
1. Zeigen Sie für alle a, b ∈ Z und m ∈ N
(a + b) mod m = [(a mod m) + (b mod m)] mod m ,
(a · b) mod m = [(a mod m) · (b mod m)] mod m ,
a ≡ (a mod b) mod b .
2. Berechnen Sie (1017 + 523 − 30100 ) mod 3 !
3. Berechnen Sie 7999999 mod 11 und 27346790100 mod 12 !
Benutzen Sie, wenn möglich, den kleinen Satz von Fermat.
Lösungsvorschlag
1. Für den Beweis von Gleichungen modulo einer natürlichen Zahl m kann man die
folgende einfache Kennzeichnung benutzen.
Für alle ganzen Zahlen x, y mit 0 ≤ x, y < m gilt:
x=y
⇐⇒
(∃k ∈ Z) [y = x + k · m] .
(a) Wir setzen nun
x := (a + b) mod m ,
y := [(a mod m) + (b mod m)] mod m .
Es gilt 0 ≤ x, y < m und
x
y
(a mod m)
(b mod m)
=
=
=
=
a + b + kx · m ,
(a mod m) + (b mod m) + ky · m ,
a + ka · m ,
b + kb · m
für gewisse ka , kb , kx , ky ∈ Z. Nun folgt
a + ka · m + b + kb · m + ky · m
x − kx · m + k a · m + kb · m + ky · m
x + (ka + kb + ky − kx ) · m
x + k · m.
y =
=
=
=
Mit der eingangs gegebenen Kennzeichnung folgt x = y.
(b) Zum Beweis der 2. Gleichung setzen wir
x := (a · b) mod m ,
y := [(a mod m) · (b mod m)] mod m .
Es gilt 0 ≤ x, y < m und
x
y
(a mod m)
(b mod m)
=
=
=
=
a · b + kx · m ,
(a mod m) · (b mod m) + ky · m ,
a + ka · m ,
b + kb · m
für gewisse ka , kb , kx , ky ∈ Z. Nun folgt
y =
=
=
=
(a + ka · m) · (b + kb · m) + ky · m
x − kx · m + ka · m · b + a · kb · m + k a · m · kb · m + ky · m
x + (ka · b + kb · a + ka · kb · m + ky − kx ) · m
x + k · m.
Mit der eingangs gegebenen Kennzeichnung folgt wieder x = y.
(c) Die Kongruenz modulo m ist definiert durch
x≡y
mod b
:⇐⇒
(∃k ∈ Z) [ x = y + k·b ] .
Nach Definition von a mod b gilt für ein bestimmtes k ∈ Z gilt
a mod b = a + k·b ,
d. h. a = a mod b + k 0 ·b ,
mithin
a ≡ (a mod b)
mod b .
2. Wir benützen die obigen Rechenregeln und erhalten
(1017 +523 −30100 ) mod 3 =
=
=
=
=
[(10 mod 3)17 +(5 mod 3)23 −(30 mod 3)100 ] mod 3
[117 + 223 − 0100 ] mod 3
(1 + 411 · 2) mod 3
(1 + (4 mod 3)11 · 2) mod 3
(1 + 2) mod 3 = 0 .
2
3. (a) Nach dem kleinen Satz von Fermat gilt für die Primzahl p = 11
7p−1 ≡ 1
mod p
und folglich
5
(710 )10 ≡ 1
mod 11 .
Es folgt
7999999 · 7 ≡ 1
mod 11 ,
7999999 · 7 · 8 ≡ 8
mod 11 ,
und wegen (7 · 8) mod 11 = 1 folgt
7999999 ≡ 8
mod 11 .
(b) Die Potenzen 2k müssen sich modulo 12 wiederholen. Man rechnet z. B. sofort
22 ≡ 24 mod 12. Also lassen sich die Potenzen n ≥ 4 von 2 gleichwertig um 2
verringern, d. h. für alle k ∈ N0
24+k ≡ 22+k
mod 12 .
Für gerade, positive Potenzen n = 2 + 2k von 2 ergibt sich per Induktion
2n ≡ 22
mod 12 .
Mithin folgt
27346790100 mod 12 = 4 .
Aufgabe 2
1. Zeigen Sie: Die Menge aller Elemente endlicher Ordnung in einer abelschen Gruppe
bildet eine Untergruppe.
2. Zeigen Sie: In einem beliebigen Ring hR, +, ·, 0, 1i gelten die folgenden Gleichungen.
a · 0 = 0 · a = 0,
a · (−b) = (−a) · b = −a · b .
3. Zeigen Sie, dass der Ring hZ3 , +3 , ·3 , 0, 1i ein Körper ist.
4. Die Charakteristik eines Körpers K, i. Z. char(K), ist definiert als die Ordnung des
Elements 1 in der additiven Gruppe von K. Man zeige:
p = char(K) ∈ N ⇒ p ist eine Primzahl .
5. Geben Sie die Verknüpfungstafeln eines Körpers mit 4 Elementen an. Welche Charakteristik hat dieser Körper?
Begründen Sie Ihre Angaben!
3
Lösungsvorschlag
1. Sei U die Menge aller Elemente endlicher Ordnung einer abelschen Gruppe hG, +, 0i,
d. h. U = {x ∈ G; (∃n ∈ N0 ) [n · x = 0]}. Wir zeigen
(a) Abgeschlossenheit von +: Seien x, y ∈ U , d. h. mx = 0, ny = 0 für gewisse
m, n ∈ N0 . Es folgt mn(x + y) = 0, d. h. x + y ∈ U .
(b) Neutrales Element in U: Wegen z. B. 1 · 0 = 0 gilt 0 ∈ U .
(c) Abgeschlossenheit gegen Inversenbildung: Sei x ∈ U , d. h. nx = 0 für ein
n ∈ N0 . Dann gilt auch nx + n(−x) = 0, also n(−x) = 0, mithin −x ∈ U .
2. Es gilt a · 0 = a · (0 + 0) = a · 0 + a · 0. Daraus folgt a · 0 = 0. Analog folgt 0 · a = 0.
Andererseits gilt 0 = a · 0 = a · (b − b) = a · b + a · (−b). Daraus folgt −a · b = a · (−b).
Analog folgt −a · b = (−a) · b.
3. Wir haben nur zu zeigen, dass die kommutative Halbgruppe hZ3 \ {0}, ·3 , 1i sogar
eine (abelsche) Gruppe ist.
Es gilt Z3 \{0} = {1, 2}. Wegen 2 ·3 2 = 1 ist 2 zu sich selbst invers. Andererseits ist
1 trivialerweise ebenfalls zu sich selbst invers.
4. Zur besseren Unterscheidung schreiben wir die Multiplikation in K als ◦. Wir betrachten p = s · t. Dann gilt nach dem Distributivgesetz von ◦
(1| + 1 +
{z. . . + 1}) ◦ (1| + 1 +
{z. . . + 1}) = (1| + 1 +
{z. . . + 1}) = 0 ,
s ×
t ×
s·t ×
oder anders geschrieben
(s · 1) ◦ (t · 1) = (s · t) ◦ 1 = p · 1 = 0 .
Da ein Körper nullteilerfrei ist, folgt s · 1 = 0 oder t · 1 = 0. Da p die Charakteristik
der additiven Gruppe von K ist, muss s ≥ p oder t ≥ p gelten, d. h. p = s oder
p = t. Damit kann aber p keine echten Teiler enthalten.
5. Die Charakteristik eines Körpers K mit 4 Elementen ist notwendig gleich 2, weil sie
sowohl Primzahl ist als auch Teiler der Anzahl der Körperelemente. Letzteres muss
gelten, weil die Ordnung der von 1 additiv erzeugten Untergruppe die Ordnung von
K teilen muss nach dem Satz von Lagrange.
Damit gilt 1 + 1 = 0. Die Multiplikation mit einem x 6= 0 ergibt x + x = 0. Damit ist
die additive Gruppe identisch mit der in Blatt 5, Aufgabe 1 hergeleiteten Gruppe
Z2×2 mit der dort zu entnehmenden Verknüpfungstafel.
Die multiplikative Gruppe von K besitzt drei Elemente 1, b, c. Für die Verknüpfungstafel gilt zunächst
◦ 1 b c
1 1 b c
b b × ?
c c
4
Falls man an die Stelle × die 1 setzen würde, entstünde an der Stelle ? ein Widerspruch zur Kürzungsregel. Die Vervollständigung ergibt sich damit zwingend wie
folgt.
◦ 1 b c
1 1 b c
b b c 1
c c 1 b
Aufgabe 3
In gewissen kommutativen Ringen R = hS, +, ·, 0, 1i stellt sich der erweiterte Euklidsche
Algorithmus zur Berechnung des größten gemeinsamen Teilers ggT (a, b) zweier Elemente
a ∈ S und b ∈ S dar als eine iterierte Transformation (Matrixmultiplikation) Qi angewandt auf ∆i−1 wie folgt.
a
ri
0 1
ri−1
∆0 =
, ∆i =
= Qi ∆i−1 =
, i := 1, 2, . . . , n ∈ N .
b
ri+1
1 −qi
ri
Dabei werden die Quotienten qi so gewählt (geschätzt), dass die ∆i mit wachsendem i in
einem gewissen Sinn stets echt kleiner werden. Eine Berechnung wird beendet, wenn die
Folge der ∆i maximale Länge besitzt, d. h. wenn kein Quotient existiert, der die Bildung
eines noch kleineren Restes erlaubt. Zur Bemessung der Größe von Elementen eines Ringes dient beispielweise im Ring der ganzen Zahlen hZ, +, ·, 0, 1i die Betragsfunktion. In
Polynomringen wird der Grad eines Polynoms verwendet.
Wir betrachten im Folgenden den Ring hZ, +, ·, 0, 1i der ganzen Zahlen.
1. Zeigen Sie für alle ensprechenden i
ggT (a, b) = ggT (ri , ri+1 ).
2. Berechnen Sie mit dem Euklidschen Algorithmus den ggT (10800, 122).
3. Berechnen Sie mit dem erweiterten Euklidschen Algorithmus ganze Zahlen m, n, so
dass
81m + 128n = 1.
4. Bestimmen Sie mit dem erweiterten Euklidschen Algorithmus einen größten gemeinsamen Teiler der Polynome x5 − 5x4 + 4x3 + 2x2 − 12x + 10 und x2 − 1. Die Polynome
werden im Ring Q[x] betrachtet.
Lösungsvorschlag
1. Gemeinsame Teiler zweier Ringelemente ri−1 , ri übertragen sich auf deren Linearkombinationen sri−1 + tri . Falls x Teiler von ri−1 und von ri , i. Z. x|ri−1 ∧ x|ri ,
gilt
sri−1 + tri = sxh + txk = (sh + tk)x
für gewisse Faktoren h, k ∈ R, mithin x|(sri−1 + tri ).
5
Die Matrixmultiplikation liefert eine Linearkombination wie folgt.
ri
ri
0 1
ri−1
=
=
.
ri+1
ri−1 − qi ri
1 −qi
ri
Da die Matrix invertierbar ist mit
−1
Q
=
qi 1
1 0
,
haben die Komponentenpaare der ∆i für alle i die gleichen Teiler.
2. Wir rechnen im Ring der ganzen Zahlen.
Im Euklidschen Algorithmus für den Ring ganzer Zahlen zur Berechnung des ggT (a, b)
werden die Quotienten qi durch ganzzahlige Division bestimmt.
qi = ri−1 ÷ ri .
Für die Linearkombination ri+1 = ri−1 − qi ri folgt dann
ri+1 = ri−1 mod ri .
Die Berechnung wird beendet, wenn rn+1 = 0 eintritt für irgendein n ∈ N.
r0
r1
r2
r3
r4
r5
r6
r7
=
=
=
=
=
=
=
=
10800 ,
122 ,
10800 mod 122 = 64 ,
122 mod 64 = 58 ,
64 mod 58 = 6 ,
58 mod 6 = 4 ,
6 mod 4 = 2 ,
4 mod 2 = 0 .
Ergebnis: ggT (10800, 122) = r6 = 2.
3. Der erweiterte Euklidsche Algorithmus läßt sich als Matrixmultiplikation wie folgt
darstellen
rn
a
= Qn · Qn−1 · . . . · Q2 · Q1 ·
.
rn+1
b
Mit
Pk :=
k
Y
Qi ,
k = 0, 1, . . . , n
i=1
hat man rn als Linearkombination von a, b wie folgt
rn
a
= Pn ·
.
rn+1
b
6
Die Matrizen Pk enthalten die Koeffizienten der jeweiligen Linearkombinationen.
Man berechnet diese Koeffizienten gleichzeitig mit den rk durch sukzessive Berechnung von
0 1
mk−1 nk−1
Pk = Qk · Pk−1 =
·
.
1 −qk
mk
nk
Es gelten die folgenden Gleichungen.
qk =
rk+1 =
mk+1 =
nk+1 =
rk =
rk−1 ÷ rk ,
rk−1 mod rk ,
mk−1 − qk · mk ,
nk−1 − qk · nk ,
mk · a + nk · b .
Wir führen die Auswertung der Formeln von Hand aus mit Buchführung in einer
Tabelle.
k
rk−1 rk qk
mk−1 nk−1 mk
nk
k=1
81 128 0
1
0
0
1
k=2
128 81 1
1
0
k=3
81 47 1
−1
1
k=4
47 34 1
2 −1
k=5
34 13 2
−3
2
k=6
13
8 1
8 −5
k=7
8
5 1
−11
7
k=8
5
3 1
19 −12
k=9
3
2 1
−30
19
k = 10
2
1 2
49 −31
k = 11
1
0
Ergebnis: 81 · 49 + 128 · (−31) = 1.
4. Wir führen die Auswertung der Formeln von Hand aus mit Buchführung in einer
Tabelle, zunächst ohne die Spalten für die Erweiterung des Euklidschen Algorithmus.
k
rk−1
k = 1 (x5 − 5x4 + 4x3 + 2x2 − 12x + 10)
k = 2 (x2 − 1)
k = 3 (−7x + 7)
rk
qk
2
(x − 1)
(x3 − 5x2 + 5x − 3)
(−7x + 7) (− 71 x − 17 )
0
Einen größten gemeinsamen Teiler der Polynome lesen wir mit r2 = (−7x + 7) aus
der Tabelle ab. Durch Normierung erhalten wir den normierten ggT mit x − 1.
Die Erweiterung des euklidschen Algorithmus ist zwar für die Berechnung des ggT
nicht notwendig, die Aufgabenstellung verlangt dies aber.
k
qk
k = 1 (x3 − 5x2 + 5x − 3)
k = 2 (− 17 x − 17 )
mk−1 nk−1 mk nk
1
0
0
1
1
−(x3 − 5x2 + 5x − 3)
Wir erhalten mit p := x5 − 5x4 + 4x3 + 2x2 − 12x + 10 und q := x2 − 1
ggT (p, q) = −7x + 7 = 1 · p + (−(x3 − 5x2 + 5x − 3))q .
7
Aufgabe 4
Wir betrachten im Folgenden den Ring hZ, +, ·, 0, 1i der ganzen Zahlen.
Sei A eine nichtleere, endliche Teilmenge von Z \ {0}. Dann definieren wir den größten
gemeinsamen Teiler aller Elemente von A, i. Z. ggT (A), als diejenige natürliche Zahl g für
die gilt:
g ist Teiler aller a ∈ A und jedes g 0 ∈ N, das alle Elemente von A teilt, teilt auch g.
1. Seien A, B nichtleere, endliche Teilmengen von Z \ {0}. Beweisen Sie
ggT (A ∪ B) = ggT (ggT (A), ggT (B)) .
Zeigen Sie zunächst, dass ggT (A) (bzw. ggT (B)) stets existiert.
2. Entwerfen Sie ein Verfahren zur Berechnung des ggT (A) für endliche Mengen ganzer
Zahlen auf der Basis des Euklidschen Algorithmus.
3. Sei A = {a1 , a2 , . . . , an }. Entwerfen Sie ein Verfahren zur Berechnung ganzer Zahlen
m1 , m2 , . . . , mn , so dass
ggT (A) = m1 a1 + m2 a2 + . . . + mn an .
Lösungsvorschlag
1. Man zeigt zunächst durch Induktion über die Anzahl n = |A| von Elementen einer
nichtleeren, endlichen Menge A die Aussage P (n), i. e. dass ein ggT aller n Elemente
von A existiert, wie folgt. Wir benutzen die Bezeichnung x|y für die Eigenschaft ’x
Teiler von y’.
n = 1: ggT ({a}) = |a|.
(∀n ≥ 1)[P (n) ⇒ P (n + 1)]:
Es gelte P (n). Seien |A| = n, |A ∪ {b}| = n + 1 und x := ggT (A).
Wir setzen y := ggT (x, b) (dessen Existenz wurde in der Vorlesung mit dem Euklidschen Algorithmus gezeigt) und zeigen y = ggT (A ∪ {b}) wie folgt.
1. Es gilt y|x und y|b. Da x alle Elemente von A teilt, folgt (∀a ∈ A)[y|a] und y|b.
2. Sei umgekehrt z|c, ∀c ∈ A ∪ {b}. Dann folgt z|x und z|b, mithin z|y.
Aus 1. und 2. folgt die Behauptung y = ggT (A ∪ {b}).
Nun haben wir die Existenz eines ggT einer nichtleeren, endlichen Menge A ⊂ (Z\{0})
bewiesen. Die Eindeutigkeit des ggT war zwar nicht zu beweisen, sie ist aber klar,
weil für alle a, b ∈ N gilt a|b ∧ b|a ⇒ a = b.
Wir zeigen nun
ggT (A ∪ B) = ggT (ggT (A), ggT (B)) .
Dazu setzen wir
x := ggT (A ∪ B), u := ggT (A), v := ggT (B), w := ggT (u, v) .
1. Es gilt x|a, ∀a ∈ A und x|b, ∀b ∈ B. Daraus folgt x|u und x|v, mithin x|w.
2. Umgekehrt gilt w|u und w|v. Da aber u|a, ∀a ∈ A und u|b, ∀b ∈ B, folgt
w|a, ∀a ∈ A und w|b, ∀b ∈ B. Damit folgt aber auch w|x.
Wir erhalten x|w und w|x mit x, w ∈ N, mithin x = w.
8
2. Wir berechnen den ggT (A) rekursiv wie folgt.
1. Falls |A| = 1: Wähle x ∈ A. Dann gilt ggT (A) = |x|.
2. Falls |A| = n > 1: Wähle x ∈ A. Dann gilt ggT (A) = ggT (x, ggT (A \ {x}).
3. Wir berechnen den ggT (A) = m1 a1 + m2 a2 + . . . + mn an rekursiv wie folgt.
1. Falls |A| = 1: Wähle x ∈ A. Dann gilt ggT (A) = m1 · |x| mit m1 = 1.
2. Falls |A| = n > 1: Wähle x ∈ A. Berechne g = ggT (A\{x}) = k1 a1 +k2 a2 +. . .+kn−1 an−1 .
Berechne ggT (x, g) = mx + ng. Dann gilt mit an = x
ggT (A) = nk1 a1 + nk2 a2 + . . . + nkn−1 an−1 + man .
9
Herunterladen