130 likes | 234 Views
Wiederholung. Gerichtete Graphen Digraph D=(V,E) DAG: kreisfreier Digraph topologische Sortierung Transitive Hülle Algorithmus von Warshall: O (n 3 ) Dynamische Programmierung Wurzelbäume Suchbäume . TexPoint fonts used in EMF.
E N D
Wiederholung Gerichtete Graphen • Digraph D=(V,E) • DAG: kreisfreier Digraph • topologische Sortierung • Transitive Hülle • Algorithmus von Warshall: O(n3) • Dynamische Programmierung • Wurzelbäume • Suchbäume TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AAA
Primzahlen • a | b ,9 k 2Z: ak=b • a - b ,@ k 2Z: ak=b • ggT(a,b) := maxk2N{k | a und k | b} • 1 · ggT(a,b) · min{a,b} • kgV(a,b) := mink2N{a | k und b | k} • a>1 prim , {k2N | k|a} = {1,a}
Modulare Arithmetik • Division mit Rest • a= ba/mc*m + r, mit 0 · r < m • Gleicher Rest von a/m und b/m: • a ´ b mod m , m | a-b , m*k=(a-b), d.h. a = a§m = a§2m = a§3m = … mod m • Vereinfachte Notation: a = b mod m • (Z, ´) Äquivalenzrelation: • reflexiv: a=a mod m • symmetrisch: a=b mod m , b=a mod M • transitiv: a=b mod m und b=c mod m ) a=c mod m • m Äquivalenzklassen mit Repräsentanten Zm={0,1,…,m-1}
Anwendungen von modularer Arithmetik Pseudozufallszahlen-Generator: Linearer Kongruenz-Generator • Beginne mit zufälligem Startwert (Seed) x02Zm. • Berechne iterativ für festes a,b2Zm: • xi = a*xi-1 + b mod m für i=1,2,3,… • x1,x2,x3,… definieren Pseudozufallsfolge. • Für einige Anwendungen kein guter Generator.
Teilbarkeit durch 3 Satz: Sei n eine natürliche Zahl. 3|n , 3|Quersumme(n) • Verwende Dezimaldarstellung. Reduziere mod 3: n=i ni*10i = sumi ni*1i = sumi ni mod 3 ) n=0 mod 3 ,i ni = 0 mod 3
Teilbarkeit von Linearkombinationen Lemma Linearkomb.: Für alle a,b,d 2N gilt: d | a und d | b ) d | (xa+yb) für alle x,y 2Z Aus der Voraussetzung: dka=a, dkb=b ) (xa+yb) = (xdka+ydkb) = d(xka+ykb) ) d | (xa+yb)
ggT als Linearkombination Satz von Bezout: Seien a,b 2Z. Es gilt: ggT(a,b) = min{ax+by 2N | x,y 2Z}. Sei S={ax‘+by‘ | x‘,y‘ 2Z}. Sei s=ax+by 2 S minimal. „ggT(a,b) · s“: • Lemma auf letzter Folie: ggT(a,b) | s ) ggT(a,b) · s „ggT(a,b) ¸ s“: Sei q=ba/sc. • a mod s = a-qs = a-q(ax+by) = a(1-qx) + b(-qy). ) a mod s 2 S und a mod s < s ) a mod s = 0. ) s | a und analog kann s | b gezeigt werden ) ggT(a,b) ¸ s ggT-Korollar: Sei a, b 2Z. Dann gilt: d | a und d | b ) d | ggT(a,b).
Teilerfremde Zahlen Def: a,b teilerfremd , ggT(a,b)=1 Satz zur Teilerfremdheit: Für alle a, b, p 2Z gilt: ggT(a,p)=1 und ggT(b,p)=1 ) ggT(ab,p)=1 Es gibt x,y,x‘,y‘ mit xa + yp = 1 und x‘b + y‘p = 1. ) xax‘b + xay‘p + ypx‘b + yy‘pp = (xx‘)ab + (xay‘ + yx‘b + yy‘p)p = 1 ) ggT(ab, p) = 1
Anwendung ISBN-Kode ISBN-Nummer: • Länderkode-Verlagsnummer-laufendeNr-Prüfziffer • Prüfziffer = i i-te Ziffer * i mod 11 • Steger: „Diskrete Strukturen“, ISBN 3-540-67597-3 • 1*3+2*5+3*4+4*0+…+9*7 = 3 mod 11 Satz: Der ISBN-Kode erkennt einen Fehler. • Seien z1,…,z9 die Ziffern. • Sei 0 < ej < 10 ein Fehler in der j-ten Ziffer, d.h. zj‘ = zj + ej • z.z.: i i*zi (i i*zi) +j*ej mod 11. , j*ej 0 mod 11. • Satz zur Teilerfremdheit: ggT(j,11) = 1 und ggT(ej,11)=1 ) ggT(j*ej,11) = 1 ) j*ej 0 mod 11
Teilersatz Teilersatz: Für alle a,b 2Z und primes p gilt: p | ab ) p | a oder p | b Ann.: p - a und p - a. ) ggT(p,a)=1 und ggT(p,b)=1 Anwendung Satz zur Teilerfremdheit ) ggT(p,ab) = 1 (Widerspruch: p | ab ) ggT(p,ab)=p)
Fundamentalsatz der Arithmetik Satz: Jedes n 2N, n>1, lässt sich eindeutig als Produkt von Primzahlen darstellen: n=p1e1* p2e2* …* pkek, pi prim. • Existenz: Induktion über n, s. erste Vorlesung • Eindeutigkeit: Sei n=p1*p2*…*pk=q1*q2*…*qr • Ann: Es gibt pi qj für j=1,…,k. • Wiederholte Anwendung des Teilersatzes: pi | rj=1 qj) pi teilt ein qj. ) pi = qj (Widerspruch) • Teile durch pi=qj auf beiden Seiten und iteriere.
ggT-Satz Satz (ggT): Für a¸0 und b>0 gilt: ggT(a,b) = ggT(b, a mod b) „ggT(a,b) | ggT(b,a mod b)“: • d=ggT(a,b), d.h. d | a und d | b • a mod b = a – qb mit q=b a/b c ) d | a mod b (Lemma Linearkomb.) ) d | ggT(b, a mod b) (ggT-Korollar) „ggT(b, a mod b) | ggT(a,b)“: • d=ggT(b, a mod b), d.h. d | b und d | a mod b • a = qb + (a mod b) ) d | a (Lemma Linearkomb.) ) d | ggT(a,b) (ggT-Korollar)
Euklidischer Algorithmus (300 v. Chr.) Algorithmus Euklid Eingabe: a,b 2N • if (b=0) then return a; • else return Euklid(b, a mod b) Ausgabe: ggT(a,b) Korrektheit: • Schritt 1.: ggT(a,0) = a. • Schritt 2.: Folgt aus ggT-Satz.