Kapitel 2: Grundwissen über Zahlen - math.uni

Werbung
Kapitel 2:
Grundwissen über Zahlen
2.1
2.2
2.3
2.4
Vollständige Induktion
Primfaktorzerlegung
Darstellungen ganzer Zahlen
Der Euklidische Algorithmus
Prinzip der vollständigen Induktion — (Satz 2.1.4)
Für jedes n aus N sei P (n) eine Aussage. Angenommen, man
kann die beiden folgenden Eigenschaften nachweisen:
1. Induktionsverankerung:
Es ist P (n0 ) = wahr (für ein n0 ∈ N).
2. Induktionsschritt:
Ist m ≥ n0 (beliebig) und P (m) = wahr, so folgt P (m+1) =
wahr.
Dann ist P (n) = wahr für alle n ≥ n0 .
Beispiel 2.1.9
m
m!
7m
1
1
7
2
2
49
3
6
343
4
24
2401
5
120
16807
6
720
117649
7
5040
823543
8 40320
5764801
9 362880 40353607
10 3628800 282475249
18! = 6402373705728000 > 1628413597910449 = 718 ,
18! =
=
=
>
=
=
216 · 38 · 53 · 72 · 11 · 13 · 17
(215 ) · (94 · 5) · (2 · 52 ) · (72 ) · (11 · 13 · 17)
(85 ) · 32805 · 50 · (72 ) · 2431
(75 ) · 16807 · (72 ) · (72 ) · 2401
(75 ) · (75 ) · (72 ) · (72 ) · (74 )
718 .
Prinzip der vollständigen Induktion, zweite Form — (Satz 2.2.4)
Für jedes n aus N sei Q(n) eine Aussage. Angenommen, man
kann die beiden folgenden Eigenschaften nachweisen:
1. Induktionsverankerung:
Es ist Q(0) = wahr.
2. Induktionsschritt:
Ist Q(k) = wahr für alle k ≤ m, so folgt Q(m + 1) = wahr.
Dann ist Q(n) = wahr für alle n ∈ N.
Beispiel zur Primfaktorzerlegung
32! = 1 · 2 · 3 · 4 · 5 · 6 · 7 · 8 · 9 · 10 · 11 · 12·
13 · 14 · 15 · 16 · 17 · 18 · 19 · 20 · 21 · 22·
23 · 24 · 25 · 26 · 27 · 28 · 29 · 30 · 31 · 32
= 2 · 3 · (2 · 2) · 5 · (2 · 3) · 7 · (2 · 2 · 2) · (3 · 3) · (2 · 5)·
11 · (2 · 2 · 3) · 13 · (2 · 7) · (3 · 5) · (2 · 2 · 2 · 2)·
17 · (2 · 3 · 3) · 19 · (2 · 2 · 5) · (3 · 7) · (2 · 11)
23 · (2 · 2 · 2 · 3) · (5 · 5) · (2 · 13) · (3 · 3 · 3)·
(2 · 2 · 7) · 29 · (2 · 3 · 5) · 31 · (2 · 2 · 2 · 2 · 2)
= (2 · 2 · 2 · 2 · 2 · 2 · 2 · 2 · 2 · 2 · 2 · 2 · 2 · 2 · 2 · 2·
2 · 2 · 2 · 2 · 2 · 2 · 2 · 2 · 2 · 2 · 2 · 2 · 2 · 2 · 2)·
(3 · 3 · 3 · 3 · 3 · 3 · 3 · 3 · 3 · 3 · 3 · 3 · 3 · 3)
(5 · 5 · 5 · 5 · 5 · 5 · 5) · (7 · 7 · 7 · 7)·
(11 · 11) · (13 · 13) · 17 · 19 · 23 · 29 · 31
= 231 · 314 · 57 · 74 · 112 · 132 · 17 · 19 · 23 · 29 · 31
in Bezug auf Satz 2.2.9 ist mit n = 32! dann
m = 65
p1 = p2 = ... = p31 = 2
p32 = ... = p45 = 3
p46 = ... = p52 = 5
p53 = ... = p56 = 7
p57 = p58 = 11
p59 = p60 = 13
p61 = 17
p62 = 19
p63 = 23
p64 = 29
p65 = 31
in Bezug auf Satz 2.2.10 ist mit n = 32! dann
t = 11
q1 = 2
q2 = 3
q3 = 5
q4 = 7
q5 = 11
q6 = 13
q7 = 17
q8 = 19
q9 = 23
q10 = 29
q11 = 31
a1 = 31
a2 = 14
a3 = 7
a4 = 4
a5 = 2
a6 = 2
a7 = 1
a8 = 1
a9 = 1
a10 = 1
a11 = 1
Naives Faktorisierungsverfahren
Proposition 2.2.11 Ist K ∈ N∗ √
keine Primzahl, so gibt es
einen Primteiler p von K mit p ≤ ⌈ K⌉.
Beispiel. Wollen N = 3138428376720 faktorisieren.
Liste P100 aller Primzahlen p ≤ 100:
P100 = { 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47,
53, 59, 61, 67, 71, 73, 79, 83, 89, 97 }.
Test auf Teilbarkeit von N liefert
N = 24 · 32 · 5 · 7 · 13 · 19 · 37 · 61 · 1117.
√
Es ist 1117 Primzahl, sonst hätte sie Primteiler p ≤ ⌈ 1117⌉ =
35.
Beispiel. Will man mit diesem Verfahren zeigen, dass
4107187258297
eine Primzahl ist, so muss man alle Primzahlen p mit
√
p ≤ ⌈ 4107187258297⌉ = 2026620
dahingehend testen, ob sie 4107187258297 teilen.
Immerhin gibt es genau 150776 solche Primzahlen p.
B-adische Darstellung — (Algorithmus 2.3.5)
• Eingabe: ein a ∈ N∗ ;
• Ausgabe: eine Liste L = [αm , αm−1 , ..., α0 ] mit
αi ∈ {0, 1, ..., B −P1} für alle i und
i
αm > 0 und a = m
i=0 αi B ;
• L := [ ], (∗ L ist zunächst die leere Liste ∗)
x := a, k := −1,
P
(∗ a = xB k+1 + ki=0 αi B i ∗)
while not(x = 0) do
k := k + 1,
αk := x mod B,
füge αk zum Anfang der Liste L hinzu,
y := x div B,
x := y
P
(∗ a = xB k+1 + ki=0 αi B i ∗)
end-do,
gib die Liste L aus.
Euklidischer Algorithmus — (Algorithmus 2.4.4)
• Eingabe: a, b ∈ N;
• Ausgabe: d = ggT(a, b);
• s := a, t := b,
(∗ ggT(a, b) = ggT(s, t) ∗)
while t 6= 0 do
r := s mod t,
s := t, t := r
(∗ ggT(a, b) = ggT(s, t) ∗)
end-do,
(∗ ggT(a, b) = ggT(s, t), t = 0 ∗)
d := s,
(∗ d = ggT(a, b) ∗)
Ausgabe von d.
Beispiel. a = 15027133, b = 8562227 ergibt ggT(a, b) = 163.
s
t
15027133 8562227
8562227 6464906
6464906 2097321
2097321 172943
172943
22005
22005
18908
18908
3097
3097
326
326
163
163
0
Erweiterter Euklidischer Algorithmus — (Algorithmus 2.4.6)
• Eingabe: a, b ∈ N;
• Ausgabe: d = ggT(a, b) und x, y ∈ Z mit xa + yb = d;
• s := a, t := b,
x := 1, y := 0, u := 0, v := 1,
(∗ xa + yb = s, ua + vb = t ∗)
while t 6= 0 do
q := s div t,
ρ := s − qt, (∗ ρ = s mod t ∗)
ξ := x − qu,
η := y − qv,
s := t, t := ρ,
x := u, y := v, u := ξ, v := η
(∗ xa + yb = s, ua + vb = t ∗)
end-do,
(∗ s = xa + yb, ua + vb = t, t = 0, s = ggT(a, b) ∗)
d := s,
Ausgabe von x, y, d.
nützliche Update-Formeln:
uneu
vneu
xneu
yneu
:=
:=
:=
:=
xalt − qneu ualt ,
yalt − qneu valt ,
ualt ,
valt .
Herunterladen