Student: Alexander Carls Matrikelnummer: Aufgabe: Beschreibung des euklidischen Algorithmus Datum:

Größe: px
Ab Seite anzeigen:

Download "Student: Alexander Carls Matrikelnummer: Aufgabe: Beschreibung des euklidischen Algorithmus Datum:"

Transkript

1 Berufsakademie Stuttgart / Außenstelle Horb Studienbereich Technik Studiengang Informationstechnik Kurs IT2006, 2.Semester Dozent: Olaf Herden Student: Alexander Carls Matrikelnummer: Aufgabe: Beschreibung des euklidischen Algorithmus Datum: Seite 1

2 Inhaltsverzeichnis Vorwort Seite 2 Die Idee und seine Geschichte Seite 2 Erklärung des Algorithmus Seite 2-4 Varianten des euklidischen Algorithmus Seite 4 Der euklidische Algorithmus als Java-Code Seite 5 Korrektheit & Laufzeitkomplexitätsanalyse Seite 6 Anwendungsgebiete Seite 7 Die eigene Implementierung Seite 7 Quellenverzeichnis Seite 8 Vorwort Diese Dokumentation über den euklidischen Algorithmus wurde im Rahmen der Vorlesung Programmieren an der Berufsakademie Stuttgart / Außenstelle Horb erstellt. Über die Aufgabe hinaus, den Algorithmus zu erklären und Beispiele hierfür zu finden werde ich zusätzlich kurz auf meine eigene Implementierung, die Korrektheit sowie die theoretische Laufzeit eingehen. Ein Dank geht an Herrn Herden sowie an Björn Strobel für die Bereitstellung der Pakete zur Visualisierung und schrittweisen Dokumentation des Algorithmus. Die Idee und seine Geschichte Der euklidische Algorithmus ist ein effizienter Algorithmus zur Berechnung des größten gemeinsamen Teilers (im folgenden ggt abgekürzt) zweier ganzer positiver Zahlen. Der ggt ist die größte Zahl die zwei voneinander verschiedenen Zahlen gemeinsam haben. Beispiel: ggt von 100 und 40 ist 20. Ist die Primfaktorzerlegung zweier Zahlen nicht bekannt, so ist der euklidische Algorithmus der schnellste bekannte Algorithmus zur Berechnung des ggt, denn Algorithmen zur Primfaktorzerlegung erreichen bisher nicht die Laufzeitkomplexität des euklidischen Algorithmus. Erstmals formuliert wurde der Algorithmus 300 v. Chr. von Euklid von Alexandria in seinem Werk Die Elemente. Man geht aber davon aus, dass der Algorithmus bereits vor 300 v. Chr. dem griechischen Mathematiker Eudoxos von Knidos sowie dem Philosophen Aristoteles bekannt war. Auf der Suche nach der gemeinsamen größten Länge zweier Stöcke formulierte Euklid den Algorithmus in Die Elemente folgendermaßen: Wenn CD aber AB nicht misst, und man nimmt bei AB, CD abwechselnd immer das kleinere vom größeren weg, dann muss (schließlich) eine Zahl übrig bleiben, die die vorangehende misst. Erklärung des Algorithmus Um mit Hilfe von Euklids Formulierung den ggt zweier Zahlen zu berechnen muss zuerst die größere der beiden Zahlen ermittelt werden. Anschließend wird die kleinere der beiden Zahlen von der größeren Zahl abgezogen. Dadurch entstehen zwei neue Zahlen nämlich das Ergebnis der Subtraktion so wie die kleinere der beiden alten Zahlen. Nun wird überprüft ob beide Zahlen gleich groß sind. Ist dies der Fall, so ist der ggt der beiden Zahlen gefunden. Ist dies nicht der Fall wird der selbe Ablauf noch einmal mit den beiden neuen Zahlen durchlaufen, solange bis beide Zahlen gleich groß sind. Seite 2

3 Zur Verdeutlichung die Erklärung noch einmal an einem Beispiel: 1. Zahl = 4 2. Zahl = 6 Welche der beiden Zahlen ist größer? 2. Zahl = 6 Ziehe die kleinere von der größeren Zahl ab! 2. Zahl = 6 1. Zahl = 4 Wie lautet das Ergebnis? 3. Zahl = 2 Ersetze größere der beiden Zahlen durch 3. Zahl! 1. Zahl = 4 2. Zahl = 2 Sind beide Zahlen gleich? 4 ist ungleich 2 Welche der beiden Zahlen ist größer? 2. Zahl = 4 1. Zahl = 2 Ziehe die kleinere von der größeren Zahl ab! 2. Zahl = 4 1. Zahl = 2 Wie lautet das Ergebnis? 3. Zahl = 2 Seite 3

4 Ersetze größere der beiden Zahlen durch 3. Zahl! 1. Zahl = 2 2. Zahl = 2 Sind beide Zahlen gleich? 2 ist gleich 2 ggt gefunden Varianten und Erweiterungen des euklidischen Algorithmus 1. Moderner euklidischer Algorithmus Betrachtet man den euklidischen Algorithmus genauer fällt auf, dass es unter Umständen sehr lange dauern kann bis der ggt zweier Zahlen gefunden ist. Dies ist vor allem dann der Fall, wenn eine der beiden Zahlen sehr groß im Vergleich zu anderen ist, wie zum Beispiel bei 2 und Mit dem modernen euklidischen Algorithmus ist es möglich dieses Problem zu umgehen. Der moderne euklidische Algorithmus verwendet statt einer Subtraktion die modulo-funktion zur Berechnung des ggt. Die Ermittlung des ggt der Zahlen 101 und 2 würde mit dem modernen euklidischen Algorithmus etwa so aussehen. Schritt 1: 101 ist größer als 2 Schritt 2: Rechne 101 modulo 2 = 1 Schritt 3: Ersetze 101 durch 1 Schritt 4: 2 ist größer als 1 Schritt 5: Rechne 2 modulo 1 = 0 1 ist ggt von 101 und 2 Während man mit dem klassischen euklidischen Algorithmus 50 Rechenschritte benötigt hätte um den ggt zu ermitteln ist es mit dem modernen Algorithmus in nur 2 Rechenschritten möglich. Dies bedeutet eine enorme Zeitersparnis. Doch es ist zu beachten, dass auch der moderne euklidische Algorithmus nicht immer schneller ist. Sind die beiden Zahlen deren ggt ermittelt werden soll zwei aufeinander folgende Fibonacci Zahlen, so stößt der moderne Algorithmus auf seine Grenzen und benötigt genauso viele Schritte wie der klassische Algorithmus. Im Regelfall jedoch halbiert sich die größere der beiden Zahlen immer mindestens um die Hälfte und macht den modernen Algorithmus sehr schnell. 2. Erweiterter euklidischer Algorithmus Der so genannte erweiterte euklidische Algorithmus oder auch binärer euklidischer Algorithmus von Josef-Stein ist in der Lage, mittels Division durch 2, nebst dem ggt zweier Zahlen auch die Inverse und den Restklassenring zu berechnen. Das so genannte additive Inverse von 8 ist z.b. -8. Das multiplikativ Inverse von 8 ist 1/8. Unter dem Restklassenring versteht man die Menge von Zahlen die entstehen können wenn man eine positive ganze Zahl modulo einer anderen Zahl n berechnet. So ist der Restklassenring einer Zahl modulo 2 z.b. entweder 0 oder 1. Diese Restklassenringe spielen vor allem in der Mikroprozessortechnik eine große Rolle. So sind Integer Zahlen mit 16 bit im Mikroprozessor als folgender Restklassenring dargestellt: Z/ 65536Z (Z = ganze Zahlen). Seite 4

5 Der euklidische Algorithmus als Java-Code 1. Klassischer euklidischer Algorithmus - Iterativ implementiert KlassischEuklidIterativ(a,b) while(b!=0) { // Prüft ob kleinere Zahl bereits 0 ist if (a > b) { a = a-b; /* Wenn keine der beiden Zahlen 0 ist, wird die kleinere Zahl von der größeren abgezogen */ else { b = b-a; return a; 2. Klassischer euklidischer Algorithmus Rekursiv Implementiert KlassischEuklidRekursiv(a,b) if (b==0) { // Prüft ob kleinere Zahl bereits 0 ist return a; else if (a > b) { /* Größere Zahl wird ermittelt, kleinere von return KlassischEuklidRekursiv(a-b, b); größerer Zahl abgezogen und die Funktion mit den beiden neuen Zahl else { erneut aufgerufen */ return KlassischEuklidRekursiv(a, b-a); 3. Moderner euklidischer Algorithmus Iterativ implementiert ModernEuklidIterativ(a,b) int h; // Hilfsvariable while (b!= 0) { // Prüft ob b bereits 0 ist h = a % b; /* Hilfsvariable mit a modulo b setzen, 1. Zahl a = b; durch 2. Zahl ersetzen, 2. Zahl durch h ersetzen b = h; */ return a; 4. Moderner euklidischer Algorithmus Rekursiv implementiert ModernEuklidRekursiv(a,b) if (b = 0) { return a; else { return ModernEuklidRekursiv(b, a mod b) // Prüft ob b schon 0 ist /* Erneuter Aufruf der Funktion mit Zahl 2 als Zahl 1 und a mod b als Zahl 2 */ Seite 5

6 Korrektheit & Laufzeitkomplexität Korrektheit: Annahme: 1. Zahl und 2. Zahl sind > 0 Invariante: 1.Zahl <= 0 ^ 2. Zahl <= 0 Vor Beginn der Schleife: Wenn sich der Benutzer an die Vorgaben hält so ist die Invariante erfüllt Während der Schleife: Nach der Schleife: Da immer die kleinere von der größeren Zahl abgezogen wird, kann keine der beiden Zahlen kleiner als 0 werden Da die Zahlen während der Schleife nicht kleiner 0 werden können und nach der Schleife keine weitere Anweisung folgt, können die Zahlen auch danach nicht kleiner werden. Somit gilt: Der Algorithmus terminiert und ist korrekt. Dies gilt analog für den modernen euklidischen Algorithmus, da bei einer modulo-funktion nie ein negativer Rest entstehen kann, in sofern die beiden Zahlen zu Beginn positive ganze Zahlen sind. Laufzeit: Geht man davon aus, dass der klassische euklidische Algorithmus erkennt, dass wenn eine der beiden Zahlen = 1 ist, der ggt ebenfalls 1 ist, ergibt sich folgende Laufzeitkomplexität. Eingabe: n und m, dabei gilt n ist größer als m Schritt 1: n m Schritt 2: n m Schritt 3: n m usw. usw. Daraus ergibt sich als Laufzeitkomplexität: n / m Oder in der Landau-Schreibweise: Θ n In Worten ausgedrückt bedeutet dies, dass der euklidische Algorithmus im schlimmsten Falle halb so viele Subtraktionen durchführen muss, wie die größere Zahl zu Beginn groß ist. Worst Case Average Case Best Case Θ n (n/2) Θ n (n/2) Θ 1 Beispiel: Zahl 1 = 10 Zahl 2 = 2 Schritt 1: 10-2 = 8 Schritt 2: 8 2 = 6 Schritt 3: 6 2 = 4 Schritt 4: 4 2 = 2 Schritt 5: 2-2 = 0 n/m = 10 / 2 5 Zusatzinfo: Interessanterweise, ist die Laufzeit des modernen euklidischen Algorithmus bei zwei aufeinander folgenden Fibonacci-Zahlen Θ log (a b) Seite 6

7 Anwendungsgebiete Der euklidische Algorithmus wird unter anderem in der Kryptographie verwendet. Als Beispiel kann hier das so genannte RSA-Verfahren genannt werden, das eine asymmetrische Verschlüsselungsmethode darstellt. Hier wird der euklidische Algorithmus zur Berechnung von private und public Key verwendet und ermöglicht somit die Verschlüsselung so wie die digitale Signatur von Daten. Die eigene Implementierung Wahl des Algorithmus der angewendet werden soll (Klassisch oder Modern) Eingabe der Zahlen beiden Zahlen (nur positive, ganze Zahlen) Darstellung der Berechnung Seite 7

8 Quellenverzeichnis Algorithmen Eine Einführung 2. Auflage Th. H. Cormen, Ch. E. Leserson, R.Rivest, C.Stein Oldenbourg Verlag München Wien Seiten Die Elemente Euklid Wissenschaftliche Buchgesellschaft Darmstadt Seite 8

Ü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 Administratives Zentralübung (Mittwoch, 09:45

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 2015 Matthias Wieczorek Computer-Aided Medical Procedures Technische Universität München Administratives Zentralübung (Mittwoch, 09:45

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 2018 Mai Bui Computer Aided Medical Procedures Technische Universität München Administratives Zentralübung (Mittwoch, 09:45 11:15) Programmierbeispiele

Mehr

7. Musterlösung zu Mathematik für Informatiker I, WS 2003/04

7. Musterlösung zu Mathematik für Informatiker I, WS 2003/04 7. Musterlösung zu Mathematik für Informatiker I, WS 2003/04 KATHRIN TOFALL Aufgabe 7. (Symmetrischer EEA). (9 Punkte) Ziel dieser Aufgabe ist es zu zeigen, was man gewinnt, wenn man bei der Division mit

Mehr

Euklidischer Algorithmus

Euklidischer Algorithmus Euklidischer Algorithmus Ermitteln des größten gemeinsamen Teilers mit Euklid: function ggt (m, n) Hierbei ist m begin 0undn 0vorausgesetzt. if m = 0 then return n else return ggt (n mod m, m) fi end Man

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

Der Euklidische Algorithmus

Der Euklidische Algorithmus Euklid.nb 1 Der Euklidische Algorithmus (Euklid von Alexandria ca. 365-300 v.chr.) Realisierung in den Versionen: Subtraktionsform, Divisionsform, iterativ, rekursiv und regelbasiert Nimmt man abwechselnd

Mehr

Kapitel 2. Elementare Zahlentheorie Primfaktorzerlegung

Kapitel 2. Elementare Zahlentheorie Primfaktorzerlegung Kapitel 2. Elementare Zahlentheorie 2.1. Primfaktorzerlegung Menge der ganzen Zahlen Z = {..., 3, 2, 1, 0, 1, 2, 3,...} Addition Inverse Multiplikation Z Z Z, Z Z, Z Z Z, (a, b) a + b a a (a, b) a b Ausgezeichnete

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

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

Das RSA-Verfahren. Proseminar Kryptographische Protokolle SS Armin Litzel

Das RSA-Verfahren. Proseminar Kryptographische Protokolle SS Armin Litzel in der Praxis Proseminar Kryptographische Protokolle SS 2009 5.5.2009 in der Praxis Gliederung 1 Grundlegendes über RSA 2 in der Praxis Allgemeine Vorgehensweise zur Verschlüsselung Signieren mit RSA 3

Mehr

Primzahlen im Schulunterricht wozu?

Primzahlen im Schulunterricht wozu? Primzahlen im Schulunterricht wozu? Franz Pauer Institut für Fachdidaktik und Institut für Mathematik Universität Innsbruck Tag der Mathematik Graz 6. Februar 2014 Einleitung Eine (positive) Primzahl ist

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

Ü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

Interim. Kapitel Einige formale Definitionen

Interim. Kapitel Einige formale Definitionen Kapitel 1 Interim Da ich keine Infos über Titel und Nummerierungen anderer Kapitel dieser Vorlesung habe, nenne ich dies einfach mal Kapitel 1. 17.11.04 1.1 Einige formale Definitionen Wir rekapitulieren

Mehr

Algorithmen und Datenstrukturen 1. EINLEITUNG. Algorithmen und Datenstrukturen - Ma5hias Thimm 1

Algorithmen und Datenstrukturen 1. EINLEITUNG. Algorithmen und Datenstrukturen - Ma5hias Thimm 1 Algorithmen und Datenstrukturen 1. EINLEITUNG Algorithmen und Datenstrukturen - Ma5hias Thimm (thimm@uni-koblenz.de) 1 Allgemeines Einleitung Zu den Begriffen: Algorithmen und Datenstrukturen systematische

Mehr

Informatik II, SS 2014

Informatik II, SS 2014 Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 20 (23.7.2014) All Pairs Shortest Paths, String Matching (Textsuche) Algorithmen und Komplexität Vorlesungsevaluation Sie sollten alle eine

Mehr

Diskrete Strukturen. Vorlesung 15: Arithmetik. 5. Februar 2019

Diskrete Strukturen. Vorlesung 15: Arithmetik. 5. Februar 2019 1 Diskrete Strukturen Vorlesung 15: Arithmetik 5. Februar 2019 Nächste Termine Modul Diskrete Strukturen Hörsaalübung (Mo. 9:15) Vorlesung (Di. 17:15) 4.2. Tutorium (Klausurvorbereitung) 11.2. 12.2. 5.2.

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

1.Vortrag: Rechnen mit Restklassen/modulo einer Zahl

1.Vortrag: Rechnen mit Restklassen/modulo einer Zahl Westfälische Wilhelms-Universität Münster Mathematik Sommersemester 2017 Seminar: Verschlüsselungs- und Codierungstheorie Leitung: Thomas Timmermann 1.Vortrag: Rechnen mit Restklassen/modulo einer Zahl

Mehr

Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2016/17. Vorbereitende Aufgaben

Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2016/17. Vorbereitende Aufgaben Fakultät für Informatik Lehrstuhl 14 Lars Hildebrand, Alexander Lochmann, Iman Kamehkhosh, Marcel Preuß, Dominic Siedhoff Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester

Mehr

Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2017/18. Vorbereitende Aufgaben

Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2017/18. Vorbereitende Aufgaben Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2017/18 Fakultät für Informatik Lehrstuhl 14 Lars Hildebrand Übungsblatt 7 Besprechung: 4. 8.12.2017 (KW 49) Vorbereitende

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

FAKULTÄT FÜR INFORMATIK

FAKULTÄT FÜR INFORMATIK TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Effiziente Algorithmen SS 2008 Grundlagen: Algorithmen und Datenstrukturen Midterm-Klausur Prof. Dr. Christian Scheideler, Dr. Stefan

Mehr

Kapitel 2: Zahlentheoretische Algorithmen Gliederung

Kapitel 2: Zahlentheoretische Algorithmen Gliederung Gliederung 1. Grundlagen 2. Zahlentheoretische Algorithmen 3. Sortierverfahren 4. Ausgewählte Datenstrukturen 5. Dynamisches Programmieren 6. Graphalgorithmen 7. String-Matching 8. Kombinatorische Algorithmen

Mehr

Zahlentheorie, Arithmetik und Algebra I. Katharina Falk Medizintechnik Master

Zahlentheorie, Arithmetik und Algebra I. Katharina Falk Medizintechnik Master Zahlentheorie, Arithmetik und Algebra I Katharina Falk Medizintechnik Master 13.06.2016 Gliederung Modulare Arithmetik Rechenregeln Schnelle Potenzierung Gemeinsamer Teiler Erweiterter Euklid Primzahlen

Mehr

1. Die rekursive Datenstruktur Liste

1. Die rekursive Datenstruktur Liste 1. Die rekursive Datenstruktur Liste 1.3 Rekursive Funktionen Ideen zur Bestimmung der Länge einer Liste: 1. Verwalte ein globales Attribut int laenge. Fügt man ein Element zur Liste oder löscht es, wird

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

ADS: Algorithmen und Datenstrukturen 2

ADS: Algorithmen und Datenstrukturen 2 ADS: Algorithmen und Datenstrukturen 2 Teil 11 Prof. Peter F. Stadler & Dr. Christian Höner zu Siederdissen Bioinformatik/IZBI Institut für Informatik & Interdisziplinäres Zentrum für Bioinformatik Universität

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Prof. Dr. Ralf Möller Universität zu Lübeck Institut für Informationssysteme Stefan Werner (Übungen) sowie viele Tutoren Teilnehmerkreis und Voraussetzungen Studiengänge

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

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

Kanonische Primfaktorzerlegung

Kanonische Primfaktorzerlegung Kanonische Primfaktorzerlegung Jede natürliche Zahl Form kann auf eindeutige Weise in der geschrieben werden, wobei, für und Primzahlen sind. Dies ist die kanonische Primfaktorzerlegung von. Mathematik

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

8 Anwendung: Suchen. Folge a ganzer Zahlen; Element x. Wo kommt x in a vor?

8 Anwendung: Suchen. Folge a ganzer Zahlen; Element x. Wo kommt x in a vor? 8 Anwendung: Suchen Gegeben: Gesucht: Folge a ganzer Zahlen; Element x Wo kommt x in a vor? Naives Vorgehen: Vergleiche x der Reihe nach mit a[0], a[1], usw. Finden wir i mit a[i] == x, geben wir i aus.

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

3: Primzahlen. 111 S. Lucks Diskr Strukt. (WS 18/19) 3: Primzahlen

3: Primzahlen. 111 S. Lucks Diskr Strukt. (WS 18/19) 3: Primzahlen 3: Primzahlen 111 S. Lucks Diskr Strukt. (WS 18/19) 3: Primzahlen Definition 40 (Teiler, Vielfache, Primzahlen, zusammengesetzte Zahlen) Seien a, b N. a ist ein Teiler von b ( a b ), falls es ein k N gibt

Mehr

WS 2008/09. Diskrete Strukturen

WS 2008/09. Diskrete Strukturen WS 2008/09 Diskrete Strukturen Prof. Dr. J. Esparza Lehrstuhl für Grundlagen der Softwarezuverlässigkeit und theoretische Informatik Fakultät für Informatik Technische Universität München http://www7.in.tum.de/um/courses/ds/ws0809

Mehr

Datenstrukturen und Algorithmen (SS 2013)

Datenstrukturen und Algorithmen (SS 2013) Datenstrukturen und Algorithmen (SS 2013) Präsenzübung Musterlösung Dienstag, 28.05.2013 Aufgabe 1 (Allgemeine Fragen [20 Punkte]) 1. Tragen Sie in der folgenden Tabelle die Best-, Average- und Worst-Case-

Mehr

3: Zahlentheorie / Primzahlen

3: Zahlentheorie / Primzahlen Stefan Lucks Diskrete Strukturen (WS 2009/10) 96 3: Zahlentheorie / Primzahlen 3: Zahlentheorie / Primzahlen Stefan Lucks Diskrete Strukturen (WS 2009/10) 97 Definition 37 (Teiler, Vielfache, Primzahlen,

Mehr

Einführung in die Informatik I

Einführung in die Informatik I Einführung in die Informatik I LOOP Programme, rekursive Funktionen und der Turm von Hanoi Prof. Dr. Nikolaus Wulff Berechenbarkeit Mitte des 20. Jahrhunderts beantworteten Pioniere, wie Alan M. Turing

Mehr

Diskrete Strukturen Kapitel 5: Algebraische Strukturen (Gruppen)

Diskrete Strukturen Kapitel 5: Algebraische Strukturen (Gruppen) WS 2015/16 Diskrete Strukturen Kapitel 5: Algebraische Strukturen (Gruppen) Hans-Joachim Bungartz Lehrstuhl für wissenschaftliches Rechnen Fakultät für Informatik Technische Universität München http://www5.in.tum.de/wiki/index.php/diskrete_strukturen_-_winter_15

Mehr

Erweiterter Euklidischer Algorithmus

Erweiterter Euklidischer Algorithmus Erweiterter Euklidischer Algorithmus Algorithmus ERWEITERTER EUKLIDISCHER ALG. (EEA) EINGABE: a, b N 1 If (b = 0) then return (a, 1, 0); 2 (d, x, y) EEA(b, a mod b); 3 (d, x, y) (d, y, x a b y); AUSGABE:

Mehr

Rekursion. Dr. Philipp Wendler. Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung

Rekursion. Dr. Philipp Wendler. Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung Dr. Philipp Wendler Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung WS18/19 https://www.sosy-lab.org/teaching/2018-ws-infoeinf/ Divide et Impera im Römischen

Mehr

Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems

Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems 4. Algorithmen Motivation Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems Der Begriff Algorithmus geht auf den Gelehrten Muhammad al-chwarizmi zurück, der um

Mehr

Kanonische Primfaktorzerlegung

Kanonische Primfaktorzerlegung Mathematik I für Informatiker Zahlen p. 1 Kanonische Primfaktorzerlegung Jede natürliche Zahl n kann auf eindeutige Weise in der Form n = p α 1 1 pα 2 2... pα k k geschrieben werden, wobei k N 0, α i N

Mehr

OOP Aufgabenblatt 7 6. Dezember 2013

OOP Aufgabenblatt 7 6. Dezember 2013 1 Prof. Dr. Th. Letschert OOP Aufgabenblatt 7 6. Dezember 2013 Aufgabe 1 Hausaufgabe Nr. 4 (Klein) Implementieren Sie, ohne Arrays oder eine sonstige Kollektion zu nutzen, folgende Fingerübungen zu Rekursion

Mehr

INFORMATIK FÜR BIOLOGEN

INFORMATIK FÜR BIOLOGEN Technische Universität Dresden 15012015 Institut für Theoretische Informatik Professur für Automatentheorie INFORMATIK FÜR BIOLOGEN Musterklausur WS 2014/15 Studiengang Biologie und Molekulare Biotechnologie

Mehr

Euklidische Algorithmus, Restklassenringe (Z m,, )

Euklidische Algorithmus, Restklassenringe (Z m,, ) Euklidische Algorithmus, Restklassenringe (Z m,, ) Manfred Gruber http://www.cs.hm.edu/~gruber SS 2008, KW 14 Gröÿter gemeinsamer Teiler Denition 1. [Teiler] Eine Zahl m N ist Teiler von n Z, wenn der

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

Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems

Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems 4. Algorithmen Motivation Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems Der Begriff Algorithmus geht auf den Gelehrten Muhammad al-chwarizmi zurück, der um

Mehr

Literatur. ISM SS 2018 Teil 3/Restklassen

Literatur. ISM SS 2018 Teil 3/Restklassen Literatur [3-1] Beutelspacher, A.; Schwenk, J.; Wolfenstetter, K.-D.: Moderne Verfahren der Kryptographie. 4. Auflage, Vieweg 2001 [3-2] Schmeh, Klaus: Kryptografie. dpunkt, 5. Auflage, 2013 [3-3] Hoffmann,

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

Rekursion. Philipp Wendler. Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung

Rekursion. Philipp Wendler. Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung Philipp Wendler Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung https://www.sosy-lab.org/teaching/2017-ws-infoeinf/ WS17/18 Divide et Impera im Römischen

Mehr

Der Dreyfus-Wagner Algorithmus für das Steiner Baum Problem

Der Dreyfus-Wagner Algorithmus für das Steiner Baum Problem Der Dreyfus-Wagner Algorithmus für das Steiner Baum Problem Andreas Moser Dietmar Ebner Christian Schauer Markus Bauer 9. Dezember 2003 1 Einführung Der in der Vorlesung gezeigte Algorithmus für das Steiner

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

$Id: ring.tex,v /05/03 15:13:26 hk Exp $

$Id: ring.tex,v /05/03 15:13:26 hk Exp $ $Id: ring.tex,v 1.13 2012/05/03 15:13:26 hk Exp $ 3 Ringe 3.1 Der Ring Z m In der letzten Sitzung hatten wir die sogenannten Ringe eingeführt, dies waren Mengen A versehen mit einer Addition + und einer

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

Einführung in die Algebra

Einführung in die Algebra Prof. Dr. H. Brenner Osnabrück SS 2009 Einführung in die Algebra Vorlesung 4 Das Lemma von Bezout Satz 1. (Lemma von Bézout) Jede Menge von ganzen Zahlen a 1,...,a n besitzt einen größten gemeinsamen Teiler

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

Primzahlen im Schulunterricht wozu?

Primzahlen im Schulunterricht wozu? Primzahlen im Schulunterricht wozu? Franz Pauer Institut für Fachdidaktik und Institut für Mathematik Universität Innsbruck Lehrer/innen/fortbildungstag Wien 2013 5. April 2013 Einleitung Eine (positive)

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

11. Rekursion. 1, falls n 1. n (n 1)!, andernfalls. Mathematische Rekursion. Rekursion in Java: Genauso! Unendliche Rekursion. n!

11. Rekursion. 1, falls n 1. n (n 1)!, andernfalls. Mathematische Rekursion. Rekursion in Java: Genauso! Unendliche Rekursion. n! Mathematische Rekursion 11. Rekursion Mathematische Rekursion, Terminierung, der Aufrufstapel, Beispiele, Rekursion vs. Iteration, Lindenmayer Systeme Viele mathematische Funktionen sind sehr natürlich

Mehr

Programmieren 1 C Überblick

Programmieren 1 C Überblick Programmieren 1 C Überblick 1. Einleitung 2. Graphische Darstellung von Algorithmen 3. Syntax und Semantik 4. Einstieg in C: Einfache Sprachkonstrukte und allgemeiner Programmaufbau 5. Skalare Standarddatentypen

Mehr

Kompaktkurs Einführung in die Programmierung Übungsblatt 5: Funktionen

Kompaktkurs Einführung in die Programmierung Übungsblatt 5: Funktionen Technische Universität München März 2013 Institut für Informatik Dr. rer. nat. Tobias Weinzierl Kaveh Rahnema Kompaktkurs Einführung in die Programmierung Übungsblatt 5: Funktionen Lernziele Mehrfache

Mehr

Das RSA-Verfahren - Einsatz von Standardalgorithmen in der Kryptologie

Das RSA-Verfahren - Einsatz von Standardalgorithmen in der Kryptologie Das RSA-Verfahren - Einsatz von Standardalgorithmen in der Kryptologie 2 Verschlüsseln durch modulares Rechnen modulares Addieren modulares Multiplizieren modulares Potenzieren Verschlüsselung mit öffentl.

Mehr

12. Rekursion. 1, falls n 1. n (n 1)!, andernfalls. Lernziele. Mathematische Rekursion. Rekursion in Java: Genauso! n! =

12. Rekursion. 1, falls n 1. n (n 1)!, andernfalls. Lernziele. Mathematische Rekursion. Rekursion in Java: Genauso! n! = Lernziele Sie verstehen, wie eine Lösung eines rekursives Problems in Java umgesetzt werden kann. Sie wissen, wie Methoden in einem Aufrufstapel abgearbeitet werden. 12. Rekursion Mathematische Rekursion,

Mehr

Nachklausur Bitte in Druckschrift leserlich ausfüllen!

Nachklausur Bitte in Druckschrift leserlich ausfüllen! Übungen zur Vorlesung Informatik für Informationsmanager WS 2005/2006 Universität Koblenz-Landau Institut für Informatik Prof. Dr. Bernhard Beckert Dr. Manfred Jackel Nachklausur 24.04.2006 Bitte in Druckschrift

Mehr

Von den ganzen Zahlen zu GF(p)

Von den ganzen Zahlen zu GF(p) Endliche Körper p. 1 Von den ganzen Zahlen zu GF(p) Aus dem Ring aller ganzen Zahlen gewinnt man endliche Körper wie folgt: Man führt das Rechnen modulo n ein (modulare Arithmetik) und erhält so endliche

Mehr

Kapitel 2. Weitere Beispiele Effizienter Algorithmen

Kapitel 2. Weitere Beispiele Effizienter Algorithmen Kapitel 2 Weitere Beispiele Effizienter Algorithmen Sequentielle Suche Gegeben: Array a[1..n] Suche in a nach Element x Ohne weitere Zusatzinformationen: Sequentielle Suche a[1] a[2] a[3] Laufzeit: n Schritte

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

2. Teil: Diskrete Strukturen

2. Teil: Diskrete Strukturen 2. Teil: Diskrete Strukturen Kenntnis der Zahlenbereiche N, Z, Q, R, C setzen wir voraus. Axiomatische Einführung von N über Peano-Axiome. Z aus N leicht abzuleiten. Wie wird Q definiert? R ist der erste

Mehr

Informatik II, SS 2018

Informatik II, SS 2018 Informatik II - SS 2018 (Algorithmen & Datenstrukturen) Vorlesung 20 (9.7.2018) String Matching (Textsuche) Algorithmen und Komplexität Textsuche / String Matching Gegeben: Zwei Zeichenketten (Strings)

Mehr

Technische Universität München SoSe 2018 Fakultät für Informatik, I Mai 2018 Dr. Stefanie Demirci

Technische Universität München SoSe 2018 Fakultät für Informatik, I Mai 2018 Dr. Stefanie Demirci Name: Vorname: Matr. Nr.: Technische Universität München SoSe 2018 Fakultät für Informatik, I-16 9. Mai 2018 Dr. Stefanie Demirci Probeklausur zu Algorithmen und Datenstrukturen Allgemeine Hinweise Die

Mehr

Ganzzahlige Division mit Rest

Ganzzahlige Division mit Rest Modulare Arithmetik Slide 1 Ganzzahlige Division mit Rest Für a,b Æ mit a b gibt es stets eine Zerlegung von a der Form a = q b+r mit 0 r b 1. Hierbei gilt q = a b (salopp formuliert: b passt q-mal in

Mehr

11. Das RSA Verfahren

11. Das RSA Verfahren Chr.Nelius: Zahlentheorie (SoSe 2017) 53 11. Das RSA Verfahren Bei einer asymmetrischen Verschlüsselung lässt sich der Schlüssel zum Entschlüsseln nicht aus dem Schlüssel zum Verschlüsseln bestimmen und

Mehr

Aufgabe der Kryptografie

Aufgabe der Kryptografie Aufgabe der Kryptografie Eve möchte die Unterhaltung mithören und/oder ausgetauschte Informationen ändern. Alice & Bob kommunzieren über einen unsicheren Kanal. Alice & Bob nutzen Verschlüsselung und digitale

Mehr

Algorithmen und Datenstrukturen 2

Algorithmen und Datenstrukturen 2 Algorithmen und Datenstrukturen 2 Lerneinheit 3: Greedy Algorithmen Prof. Dr. Christoph Karg Studiengang Informatik Hochschule Aalen Sommersemester 2016 10.5.2016 Einleitung Einleitung Diese Lerneinheit

Mehr

1. Teilklausur. Name:... Vorname:... Matrikel-Nummer:...

1. Teilklausur. Name:... Vorname:... Matrikel-Nummer:... ALP II Objektorientierte Programmierung SS 2012 Prof. Dr. Margarita Esponda 1. Teilklausur Name:... Vorname:... Matrikel-Nummer:... Ich bin mit der Veröffentlichung der Klausurergebnisse mit Matrikel-Nummer

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

Datenstrukturen und Algorithmen (SS 2013) Prof. Dr. Leif Kobbelt Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer

Datenstrukturen und Algorithmen (SS 2013) Prof. Dr. Leif Kobbelt Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer Präsenzübung Datenstrukturen und Algorithmen (SS 2013) Prof. Dr. Leif Kobbelt Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer Dienstag, 28. Mai 2013 Nachname: Vorname: Matrikelnummer: Studiengang:

Mehr

VI.3 RSA. - RSA benannt nach seinen Erfindern R. Rivest, A. Shamir und L. Adleman. - vorgestellt erstes Public-Key Verschlüsselungsverfahren

VI.3 RSA. - RSA benannt nach seinen Erfindern R. Rivest, A. Shamir und L. Adleman. - vorgestellt erstes Public-Key Verschlüsselungsverfahren VI.3 RSA - RSA benannt nach seinen Erfindern R. Rivest, A. Shamir und L. Adleman - vorgestellt 1977 - erstes Public-Key Verschlüsselungsverfahren - auch heute noch das wichtigste Public-Key Verfahren 1

Mehr

Zufallsprimzahlen und eine Revolution in der Kryptographie Stefan Edelkamp

Zufallsprimzahlen und eine Revolution in der Kryptographie Stefan Edelkamp Zufallsprimzahlen und eine Revolution in der Kryptographie Stefan Edelkamp Fakultät für Mathematik und Informatik Universität of Bremen Übersicht des Vortrags 1 Einfache Kryptosysteme 2 Einmalschlüssel

Mehr

Rekursion. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Rekursion. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-13-14/infoeinf WS13/14 Action required now 1. Smartphone: installiere die App "socrative student"

Mehr

Algorithmen und Datenstrukturen 2

Algorithmen und Datenstrukturen 2 Algorithmen und Datenstrukturen Lerneinheit : Dynamisches Programmieren Prof. Dr. Christoph Karg Studiengang Informatik Hochschule Aalen Sommersemester.. Einleitung Diese Lerneinheit widmet sich einer

Mehr

Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme

Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme Programmieren I Dr. Werner Struckmann 13. März 2017 Name: Vorname: Matrikelnummer: Kennnummer: Anrede: Frau Herr Studiengang:

Mehr

Der chinesische Restsatz mit Anwendung

Der chinesische Restsatz mit Anwendung Der chinesische Restsatz mit Anwendung Nike Garath n.garath@gmx.de Martrikelnummer: 423072 Seminar: Verschlüsslungs- und Codierungstheorie Dozent: Dr. Thomas Timmermann Sommersemester 2017 Inhaltsverzeichnis

Mehr

Lösung zur Klausur zu Krypographie Sommersemester 2005

Lösung zur Klausur zu Krypographie Sommersemester 2005 Lösung zur Klausur zu Krypographie Sommersemester 2005 1. Bestimmen Sie die zwei letzten Ziffern der Dezimaldarstellung von 12 34 Es gilt: 12 34 = 12 32+2 = 12 32 12 2 = 12 (25) 12 2 = ((((12 2 ) 2 ) 2

Mehr

Operatoren und Ausdrücke

Operatoren und Ausdrücke Informatik für Elektrotechnik und Informationstechnik Benedict Reuschling benedict.reuschling@h-da.de Hochschule Darmstadt Fachbereich Informatik WS 2013/14 Überblick 1 2 / 11 Motivation Es gibt eine Reihe

Mehr

Algorithmentheorie Randomisierung. Robert Elsässer

Algorithmentheorie Randomisierung. Robert Elsässer Algorithmentheorie 03 - Randomisierung Robert Elsässer Randomisierung Klassen von randomisierten Algorithmen Randomisierter Quicksort Randomisierter Primzahltest Kryptographie 2 1. Klassen von randomisierten

Mehr

Kapitel 1 Einleitung. Definition: Algorithmus nach M. Broy: aus: Informatik: Eine grundlegende Einführung, Band 1, Springer-Verlag, Berlin

Kapitel 1 Einleitung. Definition: Algorithmus nach M. Broy: aus: Informatik: Eine grundlegende Einführung, Band 1, Springer-Verlag, Berlin Kapitel 1 Einleitung 1.1. Begriff des Algorithmus Eine der ältesten Beschreibungstechniken für Abläufe: Benannt nach dem Mathematiker Al-Khwarizmi (ca. 780...840), der am Hof der Kalifen von Bagdad wirkte.

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 06: Einführung in Kontrollstrukturen Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Einführung in Kontrollstrukturen 3 Grundstrukturen von

Mehr

Programmiertechnik Übungen zu Klassen & -methoden

Programmiertechnik Übungen zu Klassen & -methoden Programmiertechnik Übungen zu Klassen & -methoden Prof. Dr. Oliver Haase Oliver Haase Hochschule Konstanz 1 Übung 1 Ein Verfahren, den größten gemeinsamen Teiler (ggt) zweier Zahlen a und b, a

Mehr

Vorlesung Mathematik 2 für Informatik

Vorlesung Mathematik 2 für Informatik Vorlesung Mathematik 2 für Informatik Inhalt: Modulare Arithmetik Lineare Algebra Vektoren und Matrizen Lineare Gleichungssysteme Vektorräume, lineare Abbildungen Orthogonalität Eigenwerte und Eigenvektoren

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

1. Musterlösung. Problem 1: Average-case-Laufzeit vs. Worst-case-Laufzeit ** i=1

1. Musterlösung. Problem 1: Average-case-Laufzeit vs. Worst-case-Laufzeit ** i=1 Universität Karlsruhe Algorithmentechnik Fakultät für Informatik WS 05/06 ITI Wagner. Musterlösung Problem : Average-case-Laufzeit vs. Worst-case-Laufzeit ** (a) Im schlimmsten Fall werden für jedes Element

Mehr