Elementare Arithmetik

Werbung
Kapitel 3
Elementare Arithmetik
A lady of 80 named Gertie
Had a boyfriend of 60 named Bertie
She told him emphatically
That viewed mathematically
By modulus 50 she’s 30
Limerik of J.W. McClellan
Arithmetik ist das Teilgebiet der Mathematik, welches auch als Synonym zum Begriff Zahlentheorie verstanden werden kann. Elementare Arithmetik bezeichnet allgemein das Rechnen
mit natürlichen Zahlen und ganzen Zahlen und die Untersuchung der Konsequenzen, die sich
daraus ergeben, dass die Division in den ganzen Zahlen nur eingeschränkt möglich ist.
3.1
Ganze Zahlen
In Abschnitt 2.1 haben wir die natürlichen Zahlen geschaffen“. Skizzieren wollen wir nun den
”
Konstruktionsweg von den natürlichen Zahlen zu den ganzen Zahlen. Wir sehen dabei die Nützlichkeit des Begriffs der Äquivalenzrelation“ ein. Auf N × N läßt sich nämlich eine Äquivalenzrelation durch
R := {((m, n), (k, l)) ∈ N2 × N2 |m + l = n + k} ,
d.h.
(m, n) ∼ (k, l) : ⇐⇒ m + l = n + k ,
einführen. Man bestätigt leicht, dass in der Tat eine Äquivalenzrelation vorliegt. Etwa folgt die
Symmetrie allein schon aus der Kommutativität der Addition in den natürlichen Zahlen; siehe
Rechenregel 2.2.
Die Zuordnung eines Paares (m, n) zu einer Klasse [(k, l)] geschieht unter dem Gesichtspunkt,
dass die Differenz m − n gleich der Differenz k − l ist und dies liefert den Zusammenhang zur
Menge der ganzen Zahlen Z, wenn wir sie schon als bekannt voraussetzten. Also sollte etwa
[(n, n)] für 0 ,
[(n + 1, n)] für 1 , [(n, n + 1)] für − 1 ,
[(n + n, n)] für n , [(n, n + n)] für − n ,
stehen. Der Weg, ausgehend von der Kenntnis der natürlichen Zahlen, die ganzen Zahlen zu
konstruieren, ist also vorgezeichnet:
29
Man führe Z als Menge der Äquivalenzklassen (N × N)/ R ein.
Vervollständigt wird dieser Schritt durch die Beobachtung, daß durch
[(m, n)] ⊕ [(k, l)] := [(m + k, n + l)]
eine Addition und durch
[(m, n)] ⊙ [(k, l)] := [(m · k + n · l, m · l + n · k)]
eine Multiplikation eingeführt wird. Die Anordnung der ganzen Zahlen spiegelt sich in
[(m, n)] ⊳ [(k, l)] : ⇐⇒ m + l < n + k bzw. [(m, n)] [(k, l)] : ⇐⇒ m + l ≤ n + k
wieder. Hierbei ist ja “ < , ≤ “ schon von den natürlichen Zahlen her bekannt. Beachte bei diesen
Definitionen stets, dass [(m, n)] für m−n stehen sollte. Ergänzend sei nun noch die Subtraktion
[(m, n)] ⊖ [(k, l)] := [(m, n)] ⊕ [(l, k)] .
eingeführt.
Bemerkung 3.1.1 Wenn man mit Äquivalenzklassen neue Objekte unter Verwendung von Repräsentanten für die Klassen definiert, hat man sich zu vergewissern, dass die Definition vom
Repräsentanten für die Klasse unabhängig ist. Dies ist oben bei der Definition der Addition,
Multiplikation und Kleiner–Beziehung der Fall. Bei der Addition etwa bedeutet dies, nachzuweisen, dass [(m, n)] ⊕ [(k, l)] = [(m′ , n′ )] ⊕ [(k′ , l′ )] ist, falls [(m, n)] = [(m′ , n′ )] , [(k, l)] = [(k′ , l′ )]
gilt. Dies sieht man mit Hilfe der Identitäten m + n′ = m′ + n , k + l′ = k′ + l sofort ein.
Entsprechend unserer Hinführung finden wir die natürlichen Zahlen wieder als Teilmenge
e := {[(m + n, m)]|n ∈ N} mit einem beliebigen m ∈ N . Auch diese Menge erfüllt nun die
N
Peano–Axiome:
e;
• 1̃ := [(n + 1, n)] ∈ N
• n]
+ 1 := [(n + n + 1, n)] Nachfolger von n
e;
• 1̃ ist kein Nachfolger, denn aus 1̃ = [(n+n+1, n)] folgt sofort die widersprüchliche Aussage
1 = n + 1;
e so dass 1̃ ∈ M
e.
f ⊂ N,
f und (ñ ∈ M
f =⇒ n]
f), dann ist offenbar M
f=N
• Ist M
+1∈M
e , n ∈ N und die Null 0̃ := [(n, n)] .
Zusätzlich haben wir die negativen Zahlen [(n, n + n)] ∈ N
Die aufwendige Schreibweise wollen wir nun aber wieder vermeiden. Wir tun dies, indem wir,
statt die Existenz der natürlichen Zahlen axiomatisch zu fordern, die ganzen Zahlen axiomatisch
einführen.
30
Es gibt Mengen N, Z , ein Element 0 ∈ Z, Abbildungen
Z × Z ∋ (a, b) 7−→ a + b ∈ Z,
Z × Z ∋ (a, b) 7−→ a · b ∈ Z,
und eine Vergleichsoperation ≤ mit folgenden Eigenschaften:
1. (a + b) + c = a + (b + c) für alle a, b, c ∈ Z .
2. a + 0 = 0 + a für alle a ∈ Z .
3. Zu a ∈ Z gibt es genau ein (−a) ∈ Z mit
(a + (−a)) = 0 = ((−a) + a) .
4. a + b = b + a für alle a, b ∈ Z .
5. (a · b) · c = a · (b · c) für alle a, b, c ∈ Z .
6. a · b = b · a für alle a, b ∈ Z .
7. a · (b + c) = a · b + a · c für alle a, b, c ∈ Z .
8. N ⊂ Z , 1 6= 0 , Z = N ∪ {0} ∪ −N .
9. 1 · a = a , 0 · a = 0 für alle a ∈ Z .
10. a ≤ b ⇐⇒ b + (−a) ∈ N ∪ {0} .
(Addition)
(Multiplikation)
(Assoziativgesetz)
(0 ist neutrales Element)
((−a) ist Negatives von a)
(Kommutativgesetz)
(Assoziativgesetz)
(Kommutativgesetz)
(Distributivgesetz)
(1 ist neutrales Element)
Man beachte aber, dass nur die Existenz der natürlichen Zahlen eine wesentliche Forderung ist.
Wir tun dies durch Anführung von Eigenschaften, die das übliche Rechnen in den ganzen Zahlen
möglich machen. (Wir legen dabei nicht Wert auf ein minimales Gerüst von Axiomen.)
Dies deckt sich mit obiger Konstruktion. Zur Abkürzung führen wir noch die Subtraktion
durch
Z × Z ∋ (a, b) 7−→ a − b := a + (−b) ∈ Z
ein, schreiben meist kurz
ab für a · b
und vereinbaren die Schreibweise
a < b für a ≤ b, a 6= b .
Damit können wir nun in Z und N genauso rechnen, wie wir es gewohnt sind.
3.2
Teilbarkeit
Definition 3.2.1 Seien a, b ∈ Z. Wir sagen, dass a die Zahl b teilt, wenn es k ∈ Z gibt mit
b = ka. Wir schreiben dafür a|b .
Ist b nicht durch a teilbar, so schreiben wir a 6 | b.
Srechweisen:
Für a|b: a teilt b, b ist Teiler von a, a ist durch b teilbar.
Für a 6 | b: a teilt b nicht, b ist kein Teiler von a, a ist nicht durch b teilbar.
Folgerung 3.2.2 Seien a, b, c, d ∈ Z. Dann gilt:
(1) a|a; a|b und b|a =⇒ a = ±b; a|b und b|c =⇒ a|c.
(2) d|a und d|b =⇒ d|(ax + by) für alle x, y ∈ Z.
(3) a|b und a|(b + c) =⇒ a|c.
31
Beweis:
Zu 1. a|a, da a = 1 · a.
Es gibt k, l ∈ Z mit b = ka, a = lb. Ist b = 0, dann ist a = 0 und nichts ist mehr zu zeigen. Sei
nun b 6= 0; o.E. b > 0. Dann folgt aus b = klb offenbar kl ∈ N, kl = 1 und damit k = ±1, l = ±1.
Wir haben b = ka, c = lb mit k, l ∈ Z. Daraus folgt c = lb = lka, also a|c.
Zu 2. Wir haben a = kd, b = ld. Seien x, y ∈ Z. Dann gilt ax + by = kdx + ldy = (kx + ly)d;
also d|(ax + by) .
Zu 3. Wir haben b = ka, b + c = la mit k, l ∈ Z. Daraus folgt c = la − b = la − ka = (l − k)a,
also a|c.
Bei Teilbarkeitsfragen in Z können wir uns in der Regel immer auf positive Teiler, d.h. auf
Teiler in N, zurückziehen, da von den zwei Zahlen a, −a stets eine in N liegt, falls a 6= 0; der Fall
a = 0 ist uninteressant, da dann auch b = 0 .
In diesem Abschnitt kommen wir ausschließlich mit den Eigenschaften der ganzen Zahlen
aus, wie sie sich aus der axiomatischen Einführung der natürlichen Zahlen mittels der Peano–
Axiome ergaben; insbesondere haben wir die Rechenarten“ +, −, ·, ≤, < uneingeschränkt zur
”
Verfügung. Nicht zur Verfügung steht die Division ÷, eine Tatsache, die die Reichhaltigkeit der
Resultate bzgl. Teilbarkeit beschert.
Satz 3.2.3 (Division mit Rest) Für alle a ∈ Z, b ∈ N gibt es eindeutig bestimmte Zahlen
q, r ∈ Z mit
a = bq + r und 0 ≤ r < b.
Beweis:
Wir beweisen zunächst die Existenz von q, r für a ≥ 0 durch vollständige Induktion:
a = 0 : Setze q := r := 0 .
a + 1 : Ist a + 1 < b, so gilt a + 1 = 0b + (a + 1) und wir sind fertig. Ist a + 1 ≥ b, so folgt aus
der Induktionsvoraussetzung a + 1 − b = qb + r mit q ∈ Z, 0 ≤ r < b. Also a + 1 = (q + 1)b + r.
Die Existenz folgt für a < 0 aus der Anwendung der eben bewiesenen Aussage auf −a gemäß
−a = q ′ b + r ′ , 0 ≤ r ′ < b
durch
a=
(−q ′ − 1)b + (b − r ′ ) , falls r ′ 6= 0
(−q ′ )b
, falls r ′ = 0
Um die Eindeutigkeit zu beweisen, nehmen wir ein zweites Zahlenpaar q ′ , r ′ mit
a = q′b + r′, 0 ≤ r′ < b ,
wobei o. E. r ≥ r ′ sei. Dann ist 0 ≤ r − r ′ < b, r − r ′ = (q − q ′ )b, q − q ′ ≥ 0, und dies ist nur mit
q ′ = q, r = r ′ verträglich.
Wenn man den Rest bei Division von a durch b gemäß
a = bq + r , 0 ≤ r < b,
bestimmt, so sagt man manchmal auch, man reduziert a modulo b . Der Faktor q in der Darstellung mit Rest ist die größte ganze Zahl, die
q≤
a
≤q+1
b
32
erfüllt, wobei wir die Bruchschreibweise im Vorgriff auf Kapitel 4 verwendet haben. Dafür ist
auch die Schreibweise
a
q=⌊ ⌋
b
üblich.
Die Methode Division mit Rest“ wird seit je genutzt, um Zahlen von einem Zahlsystem in
”
ein anderes umzurechnen. Sei g eine natürliche Zahl, g ≥ 2 . Zu jeder natürlichen Zahl n gibt es
dann eindeutig bestimmte natürliche Zahlen l und a0 , . . . , al mit al 6= 0 und 0 ≤ a1 < g sowie
n = a0 + a1 g + · · · + al gl =
l
X
ai gi .
i=0
Man gewinnt die Ziffern a0 , . . . , al (g-adische Ziffern von n bezüglich der Basis g) dieser so
genannten g-adischen Entwicklung von n durch fortlaufende Division mit Rest. Wir schreiben
damit
n = (al , . . . , a1 , a0 )g oder kurz n = (al · · · a1 a0 )g .
Diese Berechnungsmethode nimmt den euklidischen Algorithmus vorweg, den wir im nächsten
Abschnitt besprechen werden. Hier erläutern wir das Schema an einem Beispiel.
Beispiel 3.2.4 Sei n := |1 + ·{z
· · + 1}, also n = (109)10 .
n-mal
Wir rechnen die Zahl n aus dem Dezimalsystem um in das Dualsystem. Sei g = 2 . Aus den
folgenden Rechenschritten
109 = 2 · 54 + 1
54 = 2 · 27 + 0
27 = 2 · 13 + 1
13 = 2 · 6 + 1
6 = 2·3+0
3 = 2·1+1
1 = 2·0+1
lesen wir ab:
n = (1101101)2
3.3
Euklidischer Algorithmus
Fragt man nach gemeinsamen Teilern zweier ganzer Zahlen a, b, so interessiert insbesondere der
größte dieser gemeinsamen Teiler. Dabei können wir uns dann auf positive Teiler beschränken,
denn 1 ist stets ein gemeinsamer Teiler von a und b.
Definition 3.3.1 Seien a, b ∈ Z, die nicht beide 0 sind. Eine Zahl d ∈ N heißt größter gemeinsamer Teiler von a, b genau dann, wenn
(1) d|a und d|b ,
(2) Ist d′ ∈ N ein Teiler von a und b, so teilt d′ auch d .
33
gilt. Wir schreiben d = ggT (a, b) = a ⊓ b .
Der größte gemeinsame Teiler d gemäß Definition 3.3.1 ist eindeutig bestimmt dank der
Tatsache, dass wir d ∈ N gefordert haben, denn sind d˜ zwei größte gemeinsame Teiler von a, b,
˜ also d = ±d,
˜ d, d˜ ∈ N .
dann gilt d|d˜ und d|d,
Es sollte klar sein, wie nun der größte gemeinsame Teiler von endlich vielen ganzen Zahlen
erklärt ist. Beispiel:
6 ⊓ 10 = 2, 6 ⊓ 10 ⊓ 30 = 2, 6 ⊓ 10 ⊓ 15 = (6 ⊓ 10) ⊓ 15 = 6 ⊓ (10 ⊓ 15) = 1 .
Sprechweise:
Seien a, b ∈ Z. Gilt ggT(a, b) = a ⊓ b = 1 , so nennen wir a, b teilerfremd.
Lemma 3.3.2 Seien a, b ∈ Z nicht beide Null. Dann gilt a ⊓ b = (−a) ⊓ b = (−a) ⊓ (−b) =
a ⊓ (−b) .
Beweis:
Wir beweisen etwa die erste Gleichheit. Diese folgt aber aus der einfachen Beobachtung, dass d
ein Teiler von a und b genau dann ist, wenn d ein Teiler von −a und b ist.
Wir suchen den größten gemeinsamen Teiler von Zahlen a, b ∈ Z . Beachte, dass es wegen
Lemma 3.3.2 ausreicht, den größten gemeinsamen Teiler für Zahlen in N zu berechnen.
Lemma 3.3.3 Sei a ∈ Z und b ∈ N. Dann folgt aus der Darstellung a = qb + r , q ∈ Z, die
Aussage a ⊓ b = b ⊓ r.
Beweis:
Ist d ein Teiler von a, b, dann ist d ein Teiler von b und r und umgekehrt (siehe Folgerung 3.2.2).
Das obige Lemma ist die Basis des folgenden Algorithmus“ zur Berechnung des größten
”
gemeinsamen Teilers zweier Zahlen a, b . . Das Wort Algorithmus“ erläutern wir im nächsten
”
Kapitel etwas genauer.
Algorithm 1 Der euklidische Algorithmus
EIN a, b ∈ Z ; o.E. a ≥ b > 0 .
Schritt 0 a′ := a, b′ := b .
Schritt 1 a′ = qb′ + r mit 0 ≤ r < b′ .
Schritt 2 Ist r = 0, gehe zu AUS, sonst setze a′ := b′ , b′ := r, und gehe zu Schritt 1.
AUS d := b′ = a ⊓ b .
Die Aussage, dass d der größte gemeinsame Teiler von a, b ist, falls die Situation r = 0
erreicht wird, folgt aus dem Lemma 3.3.3. Bleibt noch zu klären, dass die Situation r = 0 in
endlich vielen Schritten wirklich erreicht wird. Dies folgt aber aus der Tatsache, dass für zwei
aufeinanderfolgende Durchläufe von Schritt 1 mit (a′ , b′ ) , (a′′ , b′′ ) sicherlich 0 ≤ b′′ < b′ , b′ , b′′ ∈
N0 gilt. Also muss schließlich das Verfahren bei r = 0 abbrechen.
34
Der euklidische Algorithmus gilt als ein recht schneller Algorithmus: um den größten gemeinsamen Teiler d von a, b auszurechnen, ist etwa soviel Aufwand wie für die Multiplikation von
a und b nötig; wir kommen in Kapitel 5 darauf zurück. Er findet vielfältig Anwendung in der
mathematischen Informatik.
Wir geben dem Euklidischen Algorithmus, wohlwissend, dass der Schritt 1 nur endlich oft
durchlaufen wird, eine explizite Fassung:
Euklidischer Algorithmus
Kettenbruchentwicklung
a
b
r0
r1
r1
r2
r0 := a , r1 := b,
r0
=
q1 r1 + r2 , 0 < r2 < r1 ,
r1
=
q2 r2 + r3 , 0 < r3 < r2 ,
..
.
..
.
..
.
rk−1
=
qk rk + rk+1 , 0 < rk+1 < rk ,
rk
=
qk+1 rk+1 ,
rk−2
rk−1
rk
rk+1
=
r0
r1
= q1 + rr12
= q2 + rr23
..
.
= qk + r rk
k−1
= qk+1
In dieser Darstellung ist rk+1 = rk−1 ⊓ rk = · · · = r0 ⊓ r1 = a ⊓ b nach Lemma 3.3.3.
Beachte: Bei der Spalte Kettenbruchentwicklung“ haben wir Brüche vorweggenommen. Für
”
ein Verständnis der Kettenbruchentwicklung reicht ein elementares Wissen über rationale Zahlen
aus.
Aus der obigen Darstellung des euklidischen Algorithmus lesen wir
r0
r2
1
1
1
a
= ...
(3.1)
=
= q1 +
= q1 + r1 = q1 +
= q1 +
r
3
1
b
r1
r1
q 2 + r2
q2 +
r2
r4
q3 +
r3
r
ab; wir wissen dabei, dass stets 0 < k+1
rk < 1 gilt und dass das Schema nach k Schritten abbricht, denn in formaler Interpretation haben wir rk+2 = 0 . Die berechneten Größen q1 , . . . , qk+1
schreiben wir als
a
[q1 , . . . , qk+1 ] oder = [q1 , . . . , qk+1 ]
b
auf und bezeichnen dies als Kettenbruch. Der Kettenbruch kann mitunter auch sehr lang“
”
sein. In vielen Fällen ist man schon mit einer Näherung [q1 , . . . , ql ] , 1 ≤ l < k + 1 , zufrieden,
d.h. mit der Näherung, die entsteht, wenn man
rl
rl+1
=0
setzt.
35
Beispiel 3.3.4 a = 104629 , b = 432000 .
104629 = 0 · 432000 + 104629
432000 = 4 · 104629 + 13484
104629 = 7 · 13484 + 10241
13484 = 1 · 10241 + 3243
10241 = 3 · 3243 + 512
3243 = 6 · 512 + 171
512 = 2 · 171 + 170
171 = 1 · 170 + 1
170 = 170 · 1
Also gilt: 104629 ⊓ 432000 = 1 .
Bemerkung 3.3.5 C. Huygens (1629–1695) entwickelte Kettenbruchentwicklungen, als er ein
Zahnradmodell des Sonnensystems bauen wollte. Gesucht wurden möglichst einfache Brüche“,
”
für die gelten sollte:
Umlaufzeit von Planet 1
Zahnzahl von Zahnrad 1
=
.
Zahnzahl von Zahnrad 2
Umlaufzeit von Planet 2
Werden die Umlaufzeiten der Planeten sehr genau gemessen, dann kann rechts ein Bruch mit
sehr großem Zähler und Nenner entstehen. Die Beispiele 3.3.6, 3.3.9 illustrieren dies.
Beispiel 3.3.6 Die Zahlen
a = 71755875
b = 61735500
kommen in Berechnungen des Astronomen Aristarchus von Samos vor. Für ab verwendet er die
43 . Sie ergibt sich, wenn man den Kettenbruch zu a geeignet abbricht:
Näherung 37
b
1
a
∼1+
.
b
6 + 61
Beispiel 3.3.7 Die Umlaufzeit der Erde um die Sonne beträgt ziemlich genau
365 +
104629
Tage .
432000
Aus der Kettenbruchentwicklung
104629
= [0, 4, 7, 1, 3, 6, 2, 1, 170]
432000
ergeben sich Ansätze für Kalender:
[0] = 0
[0, 4] =
Keine Schaltjahre
(Anpassung von Zeit zur Zeit durch Hinzufügen eines Tages)
1
4
[0, 4, 7, 3, 6] =
Alle vier Jahre ein Schalttag
194
801
In 800 Jahren läßt man sechs Schaltjahre ausfallen
(und zwar in den Jahren, deren Jahreszahlen durch 400 teilbar ist.)
36
Beachte: Da a1 ⊓ a2 ⊓ · · · ⊓ an = a1 ⊓ (a2 ⊓ · · · ⊓ an ) gilt, ist klar, dass wir nun auch ein
Verfahren haben, das den größten gemeinsamen Teiler von a1 , . . . , an bereitstellt: Man hat es
nur mehrmals anzuwenden.
Eine wichtige Konsequenz aus dem Euklidischen Algorithmus ist
Satz 3.3.8 (Lemma von Bezout) Seien a, b ∈ Z. Dann gibt es Zahlen s, t ∈ Z mit a ⊓ b =
sa + tb .
Beweis:
O.E. a ≥ b > 0 .
Die Aussage folgt dadurch, dass wir den euklidischen Algorithmus in der expliziten Fassung
rückwärts lesen. Wir strukturieren dies, indem wir nachrechnen, dass für 0 ≤ i ≤ k + 1 gilt:
ri = si a + ti b , mit si , ti ∈ Z.
(3.2)
Dies ergibt sich so: Für i = 0 setze s0 := 1, t0 := 0 und für i = 1 setzte s1 := 0, t1 := 1 . Nun
setzen wir
si+1 := si−1 − qi si , ti+1 := ti−1 − qi ti , 1 ≤ i ≤ k.
(3.3)
Dann gilt offenbar die obige Aussage.
Beispiel 3.3.9 Wir betrachten wieder Beispiel 3.3.4. Für das Tupel (ri , qi , si , ti ) haben wir dann
nach (3.2) und (3.3) die folgende Sequenz (× bedeutet uninteressant oder nicht definiert):
(36667, ×, 1, 0), (12247, 2, 0, 1), (12173, 1, 1, −2), (74, 164, −1, 3), (37, ×, 165, −494).
Also haben wir
37 = 36667 ⊓ 12247 = 165 · 36667 − 494 · 12247
Folgerung 3.3.10 Seien a, m ∈ Z, die nicht beide Null sind, mit a ⊓ m = 1 . Dann gibt es b ∈ Z
mit m|(ab − 1) .
Beweis:
Wir wissen aus dem Lemma von Bezout 1 = ax + my mit x, y ∈ Z . Setze b := x . Dann ist
ab − 1 = −my = m(−y) .
Die obige Folgerung können wir so lesen, dass bei Teilerfremdheit von a und m zu a eine Zahl
b existiert, die die Gleichung
a·b=1
bis auf ein Vielfaches von m löst.
37
Maple - Illustration 3.1
Maple kennt die ganzen Zahlen
und die rationalen Zahlen, wobei
die Anzahl der Stellen von Zähler
und Nenner jeweils auf 524279
beschränkt ist. Mit diesen Zahlen rechnet Maple exakt.
Der Befehl ifactor zerlegt eine
ganze Zahl in ihre Primfaktoren.
Hier haben wir mit ‘‘“ das letz”
te Ergebnis aufgerufen.
Mit isprime überprüft man Zahlen auf die Eigenschaft, Primzahl
zu sein.
4
> 2(2 ) ;
65536
> ifactor(‘‘);
(2)16
> seq(k2 -k-41, k= 34..41);
1163,1231,1301,1373,1447,1523,1601,1681
> seq(isprime(k2-k-41), k= 35..41);
true,true,true,true,true,true,true,false
Kommen wir nochmals auf Primzahlen zurück. Dies sind natürliche Zahlen p 6= 1, die nur
die Teiler 1 und p haben. Wir wissen schon, dass es unendlich viele Primzahlen gibt. Wie testet
man, ob eine zahl n ∈ N eine Primzahl ist?
Ein Primzahltest leitet sich aus der Äquivalenz
n Primzahl ⇐⇒ n|((n − 1)! + 1)
ab. Diese Äquivalenz wird als Satz von Wilson bezeichnet.1
Die Probiermethode – man probiere alle Primzahlen p ≤ n als mögliche Teiler durch – kann
dahin verbessert werden, dass man nur solche p mit p2 ≤ n durchzuprobieren hat, da bei einer
Zerlegung n = pq, p, q Primzahlen, für einen der beiden Faktoren sicherlich gilt, dass er dem
Quadrate nach nicht grö”ser als n ist. Aber hier hat man das Problem, dass man von allen
Zahlen z mit z 2 ≤ n wissen sollte, ob sie Primzahlen sind. Da aber jede Primzahl p von der
Form p = 6k±1, k ∈ N, ist (Beweis!) können wir dieses Problem umgehen, indem wir mit solchen
6k ± 1 testen. Man hat dann aber immer noch mit einer Anzahl von Zahlen zu testen, die etwa
bei einer 100–stelligen Zahl einen nicht zu bewältigender Aufwand darstellt.
Folgerung 3.3.11 (Lemma von Euklid) Teilt eine Primzahl ein Produkt a1 · · · ar natürlicher Zahlen, so teilt p wenigstens einen der Faktoren a1 , . . . , ar .
Beweis:
O. E. sei r = 2. Also haben wir a1 a2 = kp mit k ∈ N . Teilt p die Zahl a1 nicht, dann ist
p ⊓ a1 = 1, da p eine Primzahl ist, und es gibt nach Satz 3.3.8 s, t ∈ Z mit 1 = sp + ta1 . Daraus
folgt a2 = spa2 + ta1 a2 = p(sa2 + tk). Also teilt p die Zahl a2 .
Satz 3.3.12 (Primfaktorzerlegung) Jede natürliche Zahl n ≥ 2 läßt sich bis auf die Reihenfolge der Faktoren eindeutig als Produkt von Primzahlen darstellen.
Beweis:
Die Existenz einer Darstellung für n ∈ N beweisen wir induktiv:
Für n = 2 ist dies nach der obigen Vereinbarung über das einfache Produkt klar.
1
Schon G.W. Leibniz hat diesen Satz vermutet, der erste vollständige Beweis stammt von J.L. Lagrange2 , etwa
100 Jahre später hat ihn J. Wilson nachentdeckt. Man sieht schnell, dass, was den Rechenaufwand betrifft, nicht
viel gewonnen ist, denn (n − 1)! auszurechnen, ist eine aufwendige Angelegenheit.
38
n + 1 : Ist n + 1 eine Primzahl, dann ist nach Vereinbarung über das einfache Produkt nichts
mehr zu zeigen. Anderenfalls gilt n + 1 = pm mit 1 < p, m < n + 1. O.E. können wir nun annehmen nach Lemma 2.4.2, dass m einen Teiler p besitzt, der eine Primzahl ist; also n + 1 = pm
mit 1 < p, m < n + 1 . Nach Induktionsvoraussetzung gilt m = p2 · · · pr , p2 , . . . , pr Primzahlen.
Dann liegt in n + 1 = pp2 · · · pr eine Zerlegung von n + 1 in Primfaktoren vor.
Zur Eindeutigkeit: Sei n = p1 · · · pr = q1 · · · qs mit Primzahlen p1 , . . . , pr , q1 , . . . , qs . Durch Induktion über n zeigen wird, dass r = s und nach Umnumerierung p1 = q1 , . . . , pr = qr gilt.
p1 teilt das Produkt q1 · · · qs und damit einen der Faktoren q1 , . . . , qs nach Folgerung 3.3.11.
Also etwa nach Umnumerierung p1 |q1 . Da q1 Primzahl ist, ist p1 = q1 . Also (Kürzungsregel)
p2 · · · pr = q2 · · · qs =: m . Da m < n gilt, sagt die Induktionsannahme r = s, p2 = q2 , . . . , pr = qs
nach eventueller Umnumerierung und wir sind fertig.
Die Herstellung der Primfaktorzerlegung einer (großen) Zahl ist kein leichtes Unterfangen.
Die Schwierigkeit wird dadurch beleuchtet, dass nahezu gleiche Zahlen eine sehr verschiedene
Primfaktorzerlegung besitzen können:
370273 = 43 · 79 · 109 , 370277 = 17 · 23 · 947 , 370279 = 7 · 13 · 13 · 313 .
Im Abschnitt über das RSA-Schema, einem Verschlüsselungsschema, kommen wir auf dieses
Faktum der Schwierigkeit, eine Zerlegung einer (großen) Zahl in ein Produkt zweier Zahlen
herzustellen, zurück.
Definition 3.3.13 Seien a, b ∈ Z, die nicht beide 0 sind. Eine Zahl k ∈ N heißt kleinstes
gemeinsames Vielfaches von a, b genau dann, wenn gilt:
(1) a|k und b|k ,
(2) Sind a, b Teiler von k′ ∈ N, so ist k ein Teiler von k′ .
Wir schreiben k = kgV (a, b) = a ⊔ b .
Bemerkung 3.3.14 Das kleinste gemeinsame Vielfache von Zahlen a, b ∈ N ist die kleinste
Zahl m ∈ N, für die a|m , b|m gilt. Kennt man die Primfaktorzerlegung von a und b, so kann
man es sehr einfach ablesen(, wie übrigens auch den größten gemeinsamen Teiler).
3.4
Modulare Arithmetik
Die modulare Arithmetik3 beschreibt das Rechnen im Ring Zm , wobei m ∈ N, m ≥ 2, der
gewählte Modul ist. Der Ring Zm kommt als Menge der Äquivalenzklassen/Restklassen bezüglich
der Äquivalenzrelation Division mit Rest“ bezüglich des Moduls m zustande:
”
Zm := {[0], [1], . . . , [m − 1]} wobei [i] := {z ∈ Z|z = qm + i für ein q ∈ Z} .
Beachte, dass etwa die Klasse [1] auch als die Klasse [m + 1] beschrieben werden kann; wir haben
in der Definition von Zm ein naheliegendes Representantensystem gewählt.
Klar, für m = 2 erhalten wir gerade die Einteilung der natürlichen Zahlen in die Klassen gerade Zahlen und ungerade Zahlen. Für diese Klassen hat man in natürlicher Weise eine Addition
und eine Multiplikation:
gerade + gerade = gerade , ungerade + gerade = ungerade
gerade · gerade = gerade , ungerade · gerade = gerade
3
Das am Beginn des Kapitels vorgestellte Gedicht hat zu tun mit dem Rechnen modulo 50
39
Diese Beobachtung schreiben wir nun fort auf Zm :
Addition: [i] + [j] := [i + j] , i, j ∈ {0, 1, . . . , m − 1} ;
Multiplikation: [i] · [j] := [ij] , i, j ∈ {0, 1, . . . , m − 1} .
Damit dies wohldefiniert ist, muss noch gezeigt werden: aus [i] = [j], [i′ ] = [j ′ ] folgt [i+j] = [i′ +j ′ ]
und [ij] = [i′ j ′ ] . Wir beweisen dies am Beispiel der Multiplikation. [i] = [j], [i′ ] = [j ′ ] bedeutet
i′ = pm + i, j ′ = qm + j für p, q ∈ Z . Daraus folgt
i′ j ′ = (pm + i)(qm + j) = (iqm + jpm + pqm)m + ij also [ij] = [i′ j ′ ] .
[0] ist das neutrale Element für die Addition, [1] ist das neutrale Element für die Multiplikation:
[i] + [0] := [i] , [i] · [1] = [i] , i, j ∈ {0, 1, . . . , m − 1} .
Weiterhin ist leicht zu sehen, dass [m − i] das Inverse von [i] bezüglich der Addition ist. Nun
fassen wir zusammen: Zm ist bezüglich der Addition eine kommutative Gruppe. Dieses Ergebnis
gilt unabhängig von m.
Für die Multiplikation ist die Situation nicht so einfach, denn es gibt die Situation, dass
Nullteiler auftreten; etwa
[2] · [2] = [2 · 2] = [0] in Zm für m = 4 .
Also kann hier [2] kein Inverses bezüglich der Multiplikation haben. Ist nun m eine Primzahl,
dann ist, wie wir wissen, die Klasse [1] ein neutrales Element und aus dem Lemma von Bezout
3.3.8 folgern wir, dass es zu jeder Zahl k = 1, . . . , m − 1 ein l ∈ N gibt mit m teilt kl − 1; d.h.
[k] · [l] = [1] . Somit hat man für jedes Element in Zm \{[0]} ein Inverses.
Die Gruppentafeln – so bezeichnen wir eine vollständige Auflistung der Verknüpfungen der
Gruppenelemente – zu m = 5 sehen wie in 3.1 aufgeführt aus.
+
[0] [1] [2] [3] [4]
·
[0] [1] [2] [3] [4]
[0]
[0] [1] [2] [3] [4]
[0]
[0] [0] [0] [0] [0]
[1]
[1] [2] [3] [4] [0]
[1]
[0] [1] [2] [3] [4]
[2]
[2] [3] [4] [0] [1]
[2]
[0] [2] [4] [1] [3]
[3]
[3] [4] [0] [1] [2]
[3]
[0] [3] [1] [4] [2]
[4]
[4] [0] [1] [2] [3]
[4]
[0] [4] [3] [2] [1]
(a)
(b)
Abbildung 3.1: Gruppentafeln zu Z5
Man beachte, dass sowohl in der Gruppentafel zur Addition als auch in der Gruppentafel zur
Multiplikation in jeder Zeile und Spalte jede Klasse genau einmal vertreten ist. Beachte ferner,
dass die Potenzen des Elements [2] alle Elemente von Z∗5 := Z5 \{[0]} – die triviale Nullzeile und
Nullspalte ist in der Gruppentafel überflüssig – durchlaufen:
[2]0 = [1] , [2]1 = [2] , [2]2 = [4] , [2]3 = [3] , [2]4 = [1] .
Man nennt eine Gruppe, die ein solches zyklisches Element besitzt, eine zyklische Gruppe.
40
+
0 1 a b
·
0 1 a b
0
0 1 a b
0
0 0 0 0
1
1 0
b
a
1
0 1 a b
a
a b
0 1
a
0 a b
b
b a 1 0
b
0 b
(a)
1
1 a
(b)
Abbildung 3.2: Gruppentafeln zu einem Körper mit 4 Elementen
Bemerkung 3.4.1 Für beliebiges m ∈ N, m ≥ 2, ist (Zm , +, ·) ein Ring mit Einselement. Ist
p ∈ N eine Primzahl, so ist (Zm , +, ·) sogar ein Körper, ein endlicher, denn Zp hat ja (nur)
p Elemente. Damit kennen wir zu jeder Primzahl p einen Körper mit p Elementen. Wie sieht
es aber mit den Lücken m = 4, m = 6, m = 8, . . . aus? Es gibt das diese Frage abschließende
Resultat, dass es einen Körper mit m Elementen genau dann gibt, wenn m eine Primzahlpotenz
ist. In 3.2 findet man einen Körper mit 4 Elementen in abstrakter, d.h. nicht in einer schon
durch bekannte Objekte beschriebene Form.
Wo werden endliche Körper benötigt? Allgemein in der Diskreten Mathematik, der Mathematischen Informatik und speziell in der Verschlüsselung von Daten.
Bemerkung 3.4.2 Wenn man mehrere Additionen oder Multiplikationen von Restklassen hintereinander durchführt, ist es oft zweckmäßig, in jedem Schritt den Rest (bei Division durch den
betrachteten Modul m) zu bilden. Dadurch werden die Restklassen immer durch Repräsentanten
aus {0, . . . , m − 1} dargestellt und man vermeidet das Rechnen mit größeren Zahlen.
Beispiel 3.4.3 Wir wollen [22]16 = [2216 ] in Z53 berechnen, ohne die große Zahl 2216 in ihrer
Dezimaldarstellung zu bestimmen, d.h. wir wollen 2216 modulo 53 reduzieren. Wir haben:
[22] · [22] = [484] = [7] , [22]4 = [7]2 = [−4] , [22]8 = [−4]2 = [16] , [22]16 = [16]2 = [44] .
3.5
Pseudozufallszahlen
Um die umständliche Verwendung von Tabellen zu vermeiden, werden Folgen von Zufallszahlen
verwendet, die im Allgemeinen durch eine Berechnungsvorschrift hergestellt werden; wir sprechen
von Pseudozufallszahlen. Darunter versteht man mathematisch wohldefinierte Zahlenfolgen,
die als zufällig“ angesehen werden sollen. Es sollen Zahlen erzeugt werden, für die folgende
”
Eigenschaften anzusehen sind:
Gleichverteilung Die Zufallsfolge genügt der Gleichverteilung. Diese Forderung erläutern wir,
wenn wir mehr über den Zufall bereitgestellt haben.
Unvorhersagbarkeit Hat man eine Zahl erzeugt, sollte die nächste nicht vorhersagbar sein.
Dies bedeutet, dass der Konstruktionsmechanismus komplex genug ist, um zu vermeiden,
dass das Konstruktionsprinzip abgelesen werden kann. (Bei Spielen: der Bösewicht soll
nicht immer zur selben Zeit auf einer vorhersehbaren Position der Bildfläche erscheinen.)
Reproduzierbarkeit Um die Fehlersuche zu erleichtern und verschiedene Simulationen einfacher miteinander vergleichen zu können, ist es wichtig, dass eine einmal erzeugte Zufallsfolge immer wieder reproduziert werden kann.
41
Irreproduzierbarkeit In der Kryptologie steht dem gegenüber die Forderung nach Irreproduzierbarkeit; sie ist dort unverzichtbar“.
”
Dazu kommen die Forderungen, dass die erzeugende Rechenvorschrift schnell ist und möglichst
wenig Speicherplatz auf dem Computer belegt.
Eine erste Realisierung der Pseudozufallserzeugung bestand in der Nutzung der Dezimalziffern transzendenter
Zahlen. Die Zahl π wurde 1873 mit 703, 1960 mit 100 000
und 1986 mit 107 Dezimalstellen berechnet. Die statistische Analyse ergab, dass keine signifikanten Abweichungen
von der Gleichverteilung auftraten. Da die Erzeugung von
transzendenten Zahlen in der Regel sehr kompliziert sind,
werden in der Praxis meist andere Erzeugungen benutzt.
Einer der ältesten Generatoren ist die MiddleSquare-Methode, die 1940 von von Neumann und Metropolis entwickelt wurde und die wie folgt durchgeführt
wird:
i
0
1
2
3
...
12
13
14
...
zi ui := 0.zi
7182
−−−
5811
0.5811
7677
0.7677
9363
0.9363
...
...
0012
0.0012
0001
0.0001
0000
0.0000
...
...
zi2
51 5811 24
33 7677 21
58 9363 29
87 6657 69
...
00 0001 44
00 0000 01
00 0000 00
...
Abbildung 3.3: Middle-Square
Wähle eine 4-stellige Zahl, quadriere sie, man
erhält eine höchstens 8-stellige Zahl. Ist das
Ergebnis nicht 8-stellig, füllt man sie links mit
Nullen auf 8 Stellen auf. Die mittleren 4 Ziffern wählt man nun als erste Zufallszahl
und als neuen Startwert für das Vorgehen.
Ist man unvorsichtigt, bekommt man damit eine nicht sehr brauchbare Folge. Etwa erhält man
mit dem Startwert 8441:
8441, 2504, 2700, 2900, 4100, 8100, 6100, 2100, 4100, 8100, . . . ,
d.h. es werden eigentlich nur 6 brauchbare erzeugt. Es ist sogar noch schlimmer“, wie das Bei”
spiel in obiger Tabelle (siehe 3.3 ) andeutet. Die ersten Schritte des Middle-square-Algorithmus
scheinen brauchbare Zufallszahlen zu liefern, die Fortsetzung bei i = 12 zeigt aber, dass die
Iteration bei der Zufallszahl“ Null endet. In der Tat tendiert der Algorithmus in vielen Fällen
”
dazu, bei Null zu enden. Also scheint der Algorithmus unbrauchbar zu sein, Zufallszahlen zu
erzeugen. Anderenfalls ist das obige kurze Stück 8100, 6100, . . . , 8100 das periodische Stück einer
doch recht langen nichtperiodischen Zahlensequenz, die mit dem Startwert 6239 beginnt.
Zunächst einige allgemeine Bemerkungen. Sei M eine endliche Menge. Pseudozufallszahlen,
deren Konstruktionsmethode wir hier besprechen wollen, ergeben sich als Iterierte einer Vorschrift (im Anschluss an Kapitel 5 sagen wir Funktion) G, die jedem m ∈ M genau ein wohlbestimmtes G(m) zuordnet. In unserem Zusammenhang sagen wir G generiere G(m)“. Damit
”
betrachten wir die iterative Generation
xn+1 := G(xn ) , n ∈ N0 ,
(3.4)
und nennen die damit entstehende Sequenz x0 , x1 , x2 , . . . eine Pseudozufallsfolge; wir schreiben
dafür (xn )n∈N . Der Startwert x0 heißt Samen der Pseudozufallsfolge (xn )n∈N , die Folge selbst
heißt auch Orbit und die Vorschrift G heißt Generator.
Die Folge ist durch die Wahl von G und x0 vollständig bestimmt. Daher ist es verwunderlich
– das Präfix Pseudo“ drückt dies aus – dass die Folge mit dem Zufall verknüpft wird. Durch
”
geschickte Wahl von G – gewünscht wird eine gute Durchmischung von M – kann man jedoch
42
erreichen, dass sich die Folge für viele Anwendungen wie eine Zufallsfolge verhält; darauf kommen
wir noch zurück.
Da die Menge M endlich ist, können nicht alle Folgenglieder xn verschieden sein. Es gibt
also Indizes k, l mit xk = xl ; o. E. k > l . Seien k, l die ersten Indizes, für die dies eintritt. Sei
damit r := k − l . Da xk = xl gilt, folgt xn+r = xn für alle n ≥ l . Also wird der Orbit (xn )n∈N
periodisch mit Periode r ; wir haben einen Zyklus der Länge r . Verlangt man, dass jedes Element
der Menge M die Chance hat im Orbit aufzutauchen, muss der Zyklus ganz M umfassen. Daraus
folgt, dass die Vorschrift auch wirklich jedes Element generieren können muss. Da M endlich
ist, hat G jedes Element sogar auf eindeutig bestimmte Weise zu generieren; im Anschluss an
Kapitel 5 sagen wir, G muss eine bijektive Abbildung sein. Wir werden unten sehen, dass diese
Forderung keineswegs dafür schon ausreicht, ein guter Generator zu sein.
Die Pseudozufallszahlengeneratoren, die wir hier besprechen wollen, sind ausschließlich affine
Generatoren; also
M := Zm , G([x]) := ([ax] + [b]) , [x] ∈ Zm ,
(3.5)
mit einem Modul m . Hier sind a, b ∈ Z .
Warum könnte diese Konstruktionsweise zu guten Zufallszahlen führen? Wir vermuten, dass
die modulo-Rechnung Spuren der Erzeugung verschleiert.
Wir bezeichnen (3.5) auch als Kongruenz–Generator, denn Rechnen in Kongruenzen ist
nichts anderes als das Rechnen in Restklassen, allerdings in einer anderen Schreibweise. Wir
führen die zugehörige Schreibweise ein. Mit u, v ∈ Z schreiben wir:
u ≡ v mod m : ⇐⇒ [u] = [v] ⇐⇒ m|(u − v) .
Damit ergibt sich die Vorschrift für den Kongruenz–Generator so:
M := {0, . . . , m − 1} ; G(x) := ax + b mod m , x ∈ M .
(3.6)
Beispiel 3.5.1 Wir leiten die Neuner-Probe in der Kongruenzschreibweise ab. Offenbar ist
10 ≡ 1 mod 9 , 102 ≡ 12 mod 9 , 10k ≡ 1 mod 9, k ∈ N .
Daraus folgt nun
a0 + a1 10 + · · · + al 10l ≡ a0 + a1 + · · · + al mod 9 .
Dies bedeutet, dass der Neuner-Rest einer natürlichen Zahl gleich ist dem Neuner-Rest ihrer
Ziffernsumme in der Dezimaldarstellung.
Beispiel 3.5.2 Wie sehen die beiden letzten Dezimalstellen von 242008 aus? Dies ist die Frage
nach dem Rest von 242008 modulo 100 . Wir rechnen induktiv nach:
24k ≡ (−1)k+1 · 24 mod 100 , k = 1, 2, . . . .
Induktionsbegin k = 1: Klar
Induktionsschluss k → k + 1:
24k+1 ≡ (24k · 24) ≡ (−1)k+1 · 24 · 24 ≡ (−1)k+2 · 24
mod 100
Daraus folgt also
242008 ≡ −24
mod 100 ≡ 76
was bedeutet, dass die Zahl 22008 mit 76 endet.
43
mod 100 ,
Bemerkung 3.5.3 Durch die Generatoren in (3.5) werden Pseodozufallszahlen in M := {0, 1, . . . , m−
1} erzeugt. Aus einer Zufallszahl y ∈ {0, . . . , m − 1} ergibt sich eine rationale Zufallszahl z zwiy
schen 0 und 1 ganz einfach so: z := m .
Algorithm 2 Kongruenz-Generator nach Lehmer
EIN Parameter a, b, m . Startwert x0 ∈ [0, m − 1) . Iterationsanzahl kit ≤ m − 1 .
Schritt 1 Für k = 0, . . . , kit − 1 berechne xk+1 := axk + b mod m .
AUS Zufallszahlen“ x1 , . . . , xkit .
”
Dabei ist der Modul m oft von der Registergröße der Rechenmaschine“.
”
Die Qualität der Generatoren hängt ab von der Wahl von a, b, m . Damit die Vorschrift G aus
(3.5) jedes Element der Menge Zm erzeugt (siehe oben), muss a ein invertierbares Element
in Zm sein, d.h. a muss zu m teilerfremd sein. Dies lesen wir aus dem folgenden Lemma ab.
Lemma 3.5.4 Sei x ∈ Z und m ∈ N, m ≥ 2 . Es sind äquivalent:
(a) Es gibt x′ ∈ Z mit xx′ ≡ 1 mod m .
(b)
ggT(x, m) = 1 .
Beweis:
(a) =⇒ (b) Es gibt q ∈ Z mit 1 = xx′ + mq . Daraus folgt ggT(x, m) = 1 .
(b) =⇒ (a) Siehe Folgerung 3.3.10.
Aus Lemma 3.5.4 lesen wir nun ab, dass für den Kongruenz-Generator gelten soll, dass a, m
teilerfremd sind. Denn nur dann ist die Gleichung [a] · [x] = [y] in Zm eindeutig lösbar. Für
die Klärung der Frage, unter welchen Bedingungen ein solcher Generatoren dann einen Zyklus
maximaler Länge erzeugt, schauen wir uns Beispiele an.
Beispiel 3.5.5 Betrachte die spezielle Wahl m = 10, a = b = 7 . Hier ist der erzeugte Zyklus
7, 6, 9, 0, 7, 6, 9, 0, . . .
ziemlich kurz, obwohl natürlich a = 7 ein invertierbares Element in Z10 ist.
Beispiel 3.5.6 Betrachte die spezielle Wahl m = 231 , a = 65539, b = 0 . Dies ist der Zufallsgenerator RANDU, wie er von IBM in den Computern in den 60er Jahren verwendet wurde.
Die maximal erreichbare Zykluslänge r ist hier nicht ganz maximal, aber mit r = 229 nahezu
maximal. Wir kommen später auf die Güte dieses Generators noch zu sprechen.
Bemerkung 3.5.7 Die Wahl des Samens (Startwert der Iteration) kann für Anwendungen
durchaus kritisch sein. Will man etwa ein Internet-Pockerspiel mit zufälligen Kartenzuordnungen erzeugen, so hat man 2226 verschiedene Möglichkeiten zu bedenken. Ist der Samen aber
grundsätzlich nur eine 32-Bit-Zahl, so wird diese Anzahl auf 232 Möglichkeiten reduziert. Die
Ermittlung des Samens mittels Synchronisation mit der Server-Uhr etwa schränkt diese Anzahl
der Möglichkeiten noch viel drastischer ein.
44
Lemma 3.5.8 Für a ∈ Z und k ∈ N0 setzen wir
Sk (a) := 0 , falls k = 0 , Sk (a) := 1 + a + · · · + ak−1 , falls k ≥ 1 .
(3.7)
Damit gilt (in Z) :
Srk (a) := Sr (ak )Sk (a) , r ∈ N .
(3.8)
Beweis:
Dies rechnet man mittels vollständiger Induktion so nach:
r = 1 : Srk (a) = Sk (a) = S1 (ak )Sk (a), da S1 (ak ) = 1 ist.
r+1:
S(r+1)k (a) = Srk+k (a) = Srk (a) + ark + · · · + ark+k−1
= Sr (ak )Sk (a) + ark Sk (a) = Sk (a)(Sr (ak ) + ark ) = Sk (a)Sr+1 (ak ) .
Lemma 3.5.9 Sei p eine Primzahl und a eine ganze Zahl mit a = 1 mod p bzw. a = 1 mod 4,
falls p = 2 . Dann gilt für alle n, k ∈ N :
n
n
(a) Sp (ap ) ≡ 0 mod p , Sp (ap ) 6≡ 0 mod p2 .
(b)
(c)
Spn (a) ≡ 0 mod pn , Spn (a) 6≡ 0 mod pn+1 .
Sk (a) ≡ 0 mod pn ⇐⇒ pn |k .
Beweis:
Zu a). Wir führen den Beweis nur für p > 2 .
Wir haben auf Grund der Voraussetzung a = 1 + jp mit j ∈ Z . Mit der Binomialformel erhält
man at − 1 = tjp + cp2 mit einer Konstante c . daher
p−1
X
1
n
Sp (a ) − p =
(akp − 1) = pn jp p(p − 1) + c̃p2 ,
2
pn
k=0
mit einer weiteren Konstanten c̃ . Daraus liest man die Behauptung ab.
Zu b). Wir beweisen die Behauptung durch Induktion nach n .
n = 1 . Der Fall p = 2 ist trivial. Sei also p ungerade. Nach Voraussetzung ist a = 1 + jp mit
einer ganzen Zahl j , also ak ≡ 1 + kjp mod p2 , k ∈ N . Dann ist
Sp (a) − p ≡
p−1
p−1
X
X
p(p − 1)
≡ 0 mod p2 .
(ak − 1) ≡
kjp ≡ jp
2
k=0
k=0
Damit ist der Induktionsbeginn schon klar.
n + 1 . Der Induktionsschluss ergibt sich aus der Formel
n
Spn+1 (a) = Sp (ap )Spn (a) ,
die sich aus (3.8) ergibt, und a).
Zu c).
Sei pm die höchste Potenz von p mit pm |k, also k = pm l mit p 6 | l . Nach (3.8) ist
m
Sk (a) = Sl (ap )Spm (a) .
45
m
m
Es gilt Sl (ap ) ≡ l mod p , Sl (ap ) 6≡ 0 mod p ; dies verifiziert man wie oben. Daraus schließt
man
pn |Sk (a) ⇐⇒ pn |Spm (a) ,
und mit Lemma 3.5.9
pn |Sk (a) ⇐⇒ n ≤ m d.h. pn |Sk (a) ⇐⇒ pn |k ;
beachte dabei a).
Zum Beweis des Hauptergebnisses über lineare Kongruenz–Pseudozufallsgeneratoren ziehen
ein wichtiges Resultat für das Rechnen in Kongruenzen heran, das man oft zur Vereinfachung
von Argumentationen verwenden kann, den Chinesischen Restsatz. Wir führen ihn erst in
Kapitel über Abbildungen an.
Satz 3.5.10 Mit m, a, b ∈ Z, m ≥ 2 betrachte den Zufallsgenerator
G(x) := ax + b mod m , x ∈ {0, . . . , m − 1} .
(3.9)
Für beliebiges x0 ∈ {0, . . . , m − 1} sei die Folge (xn )n∈N definiert durch
xn+1 := G(xn ) , n ∈ N 0 .
Genau dann ist diese Folge periodisch mit der maximalen Periodenlänge m, wenn folgende Bedingungen erfüllt sind:
a) p|(a − 1) für alle Primteiler p von m ;
b) 4|(a − 1) falls 4|m ;
c) b und m sind teilerfremd.
Beweis:
Ist m = pk11 ·· · · ·pkr r die Primfaktorzerlegung von m, so hat man nach dem chinesischen Restsatz,
dass Zm isomorph zu Zpk1 × · · · × Zpkr r vermöge der Abbildung g in Satz 5.6.1mit den Eigen1
schaften aus (5.11) ist. Es ist daher leicht einzusehen, dass es genügt, den Satz für den Fall zu
beweisen, dass m eine Primzahlpotenz pk ist. Vorüberlegung: Es gilt
xi+1 − xi = f (xi ) − f (xi−1 ) = a(xi − xi−1 ) , i = 1, 2, . . . ,
und daher
xn − x0 =
n−1
X
i=0
ai (x1 − x0 ) = Sn (a)(x1 − x0 ) , xn − x0 ≡ Sn (a)(x1 − x0 ) mod m , n ∈ N . (3.10)
Wir zeigen nun die Notwendigkeit der Bedingungen. Es sei also vorausgesetzt, dass G einen
Zyklus der maximalen Länge m erzeugt. Beachte: m = pk .
Falls p nicht a − 1 teilt, sind m, a − 1 teilerfremd und die Gleichung (a − 1)x = b ist in Zm lösbar,
d.h. G besitzt einen Fixpunkt. Dann kann aber kein Zyklus der Länge m existieren. a) ist damit
gezeigt.
Es teile 4 die Zahl m, also m = 2k mit k ≥ 2 . Nach a) wissen wir schon, dass 2|(a − 1)
gilt; a ist also ungerade. Es muß also noch gezeigt werden, dass der Fall a = 3 mod 4 nicht
auftreten kann. Wäre dies doch der Fall, so würde S2 (a) = 1 + a = 0 mod 4 sein und daher
mit S2i (a) = Si (a2 )S2 (a) (siehe Lemma 3.5.9) schließlich S2i (a) = 0 mod 4 für alle i gelten. Mit
(3.10) folgt daraus x2i = x0 mod 4 und x2i+1 ≡ x1 mod 4 für alle i ; es könnte also keinen Zyklus
46
a
24298
65539
137
193
75
131
16333
3432
1711
b
99991
0
187
73
0
0
25887
6789
0
m
199017
231
216
216
231 − 1
235
215
9973
30269
Periode
nicht maximal
maximal
maximal
maximal
maximal
maximal
???
???
Quelle
Texas Instruments (TI-59)
RANDU
Knuth
Park-Miller
Neave
Oakenfull
Oakenfull
Wichman-Hill
Abbildung 3.4: Gebräuchliche Generatoren
maximaler Länge m geben. b) ist damit gezeigt.
In einem Zyklus der Länge m muß insbesondere das Element 0 vorkommen; wir dürfen daher o.
E. x0 = 0 und daher x1 = b voraussetzen. Dann sagt (3.10), dass xn = Sn (a)b gilt. Ist b nicht
invertierbar mod m, kann das Element 1 niemals im Zyklus auftreten. Damit ist auch c) klar.
Wir zeigen nun die Hinlänglichkeit der angeführten Bedingungen. Beachte m = pk .
Ist m = 2, dann ist b = 1 wegen c) und ein Zyklus der Länge 2 existiert. Im Fall p = 2 dürfen
wir also 4|m annehmen und die Voraussetzungen von Lemma 3.5.9 sind erfüllt. Es genügt zu
zeigen, dass für x0 = 0 ein Zyklus der Länge m erzeugt wird. Aus x0 = 0 folgt mit (3.10), dass
xn ≡ Sn (a)b mod m gilt. Da b invertierbar modulo m ist, ist dann xn = x0 = 0 gleichbedeutend
mit Sn (a) ≡ 0 mod m . Aus Lemma 3.5.9 c) folgt m|n und damit die Behauptung.
Satz 3.5.10 nennt uns die Bedingungen für einen affinen Kongruenz–Generator, damit er der
Minimalforderung, einen Zyklus maximaler Länge zu erzeugen, genügt. Jedoch garantieren diese
Bedingungen noch lange keinen guten Zufallsgenerator, wie nachfolgendes Beispiel zeigt.
Beispiel 3.5.11 Betrachte für einen beliebigen Modul m den Generator G(x) := x + 1 mod m .
Kein Zweifel, die Zykluslänge ist maximal, nämlich m, aber die erzeugte Folge 0, 1, 2, . . . , m −
1, 0, 1 . . . kann sicherlich nicht den Anspruch einer Zufallsfolge erheben.
Damit die Abbildung f aus (3.9) bijektiv wird, muss a zu m teilerfremd sein. Als Vorbereitung
auf die Frage, unter welchen Bedingungen dieser Typ von Generatoren einen Zyklus maximaler
Länge erzeugt, schauen wir uns Beispiele an.
Beispiel 3.5.12 Betrachte die spezielle Wahl m = 10, a = b = 7 . Hier ist der erzeugte Zyklus
7, 6, 9, 0, 7, 6, 9, 0, . . .
ziemlich kurz, obwohl natürlich a = 7 zu m teilerfremd, d.h. a ein invertierbares Element in Z10
ist.
In der Praxis wird häufig ein Modul der Form m = 2k verwendet (und dazu in der Regel der
√
√
Multiplikator a im Bereich m < a < m − m). In diesem Fall bedeuten die Bedingungen des
Satzes 3.5.10 einfach
a ≡ 1 mod 4 und b ungerade .
(3.11)
Im Beispiel 3.5.6 sind diese Bedingungen offenbar verletzt (a = 216 + 3 und b = 0) und Konsequenz ist ein verkürzter maximaler Zyklus.
47
Beispiel 3.5.13 In der Programmiersprache C++ gibt es einen Generator namens drand48:
Modul = 248 , a = 25214903917 , b = 11 .
Die Zykluslänge ist maximal, da die Bedingungen (3.11) erfült sind.
Beispiel 3.5.14 Von D. Knuth wurde der Generator
Modul = 216 , a = 137 , b = 187
vorgeschlagen. Die Zykluslänge ist maximal, da die Bedingungen (3.11) erfüllt sind.
Beispiel 3.5.15 Ein weiterer Generator:
Modul = 216 , a = 193 , b = 73 .
Die Zykluslänge ist maximal, da die Bedingungen (3.11) erfüllt sind.
Wie soll man nun gute und weniger gute Generatoren auseinanderhalten? Es liegt nahe, Paare,
Trippel,. . . von Zufallszahlen zu betrachten und deren geometrische Verteilung zu untersuchen.
Wir skalieren“ dazu die Zufallszahlen mit Modul m gemäß
”
X i :=
xi
∈ [0, 1] , i ∈ N0 .
m
Vergleichen wir die geometrische Verteilung der Paare (X i+1 , X i ) in [0, 1] × [0, 1] für die Generatoren aus Beispiel 3.5.14 und Beispiel 3.5.15. Man kann Geraden entdecken, worauf alle
Zufallszahlen liegen, 21 im ersten Fall, 8 im zweiten Fall; die Streifen dazwischen sind frei von
den erzeugten Zufallspaaren. Der maximale Abstand von solchen Streifen ist bei beiden Gene1
bei Beispiel 3.5.14, √132 bei Beispiel 3.5.15.
ratoren dementsprechend ziemlich verschieden: √274
Dies bedeutet, dass der Generator 3.5.14 größeres Vertrauen genießen sollte.
Betrachtet man für den Generator 3.5.6 Tripel (X i+2 , X i+1 , X i ) in [0, 1] × [0, 1] × [0, 1], so stellt
1
haben.
man fest, dass diese Tripel auf genau 15 Ebenen liegen, die jeweils einen Abstand √118
Neben der mangelnden Maximalität der Zykluslänge ein weiterer Nachteil dieses Generators.
3.6
Quantoren
Wir führen noch Quantoren ein. Damit können wir dann viele Resultate und Definitionen
noch kompakter hinschreiben. Wir werden viele Beispiele für die Nützlichkeit dieser Quantoren
kennenlernen.
Notation
Sprechweise
∀a ∈ A
“für alle Elemente a in A“
∃1 a ∈ A
“es existiert genau ein a in A“
∃a ∈ A
“es existiert a in A“
∀ a ∈ A (P (a)) “für alle Elemente a in A ist P (a) wahr“
∀ a ∈ A (P (a)) “für alle Elemente a in A gilt P (a)“
48
3.7
Übungen
1.)
Berechne ggT(2406, 654) .
2.)
Berechne d := ggT(721, 448) und finde Zahlen x, y ∈ Z mit d = 721x + 448y .
3.)
Zeige: Ist ggT(a, b) = d , so gilt ggT( ad , db ) = 1 .
4.)
Finde Zahlen x, y ∈ Z mit 966x + 686y = 70y .
5.)
Seien a, b ∈ Z mit ggT(a, b) 6= 0 . Definiere
k :=
ab
.
ggT(a, b)
Zeige:
(a)
a|k , b|k .
(b) Wenn m ∈ N ist mit a|m und b|m, dann gilt k|m .
6.)
Die Zahlen
a = 77 708 431
b = 2 640 858
beschreiben das Verhältnis der Winkel beim Umlauf um die Sonne der Erde und des
Saturn von der Sonne aus gesehen. Huygens wählte dafür den Näherungsbruch 206
7 ,
denn ein Modell für den Umlauf dieser Planeten um die Sonne aus Zahnrädern mit
77 708 431 bzw. 2 640 858 Zähnen herzustellen, war für Mechaniker nicht möglich. Dieser
Näherungswert ergibt sich, wenn man den Kettenbruch“
”
a
= 29 + [x, y, z, . . . ]
b
geeignet abbricht.
(a)
Berechne x, y, z in der obigen Darstellung.
7.)
(b) Wie ergibt sich damit der Näherungswert 206
7 ?
Bestimme ganze Zahlen x, y, z mit 252x + 420y + 315z = 42 .
8.)
Sei die Folge (un )n∈N definiert durch
u1 := 2 , un+1 := u2n − un + 1 (n ∈ N)
Finde die kleinste natürliche Zahl n, so dass un keine Primzahl ist. Ist u6 eine Primzahl?
9.)
Betrachte die Zahlen
H := {3j + 1|j ∈ N} ⊂ N .
(a)
Bestimme in dieser Menge in ein Produkt zerlegbare Elemente und nicht in ein
Produkt zerlegbare Elemente ( Primzahlen“ in H).
”
(b) Bestimme in dieser Menge eine Art Primfaktorzerlegung von 100. Ist diese eindeutig
bestimmt?
10.) Was läßt sich über die Güte eines affinen Zufallsgenerators mit m = 231 , a = 75 , b = 0
sagen?
11.) Überprüfe, ob der affine Generator
xi+1 := axi + b
mod m
mit a = 1711, b = 0, m = 30269 eine maximale Periode hat.
49
12.) Betrachte einen linearen Kongruenz-Generator mit den Daten
a = 3 141 592 621 , b = 2 718 281 829 , m = 10 000 000 000 .
(a)
Berechne zum Startwert x0 := 5 772 156 648 die nächste Zahl x1 .
(b) Ist die Periodenlänge dieses Generators maximal?
13.) Betrachte einen affinen Generator
xi+1 := axi + b
mod m .
Sei m1 ein Teiler von m .
(a)
Setze y i := xi mod m1 , i ∈ N . Zeige:
y i+1 = ay i + b
mod m1 .
(b) Was lässt sich mit Hilfe von a) aus Satz 3.5.10 zur Periode des Generators schließen?
14.) Seien Zufallszahlen xi mit dem affinen Kongruenz Generator mit a = 2, b = 0, m = 11
erzeugt. Setze ui := xi /m . Auf wie vielen Geraden in Q × Q liegen die Tupel (ui , ui+1 )?
15.) Seien Zufallszahlen xi mit dem affinen Kongruenz Generator mit a = 1229, b = 1, m =
2048 erzeugt. Setze ui := xi /m . Auf wie vielen Geraden in Q × Q liegen die Tupel
(ui , ui+1 )?
16.) Betrachte die folgende Variante eines Fibonacci-Generators:
n
xi+1 := xi−17 − xi−5 falls xi−17 − xi−5 ≥ 0 xi−17 − xi−5 + 1 , sonst .
Dabei sind x0 , . . . , x17 in [0, 1] zufällig“ vorgegeben.
”
Implementiere diesen Generator und plotte 10 000 Paare (xi , xi−1 ) in [0, 1]2 .
50
Herunterladen