Sie sind auf Seite 1von 25

Diskrete Mathematik

Mathematische Grundlagen

Eine Relation R A A heit


reflexiv, falls (a, a) R a A,
symmetrisch, falls (a, b) R (b, a) R a, b A,
antisymmetrisch, falls (a, b) R (b, a) R a = b a, b A,
transitiv, falls (a, b) R (b, c) R (a, c) R a, b, c A.
Eine Relation heit
Quasiordnung, wenn sie transitiv und reflexiv ist,
partielle Ordnung, wenn sie transitiv, reflexiv und antisymmetrisch ist,

Aquivalenzrelation,
wenn sie transitiv, reflexiv und symmetrisch ist.
Zwei Relationen R A A und R0 A0 A0 heien isomorph, falls es eine
Bijektion f : A A0 mit (a, b) R (f (a), f (b)) R0 a, b A gibt.
Satz 0.5 Ist n eine ungerade nat
urliche Zahl, so auch n2 .
Satz 0.6 F
ur n N gilt: ist n2 gerade, so auch n.
Satz 0.7 Es existiert kein x Q mit x2 = 2.
Satz 0.8 ( kleiner Gau) F
ur alle n N gilt

Pn

k=1

= 21 n(n + 1).

Landau-Symbole
f (n) = O(g(n))

f (n) = (g(n))
f (n) = (g(n))
f (n) = o(g(n))

f (n) = (g(n))

C 0, n0 N : |f (n)| C |g(n)| n n0
f (n)
bzw. lim sup
<
g(n)
nN
C > 0, n0 N : |f (n)| C |g(n)| n n0
f (n)
bzw. lim inf
>0
nN g(n)
f = O(g(n)) f = (g(n))
c > 0 n0 N : |f (n)| < c |g(n)| n n0
f (n)
bzw. lim
=0
nN g(n)
c 0 n0 N : |f (n)| > c |g(n)| n n0
f (n)
bzw. lim
=
nN g(n)

Kombinatorik

Anzahl der M
oglichkeiten, k Elemente aus einer n-elementigen Menge zu ziehen
geordnet
ungeordnet
 
n
k
mit Zur
ucklegen
n
k


n+k1
k
ohne Zur
ucklegen
n
k
Summenregel.
S=

Si |S| =

iI

|Si |.

iI

Produktregel.
S=

Si |S| =

iI

|Si |.

iI

Gleichheitsregel.
f : S T bijektiv |S| = |T |
Doppeltes Abz
ahlen.
X
X
RST
|{t T : (s, t) R}| =
|{s S : (s, t) R}|
sS

tT

Schubfachprinzip.
f : X Y, |X| > |Y | y Y : |f 1 (y)| 2.
Verallgemeinertes Schubfachprinzip.
f : X Y y Y : |f 1 (y)|


|X|
.
|Y |

Prinzip der Inklusion und Exklusion bzw. Siebformel.






r

n
n
[
X
X
\






A
(1)r1
Ai =
ij .




r=1
i=1
1i1 <<ir n j=1
Satz 1.19 (Pascal-Dreieck)
  
 

n
n1
n1
=
+
n, k N, n > k.
k
k1
k
Satz 1.20 (Vandermondesche Identit
at)


n+m
k


=


k  
X
n
m
.
`
k`
`=0

Satz 1.21 (Stirling-Dreieck zweiter Art)


Die Anzahl der k-elementigen Partitionen einer n-elementigen Menge ist
Sn,k = Sn1,k1 + kSn1,k ,
wobei S0,0 = 1 sowie Sn,k = 0 f
ur k > n und Sn,0 = 0 f
ur n > 0 sei. Die Summe
Bn =

n
X

Sn,k

k=0

ist die Anzahl aller Partitionen einer n-elementigen Menge. ( Bell-Zahl)

Satz 1.25 (Stirling-Dreieck erster Art)


Die Anzahl der Permutationen einer n-elementigen Menge mit k Zyklen ist
sn,k = sn1,k1 + (n 1)sn1,k ,
wobei s0,0 = 1 sowie sn,k = 0 f
ur k > n und sn,0 = 0 f
ur n > 0 sei. Die Summe
n
X

sn,k

k=0

ist die Anzahl aller Permutationen einer n-elementigen Menge, also |Sn | = n!.
Satz 1.27 Die Anzahl aller ungeordneten k-Partitionen einer Zahl n ist
Pn,k =

k
X

Pnk,j ,

j=0

wobei P0,0 = 1 sowie Pn,k = 0 f


ur k > n und Pn,0 = 0 f
ur n > 0 sei.
Satz 1.28
F
ur alle n k N ist die Anzahl der geordneten k-Partitionen von n genau


n1
.
k1
Anzahl der M
oglichkeiten, n Balle auf m Urnen zu verteilen
beliebig
surjektiv
 ninjektiv
B unterschiedlich
m
,
m

mn
m!Sn,m
U unterschiedlich
0
sonst



B gleich
n1
m
m+n1
m1
n
n
U unterschiedlich

B unterschiedlich Pm
1, m n
S
Sn,m
n,k
k=1
U gleich
 0 sonst
Pm
B gleich
1, m n
Pn,m
k=1 Pn,k
U gleich
0 sonst

bijektiv
n!, m = n
sonst
 0
1, m = n
 0 sonst
1, m = n
 0 sonst
1, m = n
0 sonst

Satz 1.30 (Catalan-Zahlen) Die Rekursionsgleichung der Catalan-Zahl Cn ist


C0 = 1, Cn =

n
X

Ck1 Cnk f
ur n 1,

k=1

diese beschreibt beispielsweise die Anzahl der syntaktisch korrekten Klammerausdr


ucke mit n Klammerpaaren, die Anzahl der Triangulierungen eines (n+2)Ecks oder die Anzahl er Binarbaume auf n Knoten. Die geschlossene Form ist
 
2n
1
.
Cn =
n+1 n

Asymptotik
F
ur (n) = |{p N : p ist eine Primzahl und p n}| gilt (n)

n
ln n .

Mit f (n) g(n) : f (n) = o(g(n)) gilt f


ur beliebige 0 < < 1 < c:
n

1 ln ln n ln n n n nc nln n cn nn cc .
Zudem gilt f
ur beliebige Konstanten , R: n n .

Des Weiteren gilt ln n = eln ln n e

ln n

e ln n = n f
ur alle > 0.

Arithmetisches und quadratisches Mittel.


v
u n
n
X
u1 X
1
xi t
x2 xi R, 1 i n.
n i=1
n i=1 i
Fakult
atsfunktion. Eine Abschatzung ergibt sich durch
nn/2 n! (n/2)n n 15.
Eine genauere Absch
atzung liefert die sogenannte Stirlingformel
 
 n n 

1
1
n! = 2n
+O
1+
.
e
12n
n2
Binomialkoeffizienten.
 n k
k

   
en k
n

.
k
k

Bellzahlen und Stirlingzahlen. Es gilt


ln(Bn ) = n ln n n ln ln n n +

 n 
n ln ln n
+O
,
ln n
ln n

andererseits gilt
Bn
max Sn,k Bn .
1kn
n

Harmonische Zahlen. F
ur Hn =

Pn

1
i=1 i

gilt
 
1
Hn = ln n + + O
,
n

wobei 0, 57721 die sogenannte Euler-Mascheroni-Konstante ist.

Ordnungen und Verb


ande
Thema oder nicht? (Nachfrage?)

Graphentheorie

Definition 2.1 Ein Graph G = (V, E) besteht


 aus einer Knotenmenge V mit
0 < |V | < und einer Kantenmenge E V2 := {{x, y} : x, y V, x 6= y}.
Definition 2.2 Die Nachbarschaft von x V im Graphen G = (V, E) ist
(x) := {y V : {x, y} E}.
Der Grad von x V ist die Groe der Nachbarschaft, also deg(x) := |(x)|.
Ein Graph G = (V, E) heit k-regul
ar, falls deg(x) = k x V gilt.
Satz 2.5 F
ur jeden Graphen G = (V, E) gilt
X
deg(v) = 2|E|.
vV

Korollar 2.6 Die Anzahl der Knoten ungeraden Grades ist gerade.
Weitere Definitonen.
Sei im Folgenden G = (V, E) ein Graph.
Ein Weg der L
ange ` ist ein Tupel (w0 , , w` ) mit {wi1 , wi } E 1 i `.
Ein Pfad der L
ange ` ist ein Weg (w0 , , w` ) mit wi 6= wj 1 i 6= j `.
Ein Kreis der L
ange ` 3 ist ein Pfad (w1 , , w` ) mit {w1 , w` } E.
Ein Graph G0 = (V 0 , E 0 ) heit Teilgraph von G, falls V 0 V und E 0 E.
Ein Graph G0 = (V 0 , E 0 ) heit induzierter Teilgraph von G, falls E 0 = E
Diesen schreibt man auch G[V 0 ].

V0
2

Definition 2.10 Ein Graph G = (V, E) heit zusammenh


angend, falls f
ur alle
u 6= v V ein Pfad (u, w1 , , w` , v) existiert, ansonsten unzusammenh
angend.
Ein unzusammenh
angender Graph besteht jedoch aus zusammenhangenden Teilgraphen Gi = (Vi , Ei ), diese nennt man Komponenten von G.
Satz 2.12 F
ur die Anzahl der Komponenten k von G = (V, E) gilt k |V ||E|.
Korollar 2.13 F
ur zusammenhangende G = (V, E) gilt |E| |V | 1.
Definition 2.14 Ein Baum ist ein zusammenhangender kreisfreier Graph.
Einen Knoten vom Grad 1 in einem Baum nennt man Blatt.
Lemma 2.16 Ein Baum mit n 2 Knoten enthalt mindestens zwei Blatter.
6

Lemma 2.18 Ist T = (V, E) ein Baum, u V ein Blatt, ist T [V \{u}] ein Baum.
Satz 2.19 Ist T = (V, E) ein Baum, so gilt |E| = |V | 1.
Lemma 2.20 Ist T = (V, E) ein Baum und u V , so hat T [V \ {u}] genau
k = deg(u) Komponenten T1 , , Tk , die allesamt Baume sind.
Lemma 2.21 Sei G = (V, E) zusammenhangend und C ein Kreis in G. Dann
ist f
ur alle in C enthaltenen Kanten e auch Ge := (V, E\{e}) zusammenhangend.
Satz 2.22 Jeder zusammenhangende Graph G = (V, E) besitzt einen Spannbaum, also einen Teilgraphen T = (V 0 , E 0 ) mit V 0 = V , der ein Baum ist.
Satz 2.24 (Cayley) Es gibt genau nn2 markierte Baume auf n Knoten.
ALGORITHMUS: Erzeugung des Pr
ufer-Codes aus einem Baum
Eingabe: Baum T = (V, E) mit V = [n].
Ausgabe: Wort t1 tn2 u
ber dem Alphabet [n].
while Anzahl Knoten |V | > 2 do begin
bestimme Blatt v im Baum T mit kleinster Markierung;
ti Nachbar von v im Baum T ;
entferne v aus V und {v, ti } aus E;
i i + 1;
end
ALGORITHMUS: Rekonstruktion eines Baumes aus seinem Pr
ufer-Code
Eingabe: Wort t1 tn2 u
ber dem Alphabet [n].
Ausgabe: Baum T ([n], E).
S ;
for i from 1 to n 2 do begin
w
ahle kleinsten Knoten si [n] \ S, der nicht in ti tn2 vorkommt;
f
uge die Kante ei := {si , ti } in den Graphen ein;
S S {si };
end
f
uge die Kante en1 := [n] \ S in den Graphen ein;

ALGORITHMUS: Breitensuche
Eingabe: Graph G = (V, E), Startknoten s V .
Ausgabe: Felder d[v], pred[v] mit v V .
for all v V do begin
if v = s then d[v] 0 else d[v] ;
pred[v] nil;
end
Q new Queue;
Q.Insert(s);
while not Q.IsEmpty() do begin
v Q.Dequeue();
for all u (v) do
if d[u] = then begin
d[u] d[v] + 1;
pred[u] v;
Q.Insert(u);
end
end
Satz 2.27 Ist G = (V, E) als Adjazenzliste gespeichert, ist die Laufzeit der
Breitensuche O(|V | + |E|). Am Ende des Algorithmus ist d[v] = , falls kein
s-v-Pfad existiert oder d[v] ist die Lange des k
urzesten s-v-Pfades. Ist G zusammenh
angend, so ist T (V, E) mit E = {{v, pred[v]} : v V \{s}} ein Spannbaum,
in dem jeder s-v-Pfad jeweils ein k
urzester s-v-Pfad ist.
Korollar 2.29 Ist G = (V, E) als Adjazenzliste gespeichert, lassen sich die Zusammenhangskomponenten in Laufzeit O(|V | + |E|) bestimmen.
ALGORITHMUS: Tiefensuche
Eingabe: Graph G = (V, E), Startknoten s V .
Ausgabe: Feld pred[v] mit v V .
for all v V do pred[v] nil;
S new Stack;
v s;
repeat
if u (v) \ {s} mit pred[u] = nil then
S.Push(v);
pred[u] v;
v u;
else if not S.IsEmpty() then
v S.Pop();
else
v nil;
until v = nil;
8

Satz 2.31 Ist G = (V, E) als Adjazenzliste gespeichert, benotigt die Tiefensuche
eine Laufzeit von O(|V | + |E|). Am Ende des Algorithmus gilt: ist G zusammenh
angend, so ist T (V, E) mit E = {{v, pred[v]} : v V \{s}} ein Spannbaum.
Definition 2.34 Ein Hamiltonkreis in einem Graphen G = (V, E) ist ein Kreis,
der alle Knoten genau einmal durchlauft. Existiert dieser, heit G hamiltonsch.
Satz 2.37 (Ore) Ein Graph G = (V, E) ist hamiltonsch, falls

{x, y} V2 \ E : deg(x) + deg(y) |V |.
Definition 2.38 Eine Eulertour in einem Graphen G ist ein Weg (u, a1 , , a` , u),
der alle Kanten genau einmal durchlauft. Existiert ein solcher, heit G eulersch.
Satz 2.39 G = (V, E) ist genau dann eulersch, wenn u V : 2 | deg(u) gilt.

Definition 2.41 Ein Graph heit planar, wenn er sich ohne Uberkreuzungen
zeichnen l
asst.
Satz 2.43 F
ur einen zusammenhangenden Graphen G = (V, E) gilt
#Gebiete = |E| |V | + 2.
Satz 2.44 F
ur jeden planaren Graphen G = (V, E) mit |V | 3 Knoten gilt
|E| 3|V | 6.
Anmerkung. Analog zu Satz 2.44 gilt f
ur jeden planaren Graphen G = (V, E)
mit |V | 3 Knoten: enth
alt G keinen Kreis der Lange 3, so gilt |E| 2|V | 4.
Satz 2.47 (Kuratowski) Ein Graph G = (V, E) ist genau dann planar, wenn er
keine Unterteilung des K5 oder des K3,3 als Teilgraphen enthalt.
Definition 2.48 Eine Knotenf
arbung von G = (V, E) mit k Farben ist eine
Abbildung c : V [k] mit {u, v} E c(u) 6= c(v). Die chromatische Zahl
von G ist das minimale k = (G), f
ur das eine Knotenfarbung existiert.
Satz 2.50 F
ur einen Graphen G gilt (G) = 2 genau dann, wenn G keine Kreise
ungerader L
ange enth
alt. Man nennt G dann bipartit.
Satz 2.51 (Vierfarbensatz) F
ur jeden planaren Graphen G ist (G) 4.
ALGORITHMUS: Greedy-F
arbung
Eingabe: Graph G = (V, E), wobei V = {v1 , , vn }.
Ausgabe: F
arbung c[v].
c[v1 ] 1;
for i from 2 to n do
c[vi ] min{k N : k 6= c(u) f
ur alle u (vi ) {v1 , , vi1 }};
9

Bemerkung. F
ur (G) := maxvV deg(v) erzeugt der Greedy-Algorithmus eine F
arbung mit C(G) Farben, wobei (G) C(G) (G) + 1 gilt.
Satz 2.53 (Brooks) Ist G = (V, E) zusammenhangend und G 6= Kn sowie
G 6= C2n+1 f
ur alle n N, so gilt (G) (G) und es gibt einen Algorithmus,
der in Laufzeit O(|V | + |E|) den Graphen mit (G) Farben farbt.
Defiinition 2.54 Eine Kantenf
arbung von G = (V, E) mit k Farben ist eine
Abbildung c : E [k] mit e f 6= c(e) 6= c(f ). Der chromatische Index
von G ist das minimale k = 0 (G), f
ur das eine Kantenfarbung existiert.
Satz 2.55 (Vizing) F
ur G = (V, E) gilt stets (G) 0 (G) (G) + 1 und es
gibt einen Algorithmus, der in Laufzeit O(|V ||E|) die Kanten mit k (G)+1
Farben f
arbt.
Definition 2.56 Ein Matching in G = (V, E) ist eine Teilmenge M E mit
e f = e 6= f in M . M heit perfektes Matching, falls |M | = |V2 | .
Satz 2.58 (Hall) Ist G = (A ]S
B, E) bipartit, so existiert genau dann ein Matching M mit |M | = |A|, falls | vX (v)| |X| f
ur alle X A gilt.
Korollar 2.60 Ein k-regularer bipartiter Graph G = (V, E) enthalt ein perfektes Matching und es gilt 0 (G) = k.
Korollar 2.61 Erf
ullt G = (A ] B, E) die Bedingung aus Satz 2.58, so lasst
sich ein Matching M mit |M | = |A| in der Zeit O(|V | |E|) bestimmen.
Definition 2.62 Ein Digraph ist ein Tupel (V, A) mit A V V .
Weitere Definitonen.
Sei im Folgenden D = (V, A) ein Digraph.
Ein Weg der L
ange ` ist ein Tupel (w0 , , w` ) mit (wi1 , wi ) A 1 i `.
Ein Pfad der L
ange ` ist ein Weg (w0 , , w` ) mit wi 6= wj 1 i 6= j `.
Ein Kreis der L
ange ` 3 ist ein Pfad (w1 , , w` ) mit (w` , w1 ) E.
Der zugrundeliegende Graph eines Digraphen D = (V, A) ist der Graph G =
(V, E) mit E = {{x, y} : (x, y) A (y, x) A}.
Bemerkung. Ein Digraph, der keine Kreise enthalt, heit azyklisch. Azyklische
Digraphen (und nur diese) kann man topologisch sortieren, also Knotennummern vergeben, so dass alle Kanten von kleineren zu groeren Nummern zeigen.

10

Definition 2.64 Ein Digraph D = (V, A) heit stark zusammenh


angend, wenn
f
ur alle u, v V ein u-v-Pfad existiert. D heit schwach zusammenh
angend,
wenn nur der zugrundeliegende Graph zusammenhangend ist.
Bemerkung. F
ur jeden Digraphen D = (V, A) ist A eine Relation auf V , andererseits induziert aber auch jede Relation R auf M einen entsprechenden Digraphen. So entsprechen etwa partielle Ordnungen azyklischen Digraphen, aus
dessen topologischer Sortierung man die lineare Erweiterung ablesen kann.
Bemerkung. Die transitive H
ulle R+ einer Relation R ist die kleinste transitive Relation, die R enth
alt.
ALGORITHMUS: Der Algorithmus von Warshall
Eingabe: Digraph D = (V, A), wobei V = [n].
Ausgabe: Transitive H
ulle D+ = (V, A+ ).
for i from 1 to n do
for j from 1 to n do
W [i, j] if (i, j) A then 1 else 0
for k from 1 to n do
for i from 1 to n do
for j from 1 to n do
W [i, j] max{W [i, j], W [i, k] W [k, j]};
A+ {(i, j) V V : W [i, j] = 1};
Satz 2.66 Der obige Algorithmus berechnet D+ zu D = (V, A) in Zeit O(|V |3 ).

Wurzelb
aume
Thema oder nicht? (Nachfrage?)

11

Zahlentheorie und Arithmetik

Satz 3.1 Zu jedem n N \ {1} existieren eindeutig bestimmte Primzahlen


Q`
p1 , , p` und zugeh
orige Exponenten k1 , , k` mit n = i=1 pki i .
Satz 3.2 Es gibt unendlich viele Primzahlen.
Satz 3.3 (Primzahlsatz) F
ur alle n N gilt (n) = (1 + o(1)) lnnn .
Lemma 3.5 F
ur alle a, b, m Z, m 2 gilt
(a + b) mod m = ((a mod m) + (b mod m)) mod m,
(a b) mod m = ((a mod m) (b mod m)) mod m.
Lemma 3.8 F
ur a, b, c, d, m Z, m 2, a b (mod m), c d (mod m) gilt
a + c b + d (mod m), a c b d (mod m).
Lemma 3.10 F
ur alle a, b, m Z, m 2 mit ggT(c, m) = 1 gilt
a c b c (mod m) a b (mod m).
ALGORITHMUS: Euklidischer Algorithmus
Eingabe: Zahlen m, n N mit m n.
Ausgabe: Gr
oter gemeinsamer Teiler ggT(m, n).
func Euklid(m, n);
if m | n then
return m;
else
return Euklid(n mod m, m);
Lemma 3.15 F
ur m, n N, m n mit m - n gilt ggT(m, n) = ggT(n mod m, m).
ALGORITHMUS: Erweiterter euklidischer Algorithmus
Eingabe: Zahlen m, n N mit m n.
Ausgabe: Zahlen x, y Z mit mx + ny = ggT(m, n).
func Erweiterter-Euklid(m, n);
if m | n then
return (1, 0);
else
(x0 , y 0 ) Erweiterter-Euklid(n mod m, m);
x y 0 x0 bn/mc; y x;
return (x, y);
Satz 3.16 Der erweiterte euklidische Algorithmus berechnet f
ur alle m, n N,
m n, ganze Zahlen x, y Z mit ggT(m, n) = mx + ny.
12

Satz 3.19 F
ur a, m Z, m 2, ggT(n, m) = 1 hat ax b (mod m) f
ur jedes
b Z genau eine L
osung in Zm .
Satz 3.20 (Chinesischer Restsatz) F
ur b1 , , bk , m1 , , mk N, wobei alle
Qk
mi paarweise teilerfremd seien, gibt es f
ur m = i=1 mi genau ein x Zm mit
x bi (mod mi ) f
ur alle 1 i k.
Satz 3.21 (kleiner Fermat) F
ur alle n N \ {1} gilt:
n ist eine Primzahl an1 1 (mod n) a Zn \ {0}.
Bemerkung. Es gilt Zn := {a Zn \ {0} : ggT(a, n) = 1} und (n) = |Zn |.
Lemma 3.22 Ist

Q`

i=1

pki i die Primzahlzerlegung von n N \ {1}, so gilt


(n) =

`
Y

(pi 1)pki i 1 .

i=1

Satz 3.23 (Euler) F


ur alle n N \ {1} gilt a(n) 1 (mod n) f
ur alle a Zn .
ALGORITHMUS: Auswertung eines Polynoms nach dem Horner-Schema
Eingabe: Feld a[0..n] mit p(x) =
Ausgabe: Wert p(x0 ).
p a[n];
for i from n 1 down to 0 do
p p x0 + a[i];
return(p);

Pn

i=0

a[i]xi , Stelle x0 R.

Satz 3.28 F
ur a, b K[x], b 6= 0 gibt es eindeutig bestimmte t, r K[x] mit
a(x) = t(x)b(x) + r(x) sowie r(x) = 0 grad(r) < grad(b).
Satz 3.29 Ein Polynom vom Grad n hat hochstens n Nullstellen.
Satz 3.31 (Fundamentalsatz der Algebra) Jedes Polynom p C[x] \ {0} vom
Grad n hat genau n (komplexe) Nullstellen.
Satz 3.33
ur f, g C[x], grad(g) < grad(f ) mit
Qr (Partialbruchzerlegung) F
f (x) = i=1 (1 i x)mi , i C, mi N 1 i r existieren gi C[x]
mit
r
gi (x)
g(x) X
=
und grad(gi ) < mi .
f (x)
(1

i x)mi
i=1
Ferner gilt: i R 1 i r f, g R[x] gi R[x] 1 i r.

13

Pn
Bemerkung. F
ur a = (a0 , , an ) sei pa das Polynom i=0 ai xi . Die diskrete
Fouriertransformierte von a an ist DFT(a, ) = (pa (1), pa (), , p( n )).
Umgekehrt ist die inverse diskrete Fouriertransformierte von b = (b0 , , bn )
zu definiert durch IDFT(b, ) = a, so dass pa ( i ) = bi f
ur alle 0 i n gilt.
Bemerkung. Eine Zahl heit n-te primitive Einheitswurzel, falls alle k f
ur
0 k < n paarweise verschiedene Nullstellen des Polynoms xn 1 sind.

Lemma 3.35 Uber


C ist = e2i/n eine n-te primitive Einheitswurzel.
1
2
Lemma 3.36 Ist eine n-te primitive Einheitswurzel,
Pn1 kj so auch . ist eine
(n/2)-te primitive Einheitswurzel und es gilt j=0 = 0 f
ur alle 1 k < n.

ALGORITHMUS: Diskrete Fouriertransformation


Eingabe: a = (a0 , , an1 ), n Zweierpotenz, Wert .
Ausgabe: (0 , , n1 ) = DFT(a, ).
func DFT(a, );
if n = 1 then
0 a0 ;
else
ag (a0 , a2 , , an2 );
au (a1 , a3 , , an1 );
(0 , , n/21 ) DFT(ag , 2 );
(0 , , n/21 ) DFT(au , 2 );
for i from 0 to n/2 1 do begin
i i + i i ;
n/2+i i + n/2+i i ;
end;
return (0 , , n1 );
Lemma 3.37 Ist DFT(a, ) Cn , so gilt IDFT(a, ) =

1
n

DFT(a, 1 ).

Satz 3.38 Das Produkt zweier Polynome vom Grad hochstens n lasst sich in
Zeit O(n log n) berechnen.

Anwendung: CRC-Pru
fsummen
Sei a Z2 [x] das Polynom, dessen Koeffizienten dem Datenblock entsprechen,
g Z2 [x] das Generatorpolynom der CRC-Norm, p Z2 [x] das Polynom, dessen
Koeffizienten den Pr
ufbits entsprechen und b Z2 [x] das Polynom des Blocks.
p soll die Eigenschaft haben, dass b = a xk + p durch g teilbar ist, wenn k die
Anzahl der Pr
ufziffern ist. Die Pr
ufziffern berechnen wir also, in dem wir a xk
durch g teilen, denn der Rest dieser Division ist genau p.

14

Rechnen mit groen Zahlen


Thema oder nicht? (Nachfrage?)

Anwendung: Kryptographische Protokolle


Das RSA-Verfahren basiert auf folgendem Priinzip: Man wahle zwei Primzahlen
p, q und berechne n = pq sowie (n) = (p 1)(q 1), dann wahle man ein
k Z(n) , dies ist der
offentliche Schl
ussel und ` = k 1 ist der geheime Schl
ussel.
k
`
Ist m die Nachricht und s der Chiffre, so gilt s = m mod n, m = s mod n.

15

Analyse von Algorithmen

ALGORITHMUS: Bin
are Suche
Eingabe: Aufsteigend sortiertes Feld a[1..n], Indizes 1 l r n, Element x.
Ausgabe: Index i mit a[i] = x; 0 falls alle Elemente a[l..r] ungleich x sind.
func Bin
areSuche(a, l, r, x);
if l = r then
if x = a[l] then
return(l);
else
return(0);
else
m l + b rl
2 c;
if x > a[m] then
return(Bin
areSuche(a, m + 1, r, x));
else
return(Bin
areSuche(a, l, m, x));
Satz 4.1 Die bin
are Suche braucht hochstens Bn Vergleiche, wobei
Bn = Bdn/2e f
ur n 2, B1 = 1
gilt. Die exakte L
osung der Rekursion lautet Bn = dlog2 ne + 1.
ALGORITHMUS: Mergesort
Eingabe: Feld a[1..n] von n Objekten, Indizes l, r, Wert Max > a[i] 1 i n.
Ausgabe: Feld a[1..n], wobei die Eintrage a[l..r] sortiert sind.
if Max = nil then begin
Max 0;
for i from 1 to n do
if a[i] > Max then Max a[i] + 1;
end
if r > l then
m l + b rl
2 c;
Mergesort(a, l, m, Max);
Mergesort(a, m + 1, r, Max);
for i from 0 to m l do b[i] a[l + i];
for i from 0 to r m 1 do c[i] a[m + 1 + i];
b[m l + 1] Max; c[r m] Max; i 0; j 0;
for k from l to r do
if b[i] c[j] then
a[k] b[i]; i i + 1;
else
a[k] c[j]; j j + 1;
endif
16

Satz 4.2 Mergesort ben


otigt Cn Vergleiche, um a[1..n] zu sortieren, wobei
Cn = Cbn/2c + Cdn/2e + n f
ur n 2, C1 = 0
gilt. Die exakte L
osung lautet Cn = nblog2 nc + 2n 2blog2 nc+1 .
Lemma 4.3 F
ur Fn = Fn1 + Fn2 f
ur n 2, F1 = 1, F0 = 0 gilt k N:
1. Ein Aufruf von Euklid(Fk+2 , Fk+3 ) benotigt genau k rekursive Aufrufe.
2. Ben
otigt Euklid(m, n) a k rekursive Aufrufe, ist n Fk+3 , m Fk+2 .
Folgerung. Die Anzahl rekursiver Aufrufe von Euklid(m, n) ist durch O(log n)
beschr
ankt.
ALGORITHMUS: Rekursive Berechnung des Binomialkoeffizenten (n,k)
Eingabe: n, k N0 .
Ausgabe: nk .
func Binomial-1(n, k);
if k = 0 then
return(1);
else if n < k then
return(0);
else
return(Binomial-1(n 1, k 1)+Binomial-1(n 1, k));
ALGORITHMUS: Dynamische Berechunng des Binomialkoeffizenten (n,k)
Eingabe: n, k N0 .
Ausgabe: nk .
if k > n then
return(0);
else
a[0, 0] 1;
for i from 1 to n do begin
a[i, 0] 1;
for j from 1 to i 1 do a[i, j] a[i 1, j 1] + a[i 1, j];
a[i, i] 1;
end
return(a[n, k]);

Satz 4.4 Der dynamisch programmierte Algorithmus berechnet nk mit O(n2 )
Additionen f
ur alle k N, der rekursive Algorithmus hingegen benotigt f
ur die
n
Berechnung von 2n
mehr
als
4
/(2n)
rekursive
Aufrufe.
2

17

Sei f
ur den folgenden Algorithmus ein Rucksack mit einer Kapazitat B N gegeben und n Objekte
mit Gewichten
wi und Profiten
pi ,P
1 i n. Gesucht ist
P
P
P
ein I [n] mit iI wi B, iI pi = max{ iJ pi : iJ wi B, J [n]}.
Lemma 4.5 Ist f (i, t) das minimal mogliche Gewicht einer Packung mit Profit
p t, wobei nur die ersten i Elemente zur Verf
ugung stehen, gilt
f (i, t) = min{f (i 1, t), wi + f (i 1, t pi )}.
ALGORITHMUS: Berechnung des Wertes einer optimalen Packung
Eingabe: n, w1 , P
, wn , p1P
, , pn , B.
Ausgabe:
max{
p
:
i
iJ
iJ wi B, J [n]}.
Pn
p
p
;
i
i=1
for t from 1 to p1 do f [1, t] w1 ;
for t from p1 + 1 to p do f [1, t] ;
for i from 2 to n do
for t from 1 to p do
if t pi then
f [i, t] min{f [i 1, t], wi };
else
f [i, t] min{f [i 1, t], wi + f [i 1, t pi ]};
return max{t : f [n, t] B};
Satz 4.6 Der Algorithmus ist korrekt und hat eine Laufzeit von O(n2 pmax ) mit
pmax = maxi[n] pi .
ALGORITHMUS: Der Algorithmus von Kruskal
Eingabe: G = (V, E) zusammenhangend, Gewichtsfunktion
P w : E R.
Ausgabe: Spannbaum T = (V, ET ) minimalen Gewichts eET we .
ET ;
while T = (V, ET ) ist kein Spannbaum do
X {e E \ ET : (V, ET {e}) ist kreisfrei};
w
ahle emin X mit w(emin ) = mineX w(e);
ET ET {emin };
Satz 4.7 F
ur einen zusammenhangenden Graphen G = (V, E) mit Gewichtsfunktion w : E R berechnet der Algorithmus einen minimalen Spannbaum.
Definition 4.8 Ein Matroid M = (S, U) besteht aus einer endlichen Menge S
und einer Familie unabh
angiger Teilmengen U P(S), so dass gilt:
1. U.
2. A U, B A B U.
3. A, B U, |B| = |A| + 1 x B \ A : A {x} U.
Eine inklusionsmaximale Menge A U nennt man Basis.
Bemerke: Aus Bedingung 3 folgt sofort, dass f
ur Basen A, B stets |A| = |B| gilt.
18

ALGORITHMUS: Greedy-Algorithmus f
ur Matroide
Eingabe: Matroid M = (S,P
U), Gewichtsfunktion
P w : S R.
Ausgabe: Basis A U mit sA w(s) = min{ sB w(s) : B Basis}. A ;
while A ist keine Basis von M do
X {x S \ A : A {x} U};
w
ahle xmin X mit w(xmin ) = minxX w(x);
A A {xmin };
Satz 4.11 F
ur ein Matroid M = (S, U) mit Gewichtsfunktion w : S R findet
der Greedy-Algorithmus eine Basis minimalen Gewichts.
Bemerkung. Den Algorithmus von Kruskal erhalt man, wenn S die Kantenmenge eines zusammenh
angenden Graphen und U die Menge aller Walder ist.
Satz 4.12 Ist S eine endliche Menge und U P(S), so dass 1 und 2 aus
Definition 4.8 erf
ullt sind. Dann gilt: Bestimmt der Greedy-Algorithmus f
ur
jede Gewichtsfunktion w : S R eine inklusionsmaximale unabhangige Menge
minimalen Gewichts, ist (S, U) ein Matroid.

Rekursionsgleichungen
P
Definition 4.13 Eine Rekursionsgleichung xn = bk + i = 1k ai xn i n k
mit Anfangsbedingungen xi = bi 0 i < k heit lineare Rekursionsgleichung
k-ter Ordnung. F
ur bk = 0 nennt man diese homogen, ansonsten inhomogen.
Satz 4.15 Eine inhomogene lineare Rekursionsgleichung erster Ordnung
xn = axn1 + b1 f
ur n 1, x0 = b0 , a, b0 , b1 R
hat die geschlossene Form bzw. L
osung
(
n
1
b0 an + b1 aa1
xn =
b0 + nb1

f
ur a 6= 1,
sonst.

Satz 4.17 Eine homogene lineare Rekursionsgleichung zweiter Ordnung


xn =

2
X

ai xni f
ur n 2, x1 = b1 , x0 = b0 , a1 , a2 , b0 , b1 R,

i=1

wobei (a1 , a2 ) 6= (0, 0) ist, hat die geschlossene Form


(
An B n f
ur 6= ,
xn =
(An + B)n sonst,
wobei , die reellen L
osungen von t2 a1 t a2 = 0 seien und
(
1 b0 b1 b0
, ) f
ur 6= ,
( b
(A, B) =
b1 b0
sonst.
( , b0 )
19

Satz 4.19 (Master-Theorem) Seien 1, > 1, C 0 Konstanten und f (n)


eine positive Funktion. Seien ci (n) Funktionen mit |ci (n)| C 1 i und
n N. Ist T (n) eine Funktion mit T (1) = 0 und Rekursionsgleichung



X
n
T (n) = f (n) +
T
+ ci (n) f
ur n 1,

i=1
so gilt

log

(n ),
T (n) = (f (n) log n),

(f (n)),

falls f (n) = O(nlog ) f


ur ein > 0,
log
falls f (n) = (n
(log n) ) f
ur ein 0,
log +
falls f (n) = (n
) f
ur ein > 0.

Satz 4.20 Wenn T (x) = 0 f


ur x 1 ist und T (x) = T (x/) + x f
ur x > 1 gilt
und {log x} den nicht-ganzzahligen Teil von log x bezeichnet, dann ist

falls < ,
x,

falls = ,
T (x) = (1 + o(1)) x log x,

{log x}

log

x
, falls > .

Erzeugende Funktionen
Ist (an )n0 = (a0 , a1 , a2 , ) eine unendliche Folge, so ist
X
a0 + a1 x + a2 x2 + =
an xn
n0

die formale Potenzreihe. Hierbei gelten die Rechenregeln:


Addition
X
X
X
ck = ak + bk k N0
cn xn =
an xn +
bn x n ,
n0

n0

n0

Multiplikation / Faltung
ck =

k
X

ai bki n N0

i=0

an xn

n0

bn xn =

cn x n ,

n0

k0

Verschiebung nach rechts


(
X
X
X
ak` f
ur k `,
bk =

bn x n =
bn xn = x`
an xn
0
sonst
n0
n0
n`
Verschiebung nach links
bk = ak+` k N0

X
n0

20

bn xn = x`

X
n`

an xn

Satz 4.22 Zu (an )n0 existiert genau dann, wenn a0 6= 0, ein (bn )n0 mit

X
X

an xn
bn xn = 1.
n0

n0

Diese inverse Potenzreihe ist genau b0 =

1
a0 , bn

1
a0

Pn

k=1

ak bnk f
ur n 1.

Bemerkung. Leiten wir die Potenzreihe zu (a0 , a1 , , ak , ) ab, entsteht

X
X
d X
an xn =
nan xn1 =
(n + 1)an+1 xn ,
dx
n0

n1

n0

also die Potenzreihe zur Folge (a1 , 2a2 , , kak , ).


Bemerkung. Die Funktion A : R R mit A(x) =
erzeugende Funktion der formalen Potenzreihe (an )n0 .
Formale Potenzreihen
an

n0

1, 1, 1,

0, 1, 2, 3,

an

1, a, a2 , a3 ,

n2

r
n

0, 1, 4, 9,
 
1, r, 2r , 3r ,

1, r + 1, r+2
2 ,

1
n

1, 1, 12 , 13 , 14 ,

1
n!

1
1, 1, 12 , 16 , 24
,

Hn

25
0, 1, 32 , 11
6 , 12 ,


r+n


r+3
3

n0

an xn nennt man

an xn und ihre erzeugenden Funktionen A(x)

Folge

Potenzreihe
P
n
n0 x
P
n
n0 nx
P
n
n0 (ax)
P
2 n
n0 n x
 n
P
r
n0 n x

P
r+n n
n0
n x
P
1 n
n1 n x
P
1 n
n0 n! x
P
n
n1 Hn x

A(x)
1
1x
x
(1x)2
1
1ax
x(1+x)
(1x)3

(1 + x)r
1
(1x)r+1
1
ln 1x

ex
1
1x

1
ln 1x

P
Satz 4.27 Die erzeugende Funktion von n0 Cn xn , wobei Cn die Catalan
2n
1
Zahlen sind, ist C(x) = xC(x)2 + 1 und es gilt Cn = n+1
n .
Satz 4.28 Quicksort ben
otigt zum Sortieren von n Zahlen im Durchschnitt
genau 2(n + 1)(Hn+1 1) Vergleiche.

21

Algebra

Definition 5.1 Eine Algebra hS, f1 , , ft i besteht aus einer Menge S 6=


und Operatoren f1 , , fn auf S. Diese sind Abbildungen fi : S mi S, wobei
man mi die Stelligkeit von fi nennt. F
ur m = 2 nennt man fi auch Verkn
upfung.
Definition 5.6 Sei hS, i eine Algebra mit zweistelligem Operator . Ein e S
heit linksneutrales Element, wenn e a = a a S gilt. Analog heit e S
rechtsneutral f
ur a e = a a S. Gilt beides, nennt man e neutrales Element.
Lemma 5.8 F
ur eine Algebra hS, i mit linksneutralem Element c und rechtsneutralem Element d gilt c = d. Somit kann es nur ein neutrales Element geben.
Definition 5.10 Sei hS, i eine Algebra mit neutralem Element e. F
ur a S
heit x S linksinverses Element von a, falls x a = e. Analog heit x S
mit ax = e rechtsinverses Element. Gilt beides, nennt man x das Inverse von a.
Lemma 5.11 Sei hS, i eine Algebra mit assoziativer Verkn
upfung , also
x (y z) = (x y) z x, y, z S.
Dann gilt f
ur alle a, x, y S: x a = e = a y x = y. Insbesondere kann es
zu jedem a S nur ein inverses Element geben.
Definition 5.13 F
ur eine Algebra hS, f1 , , ft i heit S 0 S Unteralgebra, falls
S 0 6= ist und f
ur alle 1 i t gilt: fi (a1 , , ami ) S 0 a1 , , ami S 0 .
Definition 5.15 Die Signatur von hS, f1 , , ft i, fi : S mi S ist (mi )1it .
f1 , , ft i Algebren mit
Definition 5.17 Seien A = hS, f1 , , ft i, A = hS,
falls
gleicher Signatur. Wir nennen h : S S Homomorphismus von A nach A,
1 i t gilt: fi (h(a1 ), , h(am )) = h(fi (a1 , , am )) a1 , , am S.
i

Lemma 5.21 Ist h : S S ein Homomorphismus von A = hS, f1 , , ft i nach


f1 , , ft i, so ist hh(S), f1 , , ft i eine Unteralgebra von A.

A = hS,
Definition 5.22 Wir nennen einen Homomorphismus zwischen zwei Algebren
A und A Isomorphismus, falls er bijektiv ist. Existiert eine solche Abbildung,
Einen Isomorphismus von
nennt man A und A isomorph, geschrieben A
= A.
A nach A nennt man auch Automorphismus auf A.
Lemma 5.26 Ein Isomorphismus bildet neutrale Elemente auf neutrale Elemente und inverse Elemente auf inverse Elemente ab.
so ist h1 ein IsomorLemma 5.27 Ist h ein Isomorphismus von A nach A,
phismus von A nach A.

22

Definition 5.28 Eine Algebra hS, i mit zweistelligem Operator heit Halbgruppe, falls assoziativ ist.
Definition 5.29 Eine Halbgruppe mit neutralem Element nennt man Monoid.
Definition 5.30 Ein Monoid heit Gruppe, falls jedes Element ein Inverses hat.
Definition 5.31 Ein(e) Halbgruppe/Monoid/Gruppe hS, i heit abelsch, falls
die Verkn
upfung kommutativ ist, also a b = b a a, b S gilt.
Definition 5.36 Eine Algebra A = hS, , i heit Ring, wenn
(R1) hS, i eine abelsche Gruppe mit neutralem Element 0 S ist,
(R2) hS, i ein Monoid mit neutralem Element 1 S ist,
(R3) a (b c) = (a b) (a c) (b c) a = (b a) (c a) a, b, c S.
Zu R3 sagt man: und sind distributiv.
Definition 5.37 Ein Ring A = hS, , i heit K
orper, wenn hS \ {0}, i eine
abelsche Gruppe ist.

Boolesche Algebren
Thema oder nicht? (Nachfrage?)

Gruppentheorie
Bemerkung. Wir vereinbaren a +n b := (a + b) mod n und a n b = (a b) mod n.
uglich n eine Gruppe.
Satz 5.48 F
ur alle n N \ {2} ist Zn bez
Satz 5.50 Die Rechenregeln f
ur Gruppen hG, i sind:
1. (Involutionsgesetz) a = (a1 )1 a G,
2. (K
urzungsregeln) a b = c b a = c b a = b c a, b, c G,
3. (Eindeutige L
osbarkeit linearer Gleichungen)
a x = b x = a1 b, x a = b x = b a1 a, b G,
4. (Injektivit
at von ) a b 6= c b a 6= c b a 6= b c a, b, c G,
5. (Surjektivit
at von ) a.b G x, y G : a x = b, y a = b.
Definition 5.51 Ist G eine Gruppe a G, so ist die Ordnung von a
ord(a) := min{r N : ar = e}.
Existiert kein solches r N, setzt man ord(a) := .
Lemma 5.53 Ist G eine Gruppe mit |G| < , so ist ord(a) < a G.
Lemma 5.54 Ist G eine Gruppe und a G, so gilt ak = e ord(a) | k.

23

Lemma 5.55 Ist G eine abelsche Gruppe und a, b G mit ord(a), ord(b) <
und ggT(ord(a), ord(b)) = 1, so ist ord(a b) = ord(a) ord(b).
Korollar 5.56 Ist G endlich und a G mit ord(a) = max{ord(b) : b G}, so
gilt ord(b) | ord(a) b G.
Definition 5.57 Eine Unteralgebra hH, i einer Gruppe hG, i heit Untergruppe von G, falls hH, i eine Gruppe ist.
Lemma 5.59 Das neutrale Element jeder Untergruppe ist das der Gruppe.
Lemma 5.60 Jede Unteralgebra einer endlichen Gruppe ist eine Untergruppe.
Lemma 5.61 Sind H und K Untergruppen von G, so auch H K.
Lemma 5.62 F
ur a G ist Sa := {ak : k N} die kleinste Untergruppe von
G, die a enth
alt.
Definition 5.64 Ist H G eine Untergruppe, b G, nennt man H b = {h b :
h H} bzw. b H = {b h : h H} rechte bzw. linke Nebenklasse von H in G.
Lemma 5.67 Ist H G eine Untergruppe, so gilt:
1. H h = H h H.
2. F
ur b, c G sind H b und H c entweder identisch oder disjunkt.
3. Ist H endlich, so gilt |H b| = |H| b G.
F
ur linke Nebenklassen gelten analoge Aussagen.
Korollar 5.68 Ist H G eine Untergruppe, bildet die Menge der Rechtsnebenklassen (und analog der Linksnebenklassen) von H eine Partition von G.
Definition 5.69 Die Anzahl der verschiedenen Nebenklassen von H in G nennt
man Index von H in G, geschrieben indG (H) oder [G : H].
Satz 5.70 (Lagrange) Ist H G eine Untergruppe, so gilt |G| = |H| indG (H).
Korollar 5.71 Ist G eine Gruppe, so teilt ord(a) |G| f
ur alle a G.
Definition 5.72 Eine Gruppe G heit zyklisch mit Generator a, falls G = Sa .
Satz 5.74 Alle zyklischen Gruppen sind isomorph zu hZ, +i oder hZ|G| , +|G| i.
Satz 5.76 Jede Untergruppe einer zyklischen Gruppe ist zyklisch.

24

Das Lemma von Burnside


Bemerkung. F
ur eine Gruppe G und eine Menge X ist eine Gruppenoperation
von G auf X eine Abbildung G X X, (a, x) 7 a.x mit 1.x = x x X
und (ab).x = a.(b.x) a, b G, x X. F
ur x X heit Ox = {g.x : g G} der
Orbit von x und Gx = {g G : g.x = x} der Stabilisator von x.
Lemma 5.79 F
ur eine Gruppenoperation von G auf X ist die Anzahl der Orbits
|X/G| =

1 X
fix(g) f
ur fix(g) = |{x X : g.x = x}|.
|G|
gG

Endliche K
orper
Thema oder nicht? (Nachfrage?)

25