... direkte Umsetzung in Scheme. Prozeduren und von ihnen erzeugte Prozesse Gültigkeitsbereiche und Rekursion

Größe: px
Ab Seite anzeigen:

Download "... direkte Umsetzung in Scheme. Prozeduren und von ihnen erzeugte Prozesse Gültigkeitsbereiche und Rekursion"

Transkript

1 Prozeduren und von ihnen erzeugte Prozesse Gültigkeitsbereiche und Rekursion Stand: Wir kennen Elementare ( primitive ) Operationen Kombination dieser Operationen Abstraktion zusammengesetzter Operationen Analogie zum Schachspiel: Wir kennen die Regeln, aber nicht auf welche Züge es ankommt (welche Prozeduren wir wie kombinieren sollen) was die Konsequenzen eines Zuges sind (was die Ausführung einer Prozedur bewirkt) Beachte: Lokales vs. globales Verhalten... direkte Umsetzung in Scheme (define (fact n) (if (= n 1) ; 1! = 1 1 (* n (fact (- n 1))))) Hinweis: Ausführliche Diskussion in Algorithmik 1, Kap. 8 (Partielle) Korrektheit gemäss Spezifikation Zusammenhang zwischen Rekursionsschema und vollständiger Induktion Termination Keine zirkuläre Definition: fact wird nicht durch sich selbst definiert vermindertes Teilproblem G. Görz, FAU, Inf G. Görz, FAU, Inf Lineare Rekursion und Iteration Prozedur: Schema für die lokale Entwicklung eines Berechnungsprozesses Beispiel: Fakultätsfunktion, n N n! =n (n 1) (n 2) Also: 1! = 1 und n! ist n (n 1)! für alle n>1 n! = n ((n 1) (n 2) ) = n (n 1)! Anwendung des Substitutionsmodells auf die Berechnung von (fact 6) (fact 6) (* 6 (fact 5)) (* 6 (* 5 (fact 4))) (* 6 (* 5 (* 4 (fact 3)))) (* 6 (* 5 (* 4 (* 3 (fact 2))))) (* 6 (* 5 (* 4 (* 3 (* 2 (fact 1)))))) (* 6 (* 5 (* 4 (* 3 (* 2 1))))) (* 6 (* 5 (* 4 (* 3 2)))) (* 6 (* 5 (* 4 6))) (* 6 (* 5 24)) (* 6 120) 720 Linear rekursiver Prozeß zur Berechnung von 6! G. Görz, FAU, Inf G. Görz, FAU, Inf.8 3 4

2 Lineare Rekursion: Anmerkungen Anmerkungen zum Berechnungsprozeß: Zwei Phasen: Expansion und Kontraktion Während der Expansion werden Berechnungsschritte aufgeschoben : (n 1) Multiplikationen Buchhaltung über Zwischeninformation! Aufwand der Buchhaltung hier linear proportional zu n In der Kontraktion werden die Multiplikationen ausgeführt Es gibt keine Zwischenergebnisse Zwischenzustände ergeben sich aus der Buchhaltung Linear iterativer Prozeß Motivation: Wir nehmen im Beispiel eine andere Perspektive ein: Beschreibung einer Regel zur Berechnung von n!, indem wir zuerst 1 mit 2, dann das Ergebnis mit 3, dann mit 4, etc. multiplizieren, bis wir n erreicht haben. D.h.: Wir halten in jedem Schritt ein Produkt fest zusammen mit einem Zähler, der von 1 bis n läuft. In jedem Schritt ändern sich der Zähler und das Produkt gleichzeitig nach der Regel product counter product counter counter +1, wobei n! gleich dem Wert des Produkts ist, wenn der Zähler n überschreitet. G. Görz, FAU, Inf G. Görz, FAU, Inf Lineares Rekursionsschema Beispiel: Fakultät iterativ 1. Finde heraus, wie ein Rekursions-Schritt durchzuführen ist. (define (fact n) ; Blockstruktur! 2. Zerlege das Problem in Arbeitsschritt und vermindertes Teilproblem 3. Lege fest, wann das (schon gelöste) Basisproblem erreicht ist (Rekursionsende) Schema für linear rekursive Funktionen: (define (f_linrec...) (cond (P <STOP>) { (Q (g (f_linrec...))) } (else (h (f_linrec...))) )) (define (fact-iter product counter) (if (> counter n) product (fact-iter (* counter product) (+ counter 1)) )) (fact-iter 1 1)) G. Görz, FAU, Inf G. Görz, FAU, Inf.8 3 8

3 Beispiel: Linear iterativer Prozeß Schema für rest-rekursive Funktionen Linear iterativer Prozeß zur Berechnung von 6! (erste Version) (fact 6) (fact-iter 1 1) (fact-iter 1 2) (fact-iter 2 3) (fact-iter 6 4) (fact-iter 24 5) (fact-iter 120 6) (fact-iter 720 7) 720 auch: end-rekursiv, rumpf-rekursiv ( tail recursive ) (define (f_tailrec...) (cond (P <STOP>) { (Q (f_tailrec...)) } (else (f_tailrec...)) )) Anforderung an jede Scheme-Implementation: Rest-rekursive Prozeduren müssen intern als iterative Prozesse ausgeführt werden keine Belastung der internen Buchhaltung Hinweis: Verschränkte Restrekursion (Beispiel: Algorithmik 1) G. Görz, FAU, Inf G. Görz, FAU, Inf Anmerkungen zum Berechnungsprozeß Keine verschiedenen Phasen Zwischeninformation in den Variablen product, counter, max-count (bzw. n) Zwischenergebnisse werden explizit in der Akkumulatorvariablen product festgehalten (akkumuliert) Aufwand ist ebenfalls linear (Sequentielle Aufzählung der Elemente des Definitionsbereichs: natürliche Zahlen) Der durch fact-iter verursachte Berechnungsprozeß ist iterativ; die Prozedur fact selbst jedoch (rest-) rekursiv Iterativ vs. rekursiv in Bezug auf Prozesse betrifft die Buchhaltung und die Aufschiebung von Berechnungsschritten Äquivalenz der linear-rekursiven und der rest-rekursiven Version (define (fact n) (if (= n 1) 1 (* n (fact (- n 1))))) (define (fact-i n product) (if (= n 1) product (fact-i (- n 1) (* product n)))) Vereinfachte Variante der rest-rekursiven Fakultätsfunktion: zählt abwärts Beh.: n 1. (fact n) = (fact-i n 1) G. Görz, FAU, Inf G. Görz, FAU, Inf

4 n = 1: (fact 1) = 1 = (fact-i 1 1) n > 1: (fact n) = (* n (fact (- n 1))) Definition = (* n (fact-i (- n 1) 1)) Induktionsannahme = (fact-i (- n 1) (* n 1)) Lemma = (fact-i (- n 1) (* 1 n)) = (fact-i n 1) Definition Lemma: (* a (fact-i n z)) = (fact-i n (* a z)) n = 1: (* a (fact-i 1 z)) = (* a z) = (fact-i 1 (* a z)) Baumrekursion Beispiel: Fibonacci (Leonardo von Pisa: Kaninchenaufgabe) Rekursionsgleichungen: F 0 = 0 F 1 = 1 F n = F n 1 + F n 2 ergibt die Folge: G. Görz, FAU, Inf G. Görz, FAU, Inf n > 1: (* a (fact-i n z)) = (* a (fact-i (- n 1) (* z n))) Definition = (fact-i (- n 1) (* a (* z n))) Induktionsannahme = (fact-i (- n 1) (* (* a z) n)) Assoziativität = (fact-i n (* a z)) Definition Als Scheme-Prozedur: (define (fib n) (cond ((= n 0) 0) ((= n 1) 1) (else (+ (fib (- n 1)) (fib (- n 2)))) )) G. Görz, FAU, Inf G. Görz, FAU, Inf

5 Fibonacci-Baum Die Fibonacci-Prozedur ist ein charakteristisches Beispiel für Baum-Rekursion: (fib 20) = 6765, (fib 30) = Baum-Rekursion Folge der Verarbeitungsschritte bildet strukturell den zu verarbeitenden Baum nach! baum-rekursiv Schema für baum-rekursive Funktionen: (define (f_treerec...)... (G (f_treerec...) (f_treerec...)...)...) G. Görz, FAU, Inf G. Görz, FAU, Inf Fibonacci-Baum (Forts.) Der Fibonacci-Baum enthält fib(n +1) Blätter: fib(0) bzw. fib(1) Wie groß ist fib(n) ungefähr? Sei φ definiert durch: φ 2 = φ +1 also: φ =(1+ 5)/ ( goldenes Verhältnis ) Dann: fib(n) φ n / 5 D.h., der Fibonacci-Baum wächst exponentiell in Bezug auf die Blätteranzahl: exponentiell abhängig von n Die meiste Zeit wird zur (erneuten) Berechnung bereits berechneter Zwischenergebnisse verbraucht; z.b. die Hälfte zur Berechnung von F n 2, was bereits bei der Berechnung von F n 1 verwendet worden war. Speicherbedarf = Anzahl der Ebenen im Baum: linear proportional zu n Fibonacci iterativ Die baum-rekursive Fibonacci-Prozedur ist in höchstem Maß ineffizient, Umbau in eine iterative Prozedur mit zwei Akkumulatorvariablen a, b: Anfangswertea=1,b=0 Simultane Transformationen a a+b b a G. Görz, FAU, Inf G. Görz, FAU, Inf

6 Iterationsschritte: n=1 a=1 b=0 n=2 a=1 b=1 n=3 a=2 b=1 n=4 a=3 b=2 n=5 a=5 b=3 n=6 a=8 b=5 n = 7 a = 13 b = 8 i fib(i) fib(i 1) Aufwände von Algorithmen und Komplexitätsmaße Rekapitulation: Algorithmik 1, Kap. 13 Um die Effizienz von Algorithmen vergleichen zu können, braucht man eine Abschätzung der Zeit oder des Speicherplatzes, die sie abhängig von der benötigen. Sei n ein Eingabeparameter ( Größe der Eingabe ); es werden die Funktionen } T (n) Zeitbedarf Ressourcen P (n) Platzbedarf untersucht, wobei die Größenordnung O des Ressourcenbedarfs (Ordnung des Aufwands) interessiert. G. Görz, FAU, Inf G. Görz, FAU, Inf (define (fib n) Fibonacci: rest-rekursiv (define (fib-iter a b count) (if (= count 0) b (fib-iter (+ a b) a (- count 1)))) (fib-iter 1 0 n)) Aufwände der rekursiven Beispiele Rekursive Fakultät: T (n) P (n) Iterative Fakultät: T (n) P (n) Rekursive Fibonacci-Prozedur: Iterative Fibonacci-Prozedur: = O(n) = O(n) = O(n) = O(1) T (n) = O(φ n ) P (n) = O(n) Rest-rekursiv: konstanter Speicherbedarf, linearer Zeitbedarf ( Zwischenwerte werden jeweils nur einmal berechnet!) T (n) P (n) = O(n) = O(1) G. Görz, FAU, Inf G. Görz, FAU, Inf

7 Beispiel: Exponentiation (Potenzbildung) Basis b, Exponent n (integer 0) Rekursive Fassung: b 0 =1 b n = b b n 1 (define (expt b n) (if (= n 0) 1 (* b (expt b (- n 1))))) T (n) =O(n) P (n) =O(n) Schnelle Exponentiation Verwendung von Quadraten, z.b. b 8 =(b 4 ) 2 =((b 2 ) 2 ) 2 Umformung allgemein: b n = { (b n/2 ) 2 n gerade b b n 1 n ungerade (define (fast-expt b n) (cond ((= n 0) 1) ((even? n) (square (fast-expt b (/ n 2)))) (else (* b (fast-expt b (- n 1)))))) G. Görz, FAU, Inf G. Görz, FAU, Inf Iterative Fassung: (define (expt b n) T (n) =O(n) (define (expt-iter counter product) (if (= counter 0) product (expt-iter (- counter 1) (* b product)))) (expt-iter n 1)) P (n) =O(1) b 2n benötigt eine Multiplikation mehr als b n, damit: z.b. n = 1000: 14 Multiplikationen T (n) = O(log n) P (n) = O(log n) G. Görz, FAU, Inf G. Görz, FAU, Inf

8 Vorgehen Ein weiteres Beispiel: Primzahltest Suche die kleinste Zahl 2, dien teilt. n ist Primzahl die gefundene Zahl ist n selbst. Um eine Rekursion zu ermöglichen, wird die Fragestellung verallgemeinert: Suche die kleinste Zahl t, die n teilt. Ansatz: Ist t 2 >n? ja: nur n selbst teilt n nein: t teilt n? ja: t ist der kleinste Teiler von n nein: Suche weiter ab t +1 Primzahltest (3) (define (prime? n) (define (smallest-divisor n) ; n eliminierbar... (find-divisor n 2)) (define (find-divisor n test-divisor) (cond ((> (square test-divisor) n) n) ((divides? test-divisor n) test-divisor) (else (find-divisor n (+ test-divisor 1))))) (define (divides? a b) (= (remainder b a) 0)) (= n (smallest-divisor n))) Aufwandsordnung der Schrittzahl, um n als Primzahl zu identifizieren: T (n) =O( n) G. Görz, FAU, Inf G. Görz, FAU, Inf Primzahltest (2) Spezifikationsskizze: 1. n ist Primzahl, falls gilt: t teilt n t =1 t = n, d.h.n hat keine echten Teiler 2. Jede Zahl hat mindestens zwei Teiler. Für Primzahlen gilt: zweitkleinster-teiler(n) =n 3. zweitkleinster-teiler(n): kleinster Teiler von n, dergrößer ist als 1 (smallest-divisor n) 4. Prozedur finde-größeren-teiler : (find-divisor n test-divisor) test-divisor ist der kleinste Teiler, der versucht wird. Abbruchkriterium: Ist n keine Primzahl, so muß es einen Teiler n haben. Denn: Falls d teilt n, soauchn/d teilt n; entwederd oder n/d n Schneller Primzahltest: Fermat-Test Zwei Zahlen heißen kongruent modulo n, wenn sie beide bei der Division durch n denselben Rest haben. Der Divisionsrest einer Zahl a bei der Division durch n heißt auch der Rest von a modulo n oder einfach a modulo n. Kleiner Fermatscher Satz: Wenn n Primzahl und a natürliche Zahl mit 2 a<n, so gilt: a n a mod n Idee des Fermat-Tests: Wähle ein a<nund berechne Rest von a n mod n. Falls Rest = a, dannistn eventuell eine Primzahl, andernfalls keine. Iteriert probabilistischer Algorithmus G. Görz, FAU, Inf G. Görz, FAU, Inf

9 Beispiel zum Fermat-Test Fermat-Test vervollständigt Beispiel: n =5 1 5 = 1 1mod5 2 5 = 32 2mod5 3 5 = 243 3mod5 4 5 = mod5 5 5 = mod5 Gegenbeispiel: n =4 1 4 = 1 1mod4 2 4 = 16 0mod4 3 4 = 81 1mod4 (define (fermat-test n) (define a (+ 2 (random (- n 2)))) (= (exptmod a n n) a)) Idee zum Zeitgewinn: Wähle a (1 <a<n) zufällig aus mittels Zufallszahlen-Generators (random r). Test mit mehreren, aber nicht allen a. Jedes a, das den Test besteht, ist ein Indiz für n prim. G. Görz, FAU, Inf G. Görz, FAU, Inf exptmod Für den Fermat-Test wird der Rest von b e mod m gesucht, d.h. Erster Ansatz: b e x mod m (define (exptmod2 b e m) (modulo (fast-expt b e) m)) (define (fast-prime? n times) (cond ((= times 0) #t) ((fermat-test n) (fast-prime? n (- times 1))) (else #f))) Aufwand: O(log n) gegenüber O( n) für prime?! exptmod2 ist ungeeignet für den Fermat-Test, denn z.b. beim Test von 997 wird benötigt: a 997 a mod 997? Aber: (fast-expt a 997) für a<997 funktioniert nur für kleine a ( 4) Gesucht: ein kleineres exptmod! (s. Anhang) G. Görz, FAU, Inf G. Görz, FAU, Inf

10 Anmerkungen zu fast-prime? Verfahren ist probabilistisch: Ergebnis #t gibt Evidenz für Primzahl, keine Sicherheit Es gibt Zahlen, die das Verfahren irreführen: 561, 1105,... (Carmichaelsche Zahlen 16 Stück < bei 8500 Primzahlen) Es gibt Varianten des Verfahrens, die nicht in die Irre geführt werden können Es gibt Verfahren mit geringerer Fehlerwahrscheinlichkeit als Wahrscheinlichkeit eines Hardwarefehlers während Laufzeit Primzahltests haben praktischen Nutzen, z.b. sind sie in der Kryptographie Basis der meisten modernen unbreakable Codes Zur Komplexitätsabschätzung Gut: f(n) ist Polynom (polynomiale Komplexität) Schlecht: sonst (exponentielle Komplexität) Beachte: worst case Abschätzungen (ungünstigster Fall) Exponentielle Lösungen können sehr wohl brauchbar sein, wenn: ein Programm nur wenige Male verwendet wird; ein Programm nur mit kleinen Eingaben benutzt wird; eine effizientere Lösung ist so kompliziert ist, dass sie nicht mehr modifiziert werden kann; Zeiteffizienz auf Kosten von Platzeffizienz geht. G. Görz, FAU, Inf G. Görz, FAU, Inf Abschließende Bemerkungen Die meisten der behandelten rekursiven Prozesse (Ausnahme z.b. fib) haben dieselbe Ordnung im Wachstum von Zeit- und Speicherbedarf Bezeichnungen für die gängigen Fälle: Iteration für konstanten Platzbedarf Rekursion für nicht-konstanten Platzbedarf Lineare Iteration und lineare Rekursion für Prozesse, bei denen alle Anforderungen mit Ausnahme des Platzbedarfs für einen Iterationsschritt linear sind ANHANG ZUR SELBSTÄNDIGEN NACHARBEIT G. Görz, FAU, Inf G. Görz, FAU, Inf

11 Ein kleineres exptmod exptmod (Forts.) Das Problem: Falls e gerade: dann: b e x mod m b e =(b e/2 ) 2 b e (b e/2 ) 2 mod m a 2 mod m mit (b e/2 ) 2 a mod m (define (exptmod b e m) (cond ((= e 0) 1) ((even? e) (remainder (square (exptmod b (/ e 2) m)) m)) (else (remainder (* b (exptmod b (- e 1) m)) m)))) G. Görz, FAU, Inf G. Görz, FAU, Inf Entsprechend für e ungerade: Vorgehen analog zu fast-expt gleiche Rekursionsidee: dann: b e = b b e 1 b e a 1 a 2 mod m mit b a 1 mod m b e 1 a 2 mod m Fallunterscheidung für gerade und ungerade Exponenten sukzessives Quadrieren, sodass die Anzahl der Schritte logarithmisch mit dem Exponenten wächst T (n) =O(log n) P (n) =O(log n) G. Görz, FAU, Inf G. Görz, FAU, Inf

Stand der Vorlesung Komplexität von Algorithmen (Kapitel 3)

Stand der Vorlesung Komplexität von Algorithmen (Kapitel 3) Stand der Vorlesung Komplexität von Algorithmen (Kapitel 3) Technische Universität München Motivation: IT gestützte Steuerung, Überwachung, Fertigung, Produktion,. : erfordert effiziente Berechnungsvorschriften

Mehr

( )= c+t(n-1) n>1. Stand der Vorlesung Komplexität von Algorithmen (Kapitel 3)

( )= c+t(n-1) n>1. Stand der Vorlesung Komplexität von Algorithmen (Kapitel 3) Stand der Vorlesung Komplexität von Algorithmen (Kapitel 3) Motivation: IT gestützte Steuerung, Überwachung, Fertigung, Produktion,. : erfordert effiziente Berechnungsvorschriften Ziel: Methoden kennen

Mehr

Komplexität von Algorithmen

Komplexität von Algorithmen Komplexität von Algorithmen Prof. Dr. Christian Böhm WS 07/08 in Zusammenarbeit mit Gefei Zhang http://www.dbs.informatik.uni-muenchen.de/lehre/nfinfosw Ressourcenbedarf - Größenordnungen Prozesse verbrauchen

Mehr

2. Algorithmische Methoden 2.1 Rekursion. 18. April 2017

2. Algorithmische Methoden 2.1 Rekursion. 18. April 2017 2. Algorithmische Methoden 2.1 Rekursion 18. April 2017 Rekursiver Algorithmus Ein rekursiver Algorithmus löst ein Problem, indem er eine oder mehrere kleinere Instanzen des gleichen Problems löst. Beispiel

Mehr

Bemerkung: der goldene Schnitt ϕ ist die positive Lösung der Gleichung: x 2 = 1 + x

Bemerkung: der goldene Schnitt ϕ ist die positive Lösung der Gleichung: x 2 = 1 + x Rekursive Definition der Fibonacci-Zahlen Erste Werte f 0 = 0, f 1 = 1, f n = f n 1 + f n 2 (n 2) n 0 1 2 3 4 5 6 7 8 9 10... 25... f n 0 1 1 2 3 5 8 13 21 34 55... 75025... Exakte Formel (de Moivre, 1718)

Mehr

Isomorphismus. Definition Gruppen-Isomorphismus. Seien (G, +) und (G, ) Gruppen. Die Abbildung f : G G heißt Gruppen-Isomorphismus, falls gilt

Isomorphismus. Definition Gruppen-Isomorphismus. Seien (G, +) und (G, ) Gruppen. Die Abbildung f : G G heißt Gruppen-Isomorphismus, falls gilt Isomorphismus Definition Gruppen-Isomorphismus Seien (G, +) und (G, ) Gruppen. Die Abbildung f : G G heißt Gruppen-Isomorphismus, falls gilt 1 f ist bijektiv f (u + v) = f (u) f (v) für alle u, v G, die

Mehr

Diskrete Mathematik 1

Diskrete Mathematik 1 Ruhr-Universität Bochum Lehrstuhl für Kryptologie und IT-Sicherheit Prof. Dr. Alexander May M. Ritzenhofen, M. Mansour Al Sawadi, A. Meurer Lösungsblatt zur Vorlesung Diskrete Mathematik 1 WS 008/09 Blatt

Mehr

Exponentiation: das Problem

Exponentiation: das Problem Problemstellung Exponentiation: das Problem Gegeben: (multiplikative) Halbgruppe (H, ), Element a H, n N Aufgabe: berechne das Element a n = } a a a {{ a } H n (schreiben ab jetzt a n statt a n ) Hinweis:

Mehr

Exponentiation: das Problem Gegeben: (multiplikative) Halbgruppe (H, ), Element a H, n N Aufgabe: berechne das Element

Exponentiation: das Problem Gegeben: (multiplikative) Halbgruppe (H, ), Element a H, n N Aufgabe: berechne das Element Problemstellung Banale smethode : das Problem Gegeben: (multiplikative) Halbgruppe (H, ), Element a H, n N Aufgabe: berechne das Element a n = } a a a {{ a } H n (schreiben ab jetzt a n statt a n ) Hinweis:

Mehr

Kryptographische Protokolle

Kryptographische Protokolle Kryptographische Protokolle Lerneinheit 2: Generierung von Primzahlen Prof. Dr. Christoph Karg Studiengang Informatik Hochschule Aalen Wintersemester 2018/2019 15.11.2018 Einleitung Einleitung Diese Lerneinheit

Mehr

Probabilistische Primzahltests

Probabilistische Primzahltests 23.01.2006 Motivation und Überblick Grundsätzliches Vorgehen Motivation und Überblick Als Primzahltest bezeichnet man ein mathematisches Verfahren, mit dem ermittelt wird, ob eine gegebene Zahl eine Primzahl

Mehr

Stabilitätsabschätzungen Vorlesung vom

Stabilitätsabschätzungen Vorlesung vom Stabilitätsabschätzungen Vorlesung vom 8.12.17 Auswertungsbäume zur systematischen Stabilitätsabschätzung Auswertungsbaum: Knoten, gerichtete Kanten, Wurzel, Blätter Zerlegung in Teilbäume Von den Blättern

Mehr

Überblick. Notwendigkeit der Rekursion (1)

Überblick. Notwendigkeit der Rekursion (1) Überblick 1. Die Prozedur als Kernbegriff der Programmierung 2. Prozeduren zur Bildung von Abstraktionsbarrieren: Lokale Deklarationen 3. Prozeduren versus Prozesse 4. Ressourcenbedarf Größenordnungen

Mehr

Programmieren und Problemlösen

Programmieren und Problemlösen Dennis Komm Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 27. Februar 2019 Komplexität von Algorithmen Aufgabe Primzahltest Schreibe ein Programm, das eine ganze Zahl x als Eingabe

Mehr

Relationen und DAGs, starker Zusammenhang

Relationen und DAGs, starker Zusammenhang Relationen und DAGs, starker Zusammenhang Anmerkung: Sei D = (V, E). Dann ist A V V eine Relation auf V. Sei andererseits R S S eine Relation auf S. Dann definiert D = (S, R) einen DAG. D.h. DAGs sind

Mehr

Kapitel 5: Paradigmen des Algorithmenentwurfs. Gliederung

Kapitel 5: Paradigmen des Algorithmenentwurfs. Gliederung Gliederung 1. Grundlagen 2. Analyse der Laufzeit von Algorithmen 3. Untere Schranken für algorithmische Probleme 4. Sortier- und Selektionsverfahren 5. Paradigmen des Algorithmenentwurfs 6. Ausgewählte

Mehr

Abschnitt 7: Komplexität von imperativen Programmen

Abschnitt 7: Komplexität von imperativen Programmen Abschnitt 7: Komplexität von imperativen Programmen 7. Komplexität von imperativen Programmen 7 Komplexität von imperativen Programmen Einf. Progr. (WS 08/09) 399 Ressourcenbedarf von Algorithmen Algorithmen

Mehr

Grundlagen der Programmierung 2 (1.B)

Grundlagen der Programmierung 2 (1.B) Grundlagen der Programmierung 2 (1.B) Prof. Dr. Manfred Schmidt-Schauß Künstliche Intelligenz und Softwaretechnologie 20. April 2011 Aufrufhierarchie und Rekursive Definitionen f, g, f i seien Haskell-definierte

Mehr

Beispiel: Fibonacci-Zahlen

Beispiel: Fibonacci-Zahlen Beispiel: Fibonacci-Zahlen Fibonacci Zahlen in der Natur Unendliche Reihe: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34,... Fibonacci-Kaninchen: Pinienzapfen Blumenkohl L. P. Fibonacci (1170-1250) G. Zachmann Informatik

Mehr

Beispiel für simultane Kongruenz

Beispiel für simultane Kongruenz Beispiel für simultane Kongruenz Jetzt wollen wir das Lemma der letzten Einheit anwenden. Wenn man eine Zahl sucht, die kongruent zu y modulo m und kongruent zu z modulo n ist, so nehme man zam + ybn wobei

Mehr

4 Kryptologie. Übersicht

4 Kryptologie. Übersicht 4 Kryptologie Übersicht 4.1 Der erweiterte euklidische Algorithmus................................ 38 4.2 Rechnen mit Restklassen modulo p................................... 39 4.3 Der kleine Satz von

Mehr

Volker Kaatz. Faktorisierung. Faktorisierung. Problem und Algorithmen. Relevanz in der Kryptographie

Volker Kaatz. Faktorisierung. Faktorisierung. Problem und Algorithmen. Relevanz in der Kryptographie Faktorisierung Problem und Algorithmen Relevanz in der Kryptographie Inhalt Begriff Faktorisierung Algorithmen (Übersicht) Strategie und Komplexität Pollard p-1 Algorithmus Pseudocode, mathematische Basis,

Mehr

Der Primzahltest von Agrawal, Kayal und Saxena. Dr. Gerold Jäger

Der Primzahltest von Agrawal, Kayal und Saxena. Dr. Gerold Jäger Der Primzahltest von Agrawal, Kayal und Saxena Dr. Gerold Jäger Habilitationsvortrag Christian-Albrechts-Universität zu Kiel Institut für Informatik 19. Januar 2011 Dr. Gerold Jäger Habilitationsvortrag

Mehr

Programmierung 1 - Repetitorium

Programmierung 1 - Repetitorium WS 2002/2003 Programmierung 1 - Repetitorium Andreas Augustin und Marc Wagner Homepage: http://info1.marcwagner.info Dienstag, den 08.04.03 Kapitel 4 Laufzeit 4.1 Vorbemerkungen Im folgenden betrachten

Mehr

Pseudo-Zufallsgeneratoren basierend auf dem DLP

Pseudo-Zufallsgeneratoren basierend auf dem DLP Seminar Codes und Kryptografie SS 2004 Struktur des Vortrags Struktur des Vortrags Ziel Motivation 1 Einleitung Ziel Motivation 2 Grundlegende Definitionen Zufallsgeneratoren 3 Generator Sicherheit 4 Generator

Mehr

Grundlagen der Programmierung 2 (1.B)

Grundlagen der Programmierung 2 (1.B) Grundlagen der Programmierung 2 (1.B) Prof. Dr. Manfred Schmidt-Schauß Künstliche Intelligenz und Softwaretechnologie 27. April 2012 Beispiel: Aufrufhierarchie quadrat x = x*x quadratsumme x y = (quadrat

Mehr

Übung zur Vorlesung Berechenbarkeit und Komplexität

Übung zur Vorlesung Berechenbarkeit und Komplexität RWTH Aachen Lehrgebiet Theoretische Informatik Reidl Ries Rossmanith Sanchez Tönnis WS 2012/13 Übungsblatt 7 26.11.2012 Übung zur Vorlesung Berechenbarkeit und Komplexität Aufgabe T15 Entwickeln Sie ein

Mehr

13 Berechenbarkeit und Aufwandsabschätzung

13 Berechenbarkeit und Aufwandsabschätzung 13 Berechenbarkeit und Aufwandsabschätzung 13.1 Berechenbarkeit Frage: Gibt es für jede Funktion, die mathematisch spezifiziert werden kann, ein Programm, das diese Funktion berechnet? Antwort: Nein! [Turing

Mehr

2. Effizienz von Algorithmen

2. Effizienz von Algorithmen Effizienz von Algorithmen 2. Effizienz von Algorithmen Effizienz von Algorithmen, Random Access Machine Modell, Funktionenwachstum, Asymptotik [Cormen et al, Kap. 2.2,3,4.2-4.4 Ottman/Widmayer, Kap. 1.1]

Mehr

2. Hausübung Algorithmen und Datenstrukturen

2. Hausübung Algorithmen und Datenstrukturen Prof. Dr. Gerd Stumme, Folke Eisterlehner, Dominik Benz Fachgebiet Wissensverarbeitung 7.4.009. Hausübung Algorithmen und Datenstrukturen Sommersemester 009 Abgabetermin: Montag, 04.05.009, 10:00 Uhr 1

Mehr

RSA Parameter öffentlich: N = pq mit p, q prim und e Z RSA Parameter geheim: d Z φ(n)

RSA Parameter öffentlich: N = pq mit p, q prim und e Z RSA Parameter geheim: d Z φ(n) RSA Parameter { öffentlich: N = pq mit p, q prim und e Z RSA Parameter φ(n) geheim: d Z φ(n) mit ed = 1 mod φ(n). Satz RSA Parameter Generierung RSA-Parameter (N, e, d) können in Zeit O(log 4 N) generiert

Mehr

Übung zu Algorithmen und Datenstrukturen (für ET/IT)

Übung zu Algorithmen und Datenstrukturen (für ET/IT) Übung zu Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2017 Rüdiger Göbl, Mai Bui Computer Aided Medical Procedures Technische Universität München Fibonacci Zahlen Fibonacci Folge Die Fibonacci

Mehr

Zunächst ein paar einfache "Rechen"-Regeln: Lemma, Teil 1: Für beliebige Funktionen f und g gilt:

Zunächst ein paar einfache Rechen-Regeln: Lemma, Teil 1: Für beliebige Funktionen f und g gilt: Der Groß-O-Kalkül Zunächst ein paar einfache "Rechen"-Regeln: G. Zachmann Informatik 1 - WS 05/06 Komplexität 22 Additionsregel Lemma, Teil 1: Für beliebige Funktionen f und g gilt: Zu beweisen: nur das

Mehr

3.3 Laufzeit von Programmen

3.3 Laufzeit von Programmen 3.3 Laufzeit von Programmen Die Laufzeit eines Programmes T(n) messen wir als die Zahl der Befehle, die für die Eingabe n abgearbeitet werden Betrachten wir unser Programm zur Berechnung von Zweierpotenzen,

Mehr

Komplexität von Algorithmen

Komplexität von Algorithmen Komplexität von Algorithmen Ziel Angabe der Effizienz eines Algorithmus unabhängig von Rechner, Programmiersprache, Compiler. Page 1 Eingabegröße n n Integer, charakterisiert die Größe einer Eingabe, die

Mehr

Lösungsvorschlag Serie 2 Rekursion

Lösungsvorschlag Serie 2 Rekursion (/) Lösungsvorschlag Serie Rekursion. Algorithmen-Paradigmen Es gibt verschiedene Algorithmen-Paradigmen, also grundsätzliche Arten, wie man einen Algorithmus formulieren kann. Im funktionalen Paradigma

Mehr

Form der Äquivalenzklassen

Form der Äquivalenzklassen Form der Äquivalenzklassen Anmerkung: Es gilt a = a ± m = a ± 2m =... = a + km mod m für alle k Z. Wir schreiben auch {x Z x = a + mk, k Z} = a + mz. Es gibt m verschiedene Äquivalenzklassen modulo m:

Mehr

Komplexität von Algorithmen:

Komplexität von Algorithmen: Komplexität von Algorithmen: Ansatz: Beschreiben/erfassen der Komplexität über eine Funktion, zur Abschätzung des Rechenaufwandes abhängig von der Größe der Eingabe n Uns interessiert: (1) Wie sieht eine

Mehr

Wiederholung. Gruppen. Untergruppen. Gruppenisomorphismen. Ordnung: Gruppe, Element Satz von Euler: a ord(g) = 1 Elementordung teilt Gruppenordnung

Wiederholung. Gruppen. Untergruppen. Gruppenisomorphismen. Ordnung: Gruppe, Element Satz von Euler: a ord(g) = 1 Elementordung teilt Gruppenordnung Wiederholung Gruppen Ordnung: Gruppe, Element Satz von Euler: a ord(g) = 1 Elementordung teilt Gruppenordnung Untergruppen Satz von Lagrange Untergruppenordnung teilt Gruppenordnung Nebenklassen von Untergruppen

Mehr

2: Restklassen 2.1: Modulare Arithmetik

2: Restklassen 2.1: Modulare Arithmetik 2: Restklassen 2.1: Modulare Arithmetik Uhr: Stunden mod 24, Minuten mod 60, Sekunden mod 60,... Rechnerarithmetik: mod 2 w, w {8, 16, 32, 64} Prüfziffern mod 10 oder mod 11... 71 S. Lucks Diskr Strukt.

Mehr

Bsp: Die kleinsten Carmichael-Zahlen sind 561, 1105, 1729, Es gibt unendlich viele Carmichael-Zahlen (Beweis 1994).

Bsp: Die kleinsten Carmichael-Zahlen sind 561, 1105, 1729, Es gibt unendlich viele Carmichael-Zahlen (Beweis 1994). Primzahltest Wir wollen testen, ob eine gegebene Zahl n eine Primzahl ist Effizienter Algorithmus zum Faktorisieren ist unbekannt Kontraposition des Kleinen Satzes von Fermat liefert: Falls a n 1 1 mod

Mehr

Stichpunktezettel fürs Tutorium

Stichpunktezettel fürs Tutorium Stichpunktezettel fürs Tutorium Moritz und Dorian 18. November 2009 1 Chomskys Erstschlag 1.1 Reguläre Sprachen und Grammatiken Aufgabe 1. Wie sieht die Sprache zu den folgenden Grammatiken aus? 1. G =

Mehr

Einführung in die Informatik I

Einführung in die Informatik I Einführung in die Informatik I Fortgeschrittene Rekursion Prof. Dr. Nikolaus Wulff Problematische Rekursion Mittels Rekursion lassen sich Spezifikationen recht elegant und einfach implementieren. Leider

Mehr

Inhalt Kapitel 2: Rekursion

Inhalt Kapitel 2: Rekursion Inhalt Kapitel 2: Rekursion 1 Beispiele und Definition 2 Partialität und Terminierung 3 Formen der Rekursion Endständige Rekursion 4 Einbettung 29 Beispiele und Definition Rekursion 30 Man kann eine Funktion

Mehr

VL-04: Rekursionsgleichungen. (Datenstrukturen und Algorithmen, SS 2017) Gerhard Woeginger

VL-04: Rekursionsgleichungen. (Datenstrukturen und Algorithmen, SS 2017) Gerhard Woeginger VL-04: Rekursionsgleichungen (Datenstrukturen und Algorithmen, SS 2017) Gerhard Woeginger SS 2017, RWTH DSAL/SS 2017 VL-04: Rekursionsgleichungen 1/37 Organisatorisches Vorlesung: Gerhard Woeginger (Zimmer

Mehr

Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Rekursion

Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Rekursion Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005 Rekursion Rekursion Neue Denkweise Wikipedia: Als Rekursion bezeichnet man den Aufruf

Mehr

Wieviel Vorfahren? Grundlagen der Programmierung 2. Beispiel: Aufrufhierarchie. Aufrufhierarchie und Rekursive Definitionen. Haskell: Auswertung

Wieviel Vorfahren? Grundlagen der Programmierung 2. Beispiel: Aufrufhierarchie. Aufrufhierarchie und Rekursive Definitionen. Haskell: Auswertung Wieviel Vorfahren? Grundlagen der Programmierung 2 Haskell: Auswertung Prof. Dr. Manfred Schmidt-Schauß Sommersemester 2017..................... Oma-M Opa-M Oma-V Opa-V Mutter ich Vater Aufgabe: Wieviele

Mehr

4 Rekursionen. 4.1 Erstes Beispiel

4 Rekursionen. 4.1 Erstes Beispiel 4 Rekursionen Viele Algorithmen besitzen sowohl eine iterative als auch eine rekursive Lösung. Sie unterscheiden sich darin, dass die iterative Version meist einen etwas längeren Kode besitzt, während

Mehr

Effiziente Algorithmen mit Python. D. Komm, T. Kohn

Effiziente Algorithmen mit Python. D. Komm, T. Kohn Effiziente Algorithmen mit Python D. Komm, T. Kohn Copyright c 2017, ABZ, ETH Zürich http://www.abz.inf.ethz.ch/ Version vom 7. September 2017. Effiziente Algorithmen mit Python 3 1 Effizienz Effizient

Mehr

Zahlentheorie, Arithmetik und Algebra

Zahlentheorie, Arithmetik und Algebra Zahlentheorie, Arithmetik und Algebra Seminar Hallo Welt für Fortgeschrittene 2008 Matthias Niessner June 20, 2008 Erlangen 1 von 29 Matthias Niessner Zahlentheorie, Arithmetik und Algebra Übersicht 1

Mehr

Kryptographie und Komplexität

Kryptographie und Komplexität Kryptographie und Komplexität Einheit 4.2 Primzahltests 1. Deterministische Primzahltests 2. Der Primzahltest von Solovay-Strassen 3. Der Milner-Rabin Test Wozu Primzahltests? RSA Schlüssel benötigen sehr

Mehr

Kryptographie und Komplexität

Kryptographie und Komplexität Kryptographie und Komplexität Einheit 4.2 Primzahltests 1. Deterministische Primzahltests 2. Der Primzahltest von Solovay-Strassen 3. Der Milner-Rabin Test Wozu Primzahltests? RSA Schlüssel benötigen sehr

Mehr

p Z >1 ist Primzahl, wenn gilt Euklid:

p Z >1 ist Primzahl, wenn gilt Euklid: Grundlegende Tatsachen über den Ring Z Z; +, ist ein nullteilerfreier Ring Divisionseigenschaft a Z, b Z > q, r Z : a = b q + r, r < b Arithmetik Grundlegende Tatsachen über den Ring Z Euklidischer Algorithmus

Mehr

Rekursion. Rekursive Funktionen, Korrektheit, Terminierung, Rekursion vs. Iteration, Sortieren

Rekursion. Rekursive Funktionen, Korrektheit, Terminierung, Rekursion vs. Iteration, Sortieren Rekursion Rekursive Funktionen, Korrektheit, Terminierung, Rekursion vs. Iteration, Sortieren Mathematische Rekursion o Viele mathematische Funktionen sind sehr natürlich rekursiv definierbar, d.h. o die

Mehr

Algorithmentheorie Randomisierung

Algorithmentheorie Randomisierung Algorithmentheorie 03 - Randomisierung Prof. Dr. S. Albers Randomisierung Klassen von randomisierten Algorithmen Randomisierter Quicksort Randomisierter Primzahltest Kryptographie 2 1. Klassen von randomisierten

Mehr

Beispiel: Fibonacci-Zahlen

Beispiel: Fibonacci-Zahlen Beispiel: Fibonacci-Zahlen Unendliche Reihe: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34,... Fibonacci-Kaninchen: L. P. Fibonacci (1170-1250) G. Zachmann Informatik 1 - WS 05/06 Rekursion 23 Fibonacci Zahlen in der

Mehr

Rekursion. Rekursive Funktionen, Korrektheit, Terminierung, Rekursion vs. Iteration, Sortieren

Rekursion. Rekursive Funktionen, Korrektheit, Terminierung, Rekursion vs. Iteration, Sortieren Rekursion Rekursive Funktionen, Korrektheit, Terminierung, Rekursion vs. Iteration, Sortieren Mathematische Rekursion o Viele mathematische Funktionen sind sehr natürlich rekursiv definierbar, d.h. o die

Mehr

3.6.4 Rekursive Funktionen

3.6.4 Rekursive Funktionen Klassifizierung von Funktionen mit Hilfe der Abstützrelation (Wenn eine Funktionsdefinition für f eine Funktion g aufruft, dann besteht zwischen beiden Definitionen die Relation f benutzt g ) Klasse 0

Mehr

Praktisch modulo n rechnen

Praktisch modulo n rechnen Mathematik I für Informatiker Das Lemma von Euler-Fermat p. 1 Praktisch modulo n rechnen Addition und Multiplikation modulo n sind auch dann algorithmisch kein großes Problem, wenn mit großen Zahlen gerechnet

Mehr

2008W. Vorlesung im 2008W Institut für Algebra Johannes Kepler Universität Linz

2008W. Vorlesung im 2008W   Institut für Algebra Johannes Kepler Universität Linz Mathematik Institut für Algebra Johannes Kepler Universität Linz Vorlesung im http://www.algebra.uni-linz.ac.at/students/win/ml Inhalt Definierende Eigenschaften Definition 0 ist eine natürliche Zahl;

Mehr

Funktionale Programmierung ALP I. Die Natur rekursiver Funktionen SS Prof. Dr. Margarita Esponda. Prof. Dr.

Funktionale Programmierung ALP I. Die Natur rekursiver Funktionen SS Prof. Dr. Margarita Esponda. Prof. Dr. ALP I Die Natur rekursiver Funktionen SS 2011 Die Natur rekursiver Funktionen Rekursive Funktionen haben oft folgende allgemeine Form: f :: a -> a f 0 = c f (n+1) = h (f n ) Diese Art der Definitionen

Mehr

Zahlentheorie, Arithmetik und Algebra I. Felix Teufel Hallo Welt! -Seminar - LS 2

Zahlentheorie, Arithmetik und Algebra I. Felix Teufel Hallo Welt! -Seminar - LS 2 Zahlentheorie, Arithmetik und Algebra I Felix Teufel 26.07.2017 Hallo Welt! -Seminar - LS 2 Überblick Modulare Arithmetik Größter gemeinsamer Teiler Primzahlen Eulersche Φ-Funktion RSA Quellen 26.07.2017

Mehr

Probabilistische Algorithmen

Probabilistische Algorithmen Probabilistische Algorithmen Michal Švancar Gerardo Balderas Hochschule Zittau/Görlitz 21. Dezember 2014 Michal Švancar, Gerardo Balderas (HSZG) Probabilistische Algorithmen 21. Dezember 2014 1 / 40 Inhaltsverzeichnis

Mehr

SAGE Computeralgebrapraktikum: Elementare Zahlentheorie und Anwendungen. Prof. Dr. Wolfram Koepf Prof. Dr. Werner Seiler WS 2014

SAGE Computeralgebrapraktikum: Elementare Zahlentheorie und Anwendungen. Prof. Dr. Wolfram Koepf Prof. Dr. Werner Seiler WS 2014 SAGE Computeralgebrapraktikum: Elementare Zahlentheorie und Anwendungen Prof. Dr. Wolfram Koepf Prof. Dr. Werner Seiler WS 2014 Frühstudium Alle Teilnehmer dieses Praktikums können sich zum Frühstudium

Mehr

Numerische Verfahren und Grundlagen der Analysis

Numerische Verfahren und Grundlagen der Analysis Numerische Verfahren und Grundlagen der Analysis Rasa Steuding Hochschule RheinMain Wiesbaden Wintersemester 2011/12 R. Steuding (HS-RM) NumAna Wintersemester 2011/12 1 / 26 1. Folgen R. Steuding (HS-RM)

Mehr

9. Rekursion. 1 falls n 1 n (n 1)!, andernfalls. Experiment: Die Türme von Hanoi. Links Mitte Rechts. Mathematische Rekursion

9. Rekursion. 1 falls n 1 n (n 1)!, andernfalls. Experiment: Die Türme von Hanoi. Links Mitte Rechts. Mathematische Rekursion Experiment: Die Türme von Hanoi. Rekursion Mathematische Rekursion, Terminierung, der Aufrufstapel, Beispiele, Rekursion vs. Iteration Links Mitte Rechts Mathematische Rekursion Viele mathematische Funktionen

Mehr

Algorithmen und Datenstrukturen SoSe 2008 in Trier. Henning Fernau Universität Trier

Algorithmen und Datenstrukturen SoSe 2008 in Trier. Henning Fernau Universität Trier Algorithmen und Datenstrukturen SoSe 2008 in Trier Henning Fernau Universität Trier fernau@uni-trier.de 1 Algorithmen und Datenstrukturen Gesamtübersicht Organisatorisches / Einführung Grundlagen: RAM,

Mehr

Mathematische Rekursion

Mathematische Rekursion Rekursion Mathematische Rekursion o Viele mathematische Funktionen sind sehr natürlich rekursiv definierbar, d.h. o die Funktion erscheint in ihrer eigenen Definition. Mathematische Rekursion o Viele mathematische

Mehr

Proseminar Datensicherheit & Versicherungsmathematik RSA-Verfahren

Proseminar Datensicherheit & Versicherungsmathematik RSA-Verfahren Proseminar Datensicherheit & Versicherungsmathematik RSA-Verfahren Herwig Stütz 2007-11-23 1 Inhaltsverzeichnis 1 Einführung 2 2 Das RSA-Verfahren 2 2.1 Schlüsselerzeugung.................................

Mehr

Der euklidische Algorithmus für ganze Zahlen

Der euklidische Algorithmus für ganze Zahlen Der euklidische Algorithmus für ganze Zahlen Ein unverzichtbares Verfahren in der Kryptographie ist der euklidische Algorithmus. In diesem Kapitel stellen wir die erste Version für ganze Zahlen vor. Sei

Mehr

Primzahltest für Mersenne-Primzahlen

Primzahltest für Mersenne-Primzahlen Primzahltest für Mersenne-Primzahlen Satz Lucas-Lehmer Test Sei n = 2 p 1 N für p P\{2}. Wir definieren die Folge S k durch S 1 = 4 und S k = S 2 k 1 2. Falls n S p 1, dann ist n prim. Beweis: Seien ω

Mehr

Prof. Dr. Margarita Esponda

Prof. Dr. Margarita Esponda Die O-Notation Analyse von Algorithmen Die O-Notation Prof. Dr. Margarita Esponda Freie Universität Berlin ALP II: Margarita Esponda, 5. Vorlesung, 26.4.2012 1 Die O-Notation Analyse von Algorithmen Korrektheit

Mehr

Prof. Dr. Margarita Esponda

Prof. Dr. Margarita Esponda Analyse von Algorithmen Die O-Notation WS 2012/2013 Prof. Dr. Margarita Esponda Freie Universität Berlin 1 Korrekte und effiziente Lösung von Problemen Problem Wesentlicher Teil der Lösung eines Problems.

Mehr

Informatik I: Einführung in die Programmierung

Informatik I: Einführung in die Programmierung Informatik I: Einführung in die Programmierung 7. Albert-Ludwigs-Universität Freiburg Bernhard Nebel 31. Oktober 2014 1 31. Oktober 2014 B. Nebel Info I 3 / 20 Um zu, muss man zuerst einmal. Abb. in Public

Mehr

2. Algorithmen und Algorithmisierung Algorithmen und Algorithmisierung von Aufgaben

2. Algorithmen und Algorithmisierung Algorithmen und Algorithmisierung von Aufgaben Algorithmen und Algorithmisierung von Aufgaben 2-1 Algorithmisierung: Formulierung (Entwicklung, Wahl) der Algorithmen + symbolische Darstellung von Algorithmen Formalismen für die symbolische Darstellung

Mehr

Fallstudie: Nim Spiel

Fallstudie: Nim Spiel Fallstudie: Nim Spiel Angeblich chinesischen Ursprungs (Jianshizi) Interessant für Spieltheorie: vollständig analysierbar Frühzeitig computerisiert 1939 Nimatron (Weltausstellung New York) 1951 Nimrod

Mehr

IT-Security. Teil 14: Primzahltest

IT-Security. Teil 14: Primzahltest IT-Security Teil 14: Primzahltest 08.05.17 1 Literatur [14-1] Willems, Wolfgang: Codierungstheorie und Kryptographie. Mathematik Kompakt, Birkhäuser, 2008 [14-2] Socher, Rolf: Algebra für Informatiker.

Mehr

2 Wachstumsverhalten von Funktionen

2 Wachstumsverhalten von Funktionen Algorithmen und Datenstrukturen 40 2 Wachstumsverhalten von Funktionen Beim Vergleich der Worst-Case-Laufzeiten von Algorithmen in Abhängigkeit von der Größe n der Eingabedaten ist oft nur deren Verhalten

Mehr

Kapitel 6: Das quadratische Reziprozitätsgesetz

Kapitel 6: Das quadratische Reziprozitätsgesetz Kapitel 6: Das quadratische Reziprozitätsgesetz Ziel dieses Kapitels: die Untersuchung der Lösbarkeit der Kongruenzgleichung X also die Frage, ob die ganze Zahl Z eine Quadratwurzel modulo P besitzt. Im

Mehr

Rekursionen (Teschl/Teschl 8.1/8.2)

Rekursionen (Teschl/Teschl 8.1/8.2) Rekursionen (Teschl/Teschl 8.1/8.2) treten in vielen Algorithmen auf: Eine Rekursion ist eine Folge von Zahlen a 0, a 1, a 2,.., bei der jedes a n aus seinen Vorgängern berechnet wird: Beispiele a n =

Mehr

Hallo Welt für Fortgeschrittene

Hallo Welt für Fortgeschrittene Hallo Welt für Fortgeschrittene Zahlentheorie, Arithmetik und Algebra 1 Florian Habur Informatik 2 Programmiersysteme Martensstraße 3 91058 Erlangen Übersicht Modulare Arithmetik Rechenregeln Fast Exponentiation

Mehr

= 1. Falls ( a n. ) r i. i=1 ( b p i

= 1. Falls ( a n. ) r i. i=1 ( b p i Das Jacobi-Symbol Definition Jacobi-Symbol Sei n N ungerade mit Primfaktorzerlegung n = s definieren das Jacobi-Symbol ( a ( ) ri n) := s a i=1 p i. i=1 pr i i. Wir Anmerkungen: Falls a quadratischer Rest

Mehr

Algorithmen und Datenstrukturen SS Übungsblatt 1: Grundlagen

Algorithmen und Datenstrukturen SS Übungsblatt 1: Grundlagen Ludwig-Maximilians-Universität München München, 16.04.2018 Institut für Informatik Prof. Dr. Thomas Seidl Anna Beer, Florian Richter Algorithmen und Datenstrukturen SS 2018 Übungsblatt 1: Grundlagen Tutorien:

Mehr

ggt mit Euklid Satz: Um ggt(k, l) mit dem Euklidischen Algorithmus zu berechnen, braucht man höchstens log Φ k < 3 2 log 2 k rekursive Aufrufe.

ggt mit Euklid Satz: Um ggt(k, l) mit dem Euklidischen Algorithmus zu berechnen, braucht man höchstens log Φ k < 3 2 log 2 k rekursive Aufrufe. ggt mit Euklid Satz: Um ggt(k, l) mit dem Euklidischen Algorithmus zu berechnen, braucht man höchstens log Φ k < 3 2 log 2 k rekursive Aufrufe. Das heißt, um den ggt von zwei 1000-Bit-Zahlen zu ermitteln,

Mehr

26 Hierarchisch strukturierte Daten

26 Hierarchisch strukturierte Daten Algorithmik II Peter Wilke Sommersemester 2005 Teil III Funktionale Programmierung 26 Hierarchisch strukturierte Daten Peter Wilke Algorithmik II Sommersemester 2005 1 Peter Wilke Algorithmik II Sommersemester

Mehr

Übersicht. Datenstrukturen und Algorithmen. Die Teile-und-Beherrsche-Methode. Übersicht. Vorlesung 3: Rekursionsgleichungen (K4)

Übersicht. Datenstrukturen und Algorithmen. Die Teile-und-Beherrsche-Methode. Übersicht. Vorlesung 3: Rekursionsgleichungen (K4) Datenstrukturen und Algorithmen Vorlesung 3: (K4) 1 e für rekursive Algorithmen Prof. Dr. Erika Ábrahám 2 Theorie Hybrider Systeme Informatik 2 http://ths.rwth-aachen.de/teaching/ss-14/ datenstrukturen-und-algorithmen/

Mehr

Schleifeninvarianten. Dezimal zu Binär

Schleifeninvarianten. Dezimal zu Binär Schleifeninvarianten Mit vollstandiger Induktion lasst sich auch die Korrektheit von Algorithmen nachweisen. Will man die Werte verfolgen, die die Variablen beim Ablauf eines Algorithmus annehmen, dann

Mehr

Lösung Probeklausur Informatik I

Lösung Probeklausur Informatik I Lösung Probeklausur Informatik I 1 Lösung Aufgabe 1 (5 Punkte) Algorithmen und Programme Was ist der Unterschied zwischen einem Algorithmus und einem Programm? Ein Algorithmus ist eine Vorschrift zur Durchführung

Mehr

Algorithmische Kryptographie

Algorithmische Kryptographie Algorithmische Kryptographie Walter Unger Lehrstuhl für Informatik I 16. Februar 2007 Public-Key-Systeme: Rabin 1 Das System nach Rabin 2 Grundlagen Körper Endliche Körper F(q) Definitionen Quadratwurzel

Mehr

Kontrollfluss. man Verzweigungen und Sprünge. o bisher linear (von oben nach unten) o Für interessante Programme braucht

Kontrollfluss. man Verzweigungen und Sprünge. o bisher linear (von oben nach unten) o Für interessante Programme braucht Kontrollanweisungen Kontrollfluss o bisher linear (von oben nach unten) o Für interessante Programme braucht man Verzweigungen und Sprünge Kontrollfluss o bisher linear (von oben nach unten) o Für interessante

Mehr

Inhalt 2007W. Vorlesung im 2007W

Inhalt 2007W. Vorlesung im 2007W Institut für Algebra Johannes Kepler Universität Linz Vorlesung im http://www.algebra.uni-linz.ac.at/students/win/ml Inhalt Definierende Eigenschaften 0 ist eine natürliche Zahl; Zu jeder natürlichen Zahl

Mehr

11. Rekursion, Komplexität von Algorithmen

11. Rekursion, Komplexität von Algorithmen 11. Rekursion, Komplexität von Algorithmen Teil 2 Java-Beispiele: Power1.java Hanoi.java K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16 Version: 23. Nov. 2015 Anwendung der Rekursion Rekursiv

Mehr

Übung Algorithmen und Datenstrukturen

Übung Algorithmen und Datenstrukturen Übung Algorithmen und Datenstrukturen Sommersemester 2016 Patrick Schäfer, Humboldt-Universität zu Berlin Organisation Vorlesung: Montag 11 13 Uhr Marius Kloft RUD 26, 0 115 Mittwoch 11 13 Uhr Marius Kloft

Mehr

Folgen und Funktionen in der Mathematik

Folgen und Funktionen in der Mathematik Folgen und Funktionen in der Mathematik Anhand von einigen exemplarischen Beispielen soll die Implementierung von mathematischen Algorithmen in C/C++ gezeigt werden: Reelle Funktionen in C/C++ Diese wird

Mehr

Wahrscheinlichkeitsrechnung und Statistik

Wahrscheinlichkeitsrechnung und Statistik Babeş-Bolyai Universität Fakultät für Mathematik und Informatik Oktober 2018 Im Alltag... Laut den meteorologischen Vorhersagen wird es morgen regnen. Ob ich riskiere und die Wette verlieren werde? Ich

Mehr

Algorithmen und Datenstrukturen (für ET/IT)

Algorithmen und Datenstrukturen (für ET/IT) Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2017 Dr. Stefanie Demirci Computer Aided Medical Procedures Technische Universität München Programm heute 1 Einführung 2 Grundlagen von Algorithmen

Mehr