Algorithmen und Datenstrukturen 1 Kapitel 3

Größe: px
Ab Seite anzeigen:

Download "Algorithmen und Datenstrukturen 1 Kapitel 3"

Transkript

1 Algorithmen und Datenstrukturen 1 Kapitel 3 Technische Fakultät robert@techfak.uni-bielefeld.de Vorlesung, U. Bielefeld, Winter 2005/2006

2 Kapitel 3: Strategien der algorithmischen Problemlösung Vorbemerkungen Hier werden an einfachen Beispielen verschiedene Strategien erklärt, die zur Lösung eines wohldefinierten algorithmischen Problems benutzt werden können. In diesem Kapitel nehmen wir an, dass wir die Probleme der Modellierung (Kapitel 2) bereits erfolgreich hinter uns gelassen haben.

3 Unsere Beispiele sind einfach, um die Strategien in Reinform darzustellen. Für umfangreichere Aufgaben werden in der Regel Kombinationen und Mischformen der Strategien eingesetzt. Zusammen mit den Strategien betrachten wir auch den Rechenaufwand, den sie erfordern. Dies allerdings nur intuitiv eine mathematische Behandlung wird später nachgeholt.

4 Zum Aufwand A[... ] für Arithmetik: Die Annahme ist eine Vereinfachung. Sie gilt A[ + ] = A[ (x + y) ] x, y N auf dem Computer für das Rechnen in einem beschränkten Zahlenbereich (32 Bit, 64 Bit) Sie gilt nicht für uns für den Computer beim Rechnen mit beliebig großen Zahlen (In Haskell: Typ Int versus Typ Integer.)

5 Rechnen mit großen Zahlen hat wichtige Anwendungen, z.b. in der Verschlüsselungstechnik. Rechenaufwand hängt auch vom Zahlsystem ab. Dezimal: = 17 (3 A[ + Ziffer ] Binär: = (9 A[ + Ziffer ]) Unär: = (17 A[ 1 ])

6 Leibniz hat als Erster die Binärzahlen beschrieben und bemerkt, dass durch diese Zahldarstellung das kleine und 1 1 einfacher werden, die Zahlen und damit die Rechnungen länger werden. Er hielt die Binärzahlen für elegant, aber unpraktisch.

7 3.1 Ausrechnen von Formeln Dies ist der einfachste Fall. Die Modellierung hat schon ganze Arbeit geleistet und fertige Formeln für die Lösung aufgestellt: Beispiel: Tübinger Parkplatz Variante 1: Variante 2: r(p, m) = 4p + 2m p(n, r) = r 2n 2 m(n, r) = n r 2n 2

8 Probleme, deren Lösungen sich allgemein als fertige Formeln beschreiben lassen, sind zugleich die einfachsten Aufgaben. Das ganze Problem wird auf einen Schlag gelöst. Meistens jedoch müssen Aufgaben erst in Teilaufgaben zergliedert, diese gelöst und deren Lösungen anschließend kombiniert werden.

9 3.2 Strukturelle Rekursion Allgemeines zur Rekursion: Rekursion heißt: Eine Methode M benutzt sich selbst zur Lösung von Problem X Terminierungsfall: Problem direkt lösbar Rekursiver Fall: M(X ) benutzt Lösung von M[X ] Endlose Rekursion tritt auf, wenn beim Übergang M[X ] M[X ] M[X ]... nie der Terminierungsfall erreicht wird. Es gibt verschiedene Wege, Endlosrekursion auszuschließen.

10 Strukturelle Rekursion bedeutet Problemzerlegung durch direkte Zerlegung der Datenstruktur. Berechnen der Spieldauer eines Musikstückes (in Takten): playtime(p(d)) = d playtime(n(t, d)) = d playtime(m 1 m 2 ) = playtime(m 1 ) + playtime(m 2 ) playtime(m 1 + m 2 ) = max(playtime(m 1 ), playtime(m 2 ))

11 Schema der Strukturellen Rekursion: Eine Gleichung pro Konstruktor des Datentyps Nicht-rekursive Konstruktoren Terminierungsfall Rekursive Konstruktoren rekursive Problemzerlegung Weiteres Beispiel: Funktion transponiere (s. Haskell-Vorlesung)

12 Strukturelle Rekursion über Listen Kleinstes Element einer nichtleeren Liste: minimum(x : xs) = min x xs where min a[] = a min a(x : xs) = if a <= x then min a xs else min x xs Hier folgt die Hilfsfunktion min dem Schema der Strukturellen Rekursion. Die Funktion minimum selbst kann nicht durch Strukturelle Rekursion definiert werden, da sie für den Terminierungsfall gerade nicht definiert ist.

13 Aufwand: Entspricht der Größe der Datenstruktur pro Konstruktor wird eine Gleichung angewandt. Das ist der Aufwand des Schemas. Hinzu kommt der Aufwand für die sonstige Operationen auf den rechten Seiten der Gleichungen.

14 Terminierung bei Struktureller Rekursion Terminierung ist gesichert, wenn die Datenstruktur eine endliche Formel ist. Endlos-Rekursion auf unendlichen Datenstrukturen. Beispiel: dauer (ad. libidum (P(1/2))).

15 3.3 Wohlfundierte Rekursion (Teile-und-Herrsche) Allgemeiner als die Strukturelle ist die Wohlfundierte Rekursion. Die Zerlegung des Problems folgt nicht dem rekursiven Aufbau der Datenstruktur. Die Aufgabe wird auf beliebige Aufgaben (der gleichen Art) zurückgeführt, die in einem wohldefinierten Sinn einfacher sein müssen.

16 Eine (partielle) Ordnungsrelation auf einer Menge M erfüllt die Gesetze x y und y z impliziert x z (Transitivität) x y und y x impliziert x = y (Antisymmetrie) x x (Reflexivität) Die Relation < ist definiert als x < y gdw x y und x y und > als y > x gdw x < y

17 Eine absteigende Kette aus M ist eine Folge von Elementen x 1 > x 2 > x 3 >... Eine Ordnungsrelation auf M heißt wohlfundiert, wenn jede absteigende Kette aus M endlich ist (und damit ein kleinstes Element hat).

18 Beispiele aus der Zahlenwelt (N, <) ist wohlfundiert (N, <) ist wohlfundiert für alle N N (Z, <) ist nicht wohlfundiert (Gegenbeispiel: 2 > 1 > 0 > 1 > 2... ) (R + 0, <) ist nicht wohlfundiert (Gegenbeispiel: 1 > 1/2 > 1/4 >... ) (N N, <) mit (a, b) (c, d) gdw a < c oder a = c und b d ist wohlfundiert. Man nennt dies lexikographische Erweiterung von (N, <).

19 Schema der Wohlfundierten Rekursion zur Lösung von P, gegeben eine wohlfundierte Ordnung auf Problemen der Art P: Falls P einfach, löse P direkt. Andernfalls: Bilde Probleme P 1,..., P k mit P > P i Löse P 1,..., P k (rekursiv) Kombiniere diese Lösungen zur Lösung von P Das Verfahren terminiert, weil alle so von P ausgehenden Ketten endlich sind und die Teilprobleme irgendwann einfach werden.

20 Die vier Bestandteile der Methode: Was ist einfach?, Löse direkt, Teile P auf!, und Kombiniere Teil-Lösungen! muss man sich für jede Anwendung neu überlegen. Dabei ist die Relation < ( einfacher ) frei wählbar, nur wohlfundiert muss sie sein.

21 Beispiel: Quicksort Sortiere Liste von n Elementen aufsteigend. Wohlfundierte Ordnung auf Listen: l 1 < l 2 gdw length(l 1 ) < length(l 2 ) Da length(l) N, ist diese Ordnung wohlfundiert.

22 Beispiel: Quicksort Sortiere Liste von n Elementen aufsteigend. Wohlfundierte Ordnung auf Listen: l 1 < l 2 gdw length(l 1 ) < length(l 2 ) Da length(l) N, ist diese Ordnung wohlfundiert. Quicksort (l): Falls l = [] oder l = [a]: Lösung = l. Anderfalls: Wähle x aus l, so dass x nicht maximal ist. Bilde Listen l 1 = [a x l, a x] l 2 = [a x l, x < a] Berechne ˆl1 = Quicksort(l 1 ) ˆl 2 = Quicksort(l 2 ) Lösung = ˆl 1 ++ ˆl 2

23 Achtung: x darf nicht maximales Element in l sein, weil dann l 1 < l verletzt ist. Die Listen l 1 und l 2 sind keine Unterstrukturen der Liste l, daher liegt keine Strukturelle Rekursion vor.

24 Aufwand l l l 1 l 2 [a ] 1 l 2 l l l l [a ] 2 l 22 [a ] 3 l guter Fall kritischer Fall

25 guter Fall: Teile: Rekursionstiefe: Kombiniere: insgesamt auf jeder Ebene 2 n Schritte log 2 n Ebenen n/2 Schritte pro Ebene 3 n log 2 n Schritte kritischer Fall: Teile: auf Ebene i 2 (n i) Schritte Kombiniere: auf jeder Ebene 1 Schritt Rekursionstiefe: n Ebenen insgesamt: n 1 2(n i) + 1 n = n + 2 i i=0 i=1 (n + 1) n = n n 2 + 2n Schritte

26 Beispiel: Schnelle Multiplikation langer Zahlen Vorüberlegung: Wir betrachten zwei n-stellige Zahlen x = x 1,..., x n, y = y 1,..., y n. A[ + ] ist der Aufwand einer Ziffern-Addition. A[ x + y ] 2 n A[ + ] (Addition der Überträge nicht vergessen!) A[ x y ] n 2 A[ ] + 2n 2 A[ + ] Multiplikation ist also erheblich aufwendiger.

27 Schon weil jede Ziffer im Inneren des Diagramms Resultat einer Multiplikation ist, braucht man n 2 elementare Multiplikationen. Besser geht es nicht oder doch?

28 Wir zerlegen die Zahlen in der Mitte x = x 1 x 0 x = x 1 10 n/2 + x 0 y = y 1 y 0 y = y 1 10 n/2 + y 0 x y = (x 1 10 n/2 + x 0 ) (y 1 10 n/2 + y 0 ) = x 1 y 1 10 n + (x 1 y 0 + x 0 y 1 ) 10 n/2 + x 0 y 0 Jetzt haben wir 1 Mulitplikation mit Aufwand n 2 durch vier ( ) 2 Multiplikationen mit Aufwand je n 2 ersetzt. Nichts ist dabei eingespart.

29 x y 1 1 x y 1 x y x y 0 0 xy Idee: Wir können den Wert x 1 y 0 + x 0 y 1 mit nur einer Multiplikation der Länge n/2 berechnen.

30 (x 0 x 1 )(y 0 y 1 ) = x 0 y 0 (x 1 y 0 + x 0 y 1 ) + x 1 y 1 Da x 0 y 0 und x 1 y 1 ohnehin berechnet werden, und Substraktionen nur Aufwand 3 n/2 haben, erhalten wir billig (x 1 y 0 + x 0 y 1 ) = x 1 y 1 + x 0 y 0 + (x 1 x 0 )(y 0 y 1 )

31 x 1 y 1 x y 0 x y 1 (x x )(y y ) xy x y 0 0

32 Die Teilaufgaben x 1 y 1, x 0 y 0, (x 1 x 0 ) (y 0 y 1 ) der Länge n/2 werden nach der gleichen Methode (wohlfundiert rekursiv) berechnet. Wir schätzen ab A[n] 3 A[n/2] < n 2. Ist dies eine signifikante Verbesserung? Damit werden wir uns in Kapitel 5 näher beschäftigen.

33 Das Problem des Handlungsreisenden Das Problem des Handlungsreisenden Ein Vertreter der Intelligent Design Corporation will 12 deutsche Elite-Universitäten besuchen. Die Standorte und ihre Entfernungen (Straßenkilometer) sind in Tabelle Dist angegeben, in Bild 1 sieht man ihre ungefähre Lage. Aber Vorsicht Straßenkilometer sind keine Entfernungen in Luftlinie.

34 Das Problem des Handlungsreisenden Tabelle der Entfernungen AC B BI HB FB HH K L M MS N TÜ Aachen Berlin Bielefeld Bremen Freiburg Hamburg Köln Leipzig München Münster Nürnberg 207 Tübingen Tabelle Dist: Entfernungen in Straßenkilometern

35 Das Problem des Handlungsreisenden Eine Rundtour 257 MS 74 BI 150 K 70 AC 685 HB 119 HH 284 N L 278 B 179 FB TÜ M

36 Das Problem des Handlungsreisenden Die Aufgabe Sein Ziel ist: Eine Rundtour mit beliebigem Ausgangspunkt und minimaler Gesamtstrecke. Jede Stadt darf nur einmal besucht werden (weil der Vertreter sich nach seinem Auftritt an einer Universität meistens in dieser Stadt nicht mehr blicken lassen darf).

37 Das Problem des Handlungsreisenden Vorüberlegungen Vorüberlegung 1: Die Länge einer Rundtour bleibt gleich, wenn wir nur den Start/Zielort ändern. Es ist also nicht nötig, einen besten Startpunkt zu suchen. Wir können eine Tour ebensogut immer in Aachen oder immer in Bielefeld beginnen lassen.

38 Das Problem des Handlungsreisenden Vorüberlegung 2: Wieviele verschiedene Rundtouren gibt es allgemein für n Städte? Zahl der Permutationen p(n) = n (n 1)... 1 = n! (1) Zahl dertouren t(n) = p(n 1) (2) Für 12 Städte t(12) = (3)

39 Das Problem des Handlungsreisenden Strategie 1: Erschöpfende Suche Wir berechnen alle Permutationen der Orte (ohne den festen Startort Bielefeld) perm [ ] = [[ ]] (4) perm xs = {[x : ps ps perm (remove x xs)] x xs]} (5) n gesamt[x 1,..., x n ] = dist(x i 1, x i ) + dist(x n, x 1 ) (6) i=2 Aus allen Touren wählen wir die kürzeste aus.

40 Das Problem des Handlungsreisenden Strategie 2 : Opportunistische Suche (Greedy) Wir fahren von jedem Ort zum nächstgelegenen, der noch nicht besucht wurde. Sei X die Menge der Städte und z 1, z 2,... unsere Route. Wir definieren einfach z 1 = Bielefeld (7) z i = argmin x {Dist(z i 1, x) x X \ {z 1,..., z i 1 }} (8) Hier bedeutet argmin x dasjenige x, das den Ausdruck Dist(z i 1, x) minimiert. Diese Lösung ist heuristisch. Sie gibt mit wenig Aufwand eine Antwort, aber vermutlich findet sie nicht die kürzeste Rundtour.

41 Das Problem des Handlungsreisenden Ergebnisse der Strategien Für unser Beispiel erhalten wir: Die opportunistische Strategie ab Bielefeld liefert die in der Karte eingetragene Rundtour. Sie ist 2690 km lang und nicht optimal. Von Bielefeld erst nach Bremen, das wäre besser ausgegangen! In Aachen anfangend, hätte das verfahren vermutlich eine bessere Tour gefunden. Die erschöpfende Suche soll in den Übungen implementiert werden.

42 Das Problem des Handlungsreisenden Abschätzung des Rechenaufwands Wir betrachten die Anzahl der berechnenten Routen, und die Berechnung einer Entfernungssumme für n Städte: Strategie 1 braucht etwa (n 1)! n = n! Rechenschritte. Strategie 2 braucht etwa n 2 Rechenschritte.

43 Das Problem des Handlungsreisenden Erste Begegnung mit dem praktisch Unmöglichen Unser Problem ist unter dem Namen Traveling Salesman Problem (TSP) berühmt; es ist eines der meist untersuchten Probleme der Informatik. Man kennt keinen Algorithmus, die das Ergebnis mit einer (in n) polynomialen Anzahl von Rechenschritten bestimmt. Für Informatiker sind solche Probleme eine besondere Herausforderung.

Algorithmen und Datenstrukturen 1 Kapitel 3

Algorithmen und Datenstrukturen 1 Kapitel 3 Algorithmen und Datenstrukturen 1 Kapitel 3 Technische Fakultät robert@techfak.uni-bielefeld.de Vorlesung, U. Bielefeld, Winter 2005/2006 3.6 Dynamische Programmierung Die rekursive Problemzerlegung kann

Mehr

Strukturelle Rekursion und Induktion

Strukturelle Rekursion und Induktion Kapitel 2 Strukturelle Rekursion und Induktion Rekursion ist eine konstruktive Technik für die Beschreibung unendlicher Mengen (und damit insbesondere für die Beschreibung unendliche Funktionen). Induktion

Mehr

Diskrete Strukturen Kapitel 2: Grundlagen (Relationen)

Diskrete Strukturen Kapitel 2: Grundlagen (Relationen) WS 2016/17 Diskrete Strukturen Kapitel 2: Grundlagen (Relationen) 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_16

Mehr

6. Induktives Beweisen - Themenübersicht

6. Induktives Beweisen - Themenübersicht 6. Induktives Beweisen - Themenübersicht Ordnungsrelationen Partielle Ordnungen Quasiordnungen Totale Ordnungen Striktordnungen Ordnungen und Teilstrukturen Noethersche Induktion Anwendung: Terminierungsbeweise

Mehr

Teile und Herrsche Teil 2

Teile und Herrsche Teil 2 Teile und Herrsche Teil 2 binär Suchen und schnell Multiplizieren Markus Fleck Manuel Mauky Hochschule Zittau/Görlitz 19. April 2009 Suchen in langen Listen (0, 1, 2, 7, 8, 9, 9, 13, 13, 14, 14, 14, 16,

Mehr

Diskrete Strukturen Kapitel 2: Grundlagen (Beweise)

Diskrete Strukturen Kapitel 2: Grundlagen (Beweise) WS 2014/15 Diskrete Strukturen Kapitel 2: Grundlagen (Beweise) 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_14

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 20 Einstieg in die Informatik mit Java Rekursion Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 20 1 Überblick 2 Rekursion 3 Rekursive Sortieralgorithmen 4 Backtracking

Mehr

Übersicht Datenstrukturen und Algorithmen. Literatur. Algorithmus: Wikipedia Definition. Vorlesung 1: Einführung. Prof. Dr.

Übersicht Datenstrukturen und Algorithmen. Literatur. Algorithmus: Wikipedia Definition. Vorlesung 1: Einführung. Prof. Dr. Übersicht Datenstrukturen und Vorlesung 1: Prof. Dr. Erika Ábrahám Theorie Hybrider Systeme Informatik 2 http://ths.rwth-aachen.de/teaching/ss-14/ datenstrukturen-und-algorithmen/ Diese Präsentation verwendet

Mehr

Abschnitt: Algorithmendesign und Laufzeitanalyse

Abschnitt: Algorithmendesign und Laufzeitanalyse Abschnitt: Algorithmendesign und Laufzeitanalyse Definition Divide-and-Conquer Paradigma Divide-and-Conquer Algorithmen verwenden die Strategien 1 Divide: Teile das Problem rekursiv in Subproblem gleicher

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 32 Einstieg in die Informatik mit Java Effizienz Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 32 1 Überblick: was ist Effizienz? 2 Landau-Symbole 3 Eier im Korb 4

Mehr

Kapitel III. Aufbau des Zahlensystems

Kapitel III. Aufbau des Zahlensystems Kapitel III. Aufbau des Zahlensystems 1 Addition und Multiplikation natürlicher Zahlen Wir wollen erklären, wie man natürliche Zahlen addiert und multipliziert und dabei nur den Begriff das Zählens verwenden.

Mehr

Reelle Zahlen, Gleichungen und Ungleichungen

Reelle Zahlen, Gleichungen und Ungleichungen 9 2. Vorlesung Reelle Zahlen, Gleichungen und Ungleichungen 4 Zahlenmengen und der Körper der reellen Zahlen 4.1 Zahlenmengen * Die Menge der natürlichen Zahlen N = {0,1,2,3,...}. * Die Menge der ganzen

Mehr

WS 2009/10. Diskrete Strukturen

WS 2009/10. Diskrete Strukturen WS 2009/10 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/ws0910

Mehr

Datenstrukturen und Algorithmen

Datenstrukturen und Algorithmen Joost-Pieter Katoen Datenstrukturen und Algorithmen 1/32 Datenstrukturen und Algorithmen Vorlesung 7: Sortieren (K2) Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group

Mehr

Programmieren in Haskell Programmiermethodik

Programmieren in Haskell Programmiermethodik Programmieren in Haskell Programmiermethodik Peter Steffen Universität Bielefeld Technische Fakultät 12.01.2011 1 Programmieren in Haskell Bisherige Themen Was soll wiederholt werden? Bedienung von hugs

Mehr

Datenstrukturen & Algorithmen

Datenstrukturen & Algorithmen Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Dynamische Programmierung Einführung Ablaufkoordination von Montagebändern Längste gemeinsame Teilsequenz Optimale

Mehr

Einführung in Heuristische Suche

Einführung in Heuristische Suche Einführung in Heuristische Suche Beispiele 2 Überblick Intelligente Suche Rundenbasierte Spiele 3 Grundlagen Es muss ein Rätsel / Puzzle / Problem gelöst werden Wie kann ein Computer diese Aufgabe lösen?

Mehr

Traveling Salesman Problem (TSP)

Traveling Salesman Problem (TSP) Traveling Salesman Problem (TSP) Das Traveling Salesman Problem (TSP) ist ein bekanntes Optimierungsproblem. Ein Handlungsreisender soll in einer Rundreise (auch Tour genannt) n vorgegebene Städte besuchen.

Mehr

5.4 Das Rucksackproblem

5.4 Das Rucksackproblem Problemstellung: 5.4 Das Rucksackproblem Eingabe: Ganzzahlige Volumina a 1,..., a n > 0, Nutzenwerte c 1,..., c n > 0, ganzzahlige Volumenschranke b. Aufgabe: Packe die Objekte in einen Rucksack von Volumen

Mehr

Einführung in die Informatik 1

Einführung in die Informatik 1 Einführung in die Informatik 1 Algorithmen und algorithmische Sprachkonzepte Sven Kosub AG Algorithmik/Theorie komplexer Systeme Universität Konstanz E 202 Sven.Kosub@uni-konstanz.de Sprechstunde: Freitag,

Mehr

Dynamische Programmierung. Problemlösungsstrategie der Informatik

Dynamische Programmierung. Problemlösungsstrategie der Informatik als Problemlösungsstrategie der Informatik und ihre Anwedung in der Diskreten Mathematik und Graphentheorie Fabian Cordt Enisa Metovic Wissenschaftliche Arbeiten und Präsentationen, WS 2010/2011 Gliederung

Mehr

Am Dienstag, den 16. Dezember, ist Eulenfest. 1/48

Am Dienstag, den 16. Dezember, ist Eulenfest. 1/48 Am Dienstag, den 16. Dezember, ist Eulenfest. 1/48 Grundbegriffe der Informatik Einheit 12: Erste Algorithmen in Graphen Thomas Worsch Universität Karlsruhe, Fakultät für Informatik Wintersemester 2008/2009

Mehr

Proseminar Online Algorithmen, Prof. Dr. Rolf Klein

Proseminar Online Algorithmen, Prof. Dr. Rolf Klein Proseminar Online Algorithmen, Prof. Dr. Rolf Klein Vortrag von Michael Daumen am 13.12.2000 Thema : Minimum Spanning Tree und 2-Approximation der TSP-Tour Inhalt des Vortrags : 1. genaue Vorstellung des

Mehr

1 Potenzen und Polynome

1 Potenzen und Polynome 1 Potenzen und Polynome Für eine reelle Zahl x R und eine natürliche Zahl n N definieren wir x n := x x x... x }{{} n-mal Einschub über die bisher aufgetretenen mathematischen Symbole: Definition mittels

Mehr

Vorab : Von dem indischen Mathematiker D. R. Kaprekar stammt folgender Zusammenhang :

Vorab : Von dem indischen Mathematiker D. R. Kaprekar stammt folgender Zusammenhang : Seite 1 Algorithmen zur Erzeugung von Kaprekar- Konstanten Autor : Dipl.- Ing. Josef Meiler ; Datum : März 015 Vorab : Von dem indischen Mathematiker D. R. Kaprekar stammt folgender Zusammenhang : a) man

Mehr

Nichtlineare Gleichungssysteme

Nichtlineare Gleichungssysteme Kapitel 5 Nichtlineare Gleichungssysteme 51 Einführung Wir betrachten in diesem Kapitel Verfahren zur Lösung von nichtlinearen Gleichungssystemen Nichtlineares Gleichungssystem: Gesucht ist eine Lösung

Mehr

Mathematische Grundlagen der Kryptographie. 1. Ganze Zahlen 2. Kongruenzen und Restklassenringe. Stefan Brandstädter Jennifer Karstens

Mathematische Grundlagen der Kryptographie. 1. Ganze Zahlen 2. Kongruenzen und Restklassenringe. Stefan Brandstädter Jennifer Karstens Mathematische Grundlagen der Kryptographie 1. Ganze Zahlen 2. Kongruenzen und Restklassenringe Stefan Brandstädter Jennifer Karstens 18. Januar 2005 Inhaltsverzeichnis 1 Ganze Zahlen 1 1.1 Grundlagen............................

Mehr

2 Sortieren. Beispiel: Es seien n = 8 und a = i : a i : ϕ(i) : a ϕ(i) :

2 Sortieren. Beispiel: Es seien n = 8 und a = i : a i : ϕ(i) : a ϕ(i) : 2 Sortieren Das Sortieren einer Datenfolge ist eines der am leichtesten zu verstehenden und am häufigsten auftretenden algorithmischen Probleme. In seiner einfachsten Form besteht das Problem darin, eine

Mehr

Achtung: Groß O definiert keine totale Ordnungsrelation auf der Menge aller Funktionen! Beweis: Es gibt positive Funktionen f und g so, dass

Achtung: Groß O definiert keine totale Ordnungsrelation auf der Menge aller Funktionen! Beweis: Es gibt positive Funktionen f und g so, dass Achtung: Groß O definiert keine totale Ordnungsrelation auf der Menge aller Funktionen! Beweis: Es gibt positive Funktionen f und g so, dass f O g und auch g O f. Wähle zum Beispiel und G. Zachmann Informatik

Mehr

Kostenmaße. F3 03/04 p.188/395

Kostenmaße. F3 03/04 p.188/395 Kostenmaße Bei der TM nur ein Kostenmaß: Ein Schritt (Konfigurationsübergang) kostet eine Zeiteinheit; eine Bandzelle kostet eine Platzeinheit. Bei der RAM zwei Kostenmaße: uniformes Kostenmaß: (wie oben);

Mehr

Technische Universität München

Technische Universität München Stand der Vorlesung Kapitel 2: Auffrischung einiger mathematischer Grundlagen Mengen, Potenzmenge, Kreuzprodukt (Paare, Tripel, n-tupel) Relation: Teilmenge MxN Eigenschaften: reflexiv, symmetrisch, transitiv,

Mehr

Zahlen und elementares Rechnen

Zahlen und elementares Rechnen und elementares Rechnen Christian Serpé Universität Münster 7. September 2011 Christian Serpé (Universität Münster) und elementares Rechnen 7. September 2011 1 / 51 Gliederung 1 2 Elementares Rechnen 3

Mehr

Werkstatt Multiplikation Posten: Rundung im Quadrat. Informationsblatt für die Lehrkraft. Rundung im Quadrat

Werkstatt Multiplikation Posten: Rundung im Quadrat. Informationsblatt für die Lehrkraft. Rundung im Quadrat Informationsblatt für die Lehrkraft Rundung im Quadrat Informationsblatt für die Lehrkraft Thema: Schultyp: Vorkenntnisse: Bearbeitungsdauer: Numerische Grenzen des Computers Mittelschule, technische Berufsschule,

Mehr

2: Zahlentheorie / Restklassen 2.1: Modulare Arithmetik

2: Zahlentheorie / Restklassen 2.1: Modulare Arithmetik Stefan Lucks Diskrete Strukturen (WS 2009/10) 57 2: Zahlentheorie / Restklassen 2.1: Modulare Arithmetik Uhr: Stunden mod 24, Minuten mod 60, Sekunden mod 60,... Rechnerarithmetik: mod 2 w, w {8, 16, 32,

Mehr

Algorithmen & Programmierung. Rekursive Funktionen (1)

Algorithmen & Programmierung. Rekursive Funktionen (1) Algorithmen & Programmierung Rekursive Funktionen (1) Berechnung der Fakultät Fakultät Die Fakultät N! einer nichtnegativen ganzen Zahl N kann folgendermaßen definiert werden: d.h. zur Berechnung werden

Mehr

Logik für Informatiker. 1. Grundlegende Beweisstrategien. Viorica Sofronie-Stokkermans Universität Koblenz-Landau

Logik für Informatiker. 1. Grundlegende Beweisstrategien. Viorica Sofronie-Stokkermans Universität Koblenz-Landau Logik für Informatiker 1. Grundlegende Beweisstrategien Viorica Sofronie-Stokkermans Universität Koblenz-Landau e-mail: sofronie@uni-koblenz.de 1 Mathematisches Beweisen Mathematische ussagen - haben oft

Mehr

Programmierung 1 - Repetitorium

Programmierung 1 - Repetitorium WS 2002/2003 Programmierung 1 - Repetitorium Andreas Augustin und Marc Wagner Homepage: http://info1.marcwagner.info Donnerstag, den 10.04.03 Kapitel 7 Korrektheit 7.1 Abstrakte Prozeduren Abstrakte Prozedur

Mehr

Grundlagen der Mathematik

Grundlagen der Mathematik Grundlagen der Mathematik Übungsaufgaben zu Kapitel 1 Einführung 1.1.1 Für reelle Zahlen a und b gilt (a+b) (a-b) = a 2 -b 2. Was ist die Voraussetzung? Wie lautet die Behauptung? Beweisen Sie die Behauptung.

Mehr

Zahlen in Haskell Kapitel 3

Zahlen in Haskell Kapitel 3 Einführung in die Funktionale Programmiersprache Haskell Zahlen in Haskell Kapitel 3 FH Wedel IT-Seminar: WS 2003/04 Dozent: Prof. Dr. Schmidt Autor: Timo Wlecke (wi3309) Vortrag am: 04.11.2003 - Kapitel

Mehr

Effiziente Algorithmen und Datenstrukturen I. Kapitel 10: Lineare Algebra

Effiziente Algorithmen und Datenstrukturen I. Kapitel 10: Lineare Algebra Effiziente Algorithmen und Datenstrukturen I Kapitel 10: Lineare Algebra Christian Scheideler WS 2008 19.02.2009 Kapitel 10 1 Überblick Notation Arithmetik auf großen Zahlen (Addition und Multiplikation)

Mehr

Weitere Eigenschaften

Weitere Eigenschaften Weitere Eigenschaften Erklärung der Subtraktion: x y := x + ( y) (5) Die Gleichung a + x = b hat die eindeutig bestimmte Lösung x = b a. Beweis: (a) Zunächst ist x = b a eine Lösung, denn a + x = a + (b

Mehr

4: Algebraische Strukturen / Gruppen

4: Algebraische Strukturen / Gruppen Stefan Lucks Diskrete Strukturen (WS 2009/10) 120 4: Algebraische Strukturen / Gruppen Definition 46 Sei G eine nichtleere Menge. Eine Funktion : G G G bezeichnen wir als Verknüpfung auf G. Das Paar (G,

Mehr

Datenstrukturen und Algorithmen

Datenstrukturen und Algorithmen Datenstrukturen und Algorithmen VO 708.031 27.10.2011 stefan.klampfl@tugraz.at 1 Wiederholung Wir vergleichen Algorithmen anhand des ordnungsmäßigen Wachstums von T(n), S(n), Asymptotische Schranken: O-Notation:

Mehr

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen 1 Kapitel 9 Komplexität von Algorithmen und Sortieralgorithmen Ziele 2 Komplexität von Algorithmen bestimmen können (in Bezug auf Laufzeit und auf Speicherplatzbedarf) Sortieralgorithmen kennenlernen:

Mehr

9.2 Invertierbare Matrizen

9.2 Invertierbare Matrizen 34 9.2 Invertierbare Matrizen Die Division ist als Umkehroperation der Multiplikation definiert. Das heisst, für reelle Zahlen a 0 und b gilt b = a genau dann, wenn a b =. Übertragen wir dies von den reellen

Mehr

24 KAPITEL 2. REELLE UND KOMPLEXE ZAHLEN

24 KAPITEL 2. REELLE UND KOMPLEXE ZAHLEN 24 KAPITEL 2. REELLE UND KOMPLEXE ZAHLEN x 2 = 0+x 2 = ( a+a)+x 2 = a+(a+x 2 ) = a+(a+x 1 ) = ( a+a)+x 1 = x 1. Daraus folgt dann, wegen x 1 = x 2 die Eindeutigkeit. Im zweiten Fall kann man für a 0 schreiben

Mehr

Natürliche Zahlen, Summen und Summenformeln

Natürliche Zahlen, Summen und Summenformeln Vorlesung Natürliche Zahlen, Summen und Summenformeln.1 Die natürlichen Zahlen Die natürlichen Zahlen sind diejenigen Zahlen mit denen wir zählen 0,1,,3,... Es gibt unendlich viele und wir schreiben kurz

Mehr

Rechnergrundlagen SS Vorlesung

Rechnergrundlagen SS Vorlesung Rechnergrundlagen SS 2007 3. Vorlesung Inhalt Zahlensysteme Binäre Darstellung von Integer-Zahlen Vorzeichen-Betrag Binary Offset 1er-Komplement 2er-Komplement Addition und Subtraktion binär dargestellter

Mehr

Diskrete Strukturen Kapitel 1: Einleitung

Diskrete Strukturen Kapitel 1: Einleitung WS 2015/16 Diskrete Strukturen Kapitel 1: Einleitung 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

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

16. All Pairs Shortest Path (ASPS)

16. All Pairs Shortest Path (ASPS) . All Pairs Shortest Path (ASPS) All Pairs Shortest Path (APSP): Eingabe: Gewichteter Graph G=(V,E) Ausgabe: Für jedes Paar von Knoten u,v V die Distanz von u nach v sowie einen kürzesten Weg a b c d e

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen 1 Algorithmen und Datenstrukturen Wintersemester 2014/15 3. Vorlesung Laufzeitanalyse Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I 2 Recap: Diskutieren Sie mit Ihrer NachbarIn! 1. 2. 3. Was sind

Mehr

Übersicht. Datenstrukturen und Algorithmen. Übersicht. Divide-and-Conquer. Vorlesung 9: Quicksort (K7)

Übersicht. Datenstrukturen und Algorithmen. Übersicht. Divide-and-Conquer. Vorlesung 9: Quicksort (K7) Datenstrukturen und Algorithmen Vorlesung 9: (K7) Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group http://www-i2.rwth-aachen.de/i2/dsal0/ Algorithmus 8. Mai 200 Joost-Pieter

Mehr

(Man sagt dafür auch, dass die Teilmenge U bezüglich der Gruppenoperationen abgeschlossen sein muss.)

(Man sagt dafür auch, dass die Teilmenge U bezüglich der Gruppenoperationen abgeschlossen sein muss.) 3. Untergruppen 19 3. Untergruppen Nachdem wir nun einige grundlegende Gruppen kennengelernt haben, wollen wir in diesem Kapitel eine einfache Möglichkeit untersuchen, mit der man aus bereits bekannten

Mehr

Lineare Gleichungssysteme

Lineare Gleichungssysteme Christian Serpé Universität Münster 14. September 2011 Christian Serpé (Universität Münster) 14. September 2011 1 / 56 Gliederung 1 Motivation Beispiele Allgemeines Vorgehen 2 Der Vektorraum R n 3 Lineare

Mehr

Abstrakte Algorithmen und Sprachkonzepte

Abstrakte Algorithmen und Sprachkonzepte Abstrakte Algorithmen und Sprachkonzepte Thomas Röfer Begriff des Algorithmus Algorithmenaufbau Programmiersprachliche Grundkonzepte Interative und rekursive Algorithmen Rückblick Aufbau und Funktionsweise

Mehr

1 Axiomatische Charakterisierung der reellen. 3 Die natürlichen, die ganzen und die rationalen. 4 Das Vollständigkeitsaxiom und irrationale

1 Axiomatische Charakterisierung der reellen. 3 Die natürlichen, die ganzen und die rationalen. 4 Das Vollständigkeitsaxiom und irrationale Kapitel I Reelle Zahlen 1 Axiomatische Charakterisierung der reellen Zahlen R 2 Angeordnete Körper 3 Die natürlichen, die ganzen und die rationalen Zahlen 4 Das Vollständigkeitsaxiom und irrationale Zahlen

Mehr

Einschub: Anweisungen und Bedingungen für PAP und Struktogramme (1)

Einschub: Anweisungen und Bedingungen für PAP und Struktogramme (1) Einschub: Anweisungen und Bedingungen für PAP und Struktogramme (1) Anweisungen: Eingabeanweisungen, z.b. Eingabe: x Ausgabeanweisungen, z.b. Ausgabe: Das Maximum ist, max Die Symbole x und max werden

Mehr

abgeschlossen unter,,,, R,

abgeschlossen unter,,,, R, Was bisher geschah Turing-Maschinen können Sprachen L X akzeptieren entscheiden Funktionen berechnen f : X X (partiell) Menge aller Turing-akzeptierbaren Sprachen genau die Menge aller Chomsky-Typ-0-Sprachen

Mehr

Kapitel 2 Mathematische Grundlagen

Kapitel 2 Mathematische Grundlagen Kapitel 2 Mathematische Grundlagen Ziel: Einführung/Auffrischung einiger mathematischer Grundlagen 2.1 Mengen, Relationen, Ordnungen Definition: Eine Menge ist eine Zusammenfassung von wohlbestimmten und

Mehr

Algorithmik WS 07/ Vorlesung, Andreas Jakoby Universität zu Lübeck

Algorithmik WS 07/ Vorlesung, Andreas Jakoby Universität zu Lübeck Lemma 15 KLP 1 ist genau dann lösbar, wenn das dazugehörige LP KLP 2 eine Lösung mit dem Wert Z = 0 besitzt. Ist Z = 0 für x 0, x 0, dann ist x eine zulässige Lösung von KLP 1. Beweis von Lemma 15: Nach

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Wintersemester 2013/14 1. Vorlesung Kapitel 1: Sortieren Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I Das Problem Eingabe Gegeben: eine Folge A = a 1, a 2,..., a

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

Grundlagen der Programmierung 2. Sortierverfahren

Grundlagen der Programmierung 2. Sortierverfahren Grundlagen der Programmierung 2 Sortierverfahren Prof. Dr. Manfred Schmidt-Schauÿ Künstliche Intelligenz und Softwaretechnologie 30. Mai 2006 Sortieren Ziel: Bringe Folge von Objekten in eine Reihenfolge

Mehr

Grundzüge der Informatik Zahlendarstellungen (7)

Grundzüge der Informatik Zahlendarstellungen (7) Grundzüge der Informatik Zahlendarstellungen (7) Sylvia Swoboda e0225646@student.tuwien.ac.at Überblick Konvertierung von ganzen Zahlen Konvertierung von Festkommazahlen Darstellung negativer Zahlen 1

Mehr

Theoretische Informatik SS 03 Übung 4

Theoretische Informatik SS 03 Übung 4 Fakten aus Übung 3 Theoretische Informatik SS 03 Übung 4 In Übung 3 wurden einigen Fakten bewiesen, die für diese Übung benötigt werden. Folgende Konstrukte können mit LOOP-Programmen simuliert werden:

Mehr

Musterlösung 11.Übung Mathematische Logik

Musterlösung 11.Übung Mathematische Logik Lehr- und Forschungsgebiet Mathematische Grundlagen der Informatik RWTH Aachen Prof. Dr. E. Grädel, F. Reinhardt SS 2015 Aufgabe 2 Musterlösung 11.Übung Mathematische Logik Geben Sie für die folgenden

Mehr

Was bisher geschah. deklarative Programmierung. funktionale Programmierung (Haskell):

Was bisher geschah. deklarative Programmierung. funktionale Programmierung (Haskell): Was bisher geschah deklarative Programmierung funktional: Programm: Menge von Termgleichungen, Term Auswertung: Pattern matsching, Termumformungen logisch: Programm: Menge von Regeln (Horn-Formeln), Formel

Mehr

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen Kapitel 9 Komplexität von Algorithmen und Sortieralgorithmen Arrays 1 Ziele Komplexität von Algorithmen bestimmen können (in Bezug auf Laufzeit und auf Speicherplatzbedarf) Sortieralgorithmen kennenlernen:

Mehr

Klausur Grundlagen der Informatik Hochschule Ravensburg-Weingarten

Klausur Grundlagen der Informatik Hochschule Ravensburg-Weingarten Klausur Grundlagen der Informatik Hochschule Ravensburg-Weingarten Semester: AI2, WI2 Bearbeitungszeit: 90 Min. Hilfsmittel: kein prog. C SS 2010, 07.07.2010 90% Punkte entspr. Note 1,0 50% Punkte entspr.

Mehr

Gliederung. Links-Rechts-Zerlegung Elimination faktorisiert A = L R. Determinante Inverse. Kleinste Quadrate. Lösung durch. Links-Rechts- Zerlegung

Gliederung. Links-Rechts-Zerlegung Elimination faktorisiert A = L R. Determinante Inverse. Kleinste Quadrate. Lösung durch. Links-Rechts- Zerlegung Matrixzerlegungen. 7. Vorlesung 170004 Numerische Methoden I Clemens Brand 29. April 2010 Gliederung Elimination faktorisiert A = L R Die A = L R Faktorisieren: Zerlege A in ein Produkt (einfacherer) Angenommen,

Mehr

Kapitel 7: Flüsse in Netzwerken und Anwendungen Gliederung der Vorlesung

Kapitel 7: Flüsse in Netzwerken und Anwendungen Gliederung der Vorlesung Gliederung der Vorlesung. Fallstudie Bipartite Graphen. Grundbegriffe. Elementare Graphalgorithmen und Anwendungen. Minimal spannende Bäume. Kürzeste Pfade. Traveling Salesman Problem. Flüsse in Netzwerken

Mehr

Algorithmen und Datenstrukturen 1 Kapitel 4.1

Algorithmen und Datenstrukturen 1 Kapitel 4.1 Algorithmen und Datenstrukturen 1 Kapitel 4.1 Technische Fakultät robert@techfak.uni-bielefeld.de Vorlesung, U. Bielefeld, Winter 2005/2006 Kapitel 4: Maschinenmodelle [Dieses Kapitel hält sich eng an

Mehr

Themen für Bakkalaureus-Arbeiten

Themen für Bakkalaureus-Arbeiten Themen für Bakkalaureus-Arbeiten Alle angegebenen Themen eignen sich auch für Master- bzw. Diplom-Arbeiten, wenn die Themenstellungen entsprechend weit gefaßt werden. 1. Die Ontologie der binären Relationen

Mehr

Abgabe: (vor der Vorlesung) Aufgabe 2.1 (P) O-Notation Beweisen Sie die folgenden Aussagen für positive Funktionen f und g:

Abgabe: (vor der Vorlesung) Aufgabe 2.1 (P) O-Notation Beweisen Sie die folgenden Aussagen für positive Funktionen f und g: TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen SS 2009 Grundlagen: Algorithmen und Datenstrukturen Übungsblatt 2 Prof. Dr. Helmut Seidl, S. Pott,

Mehr

JAVA - Suchen - Sortieren

JAVA - Suchen - Sortieren Übungen Informatik I JAVA - Suchen - Sortieren http://www.fbi-lkt.fh-karlsruhe.de/lab/info01/tutorial Übungen Informatik 1 Folie 1 Inhalt Suchen/Sortieren binary search mergesort bubblesort Übungen Informatik

Mehr

Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen

Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen 186.172 Algorithmen und Datenstrukturen 1 VL 4.0 Übungsblatt 1 für die Übung

Mehr

Dipl.-Ing. Halit Ünver Datenbanken/Künstliche Intelligenz FAW/n. Zahlensysteme

Dipl.-Ing. Halit Ünver Datenbanken/Künstliche Intelligenz FAW/n. Zahlensysteme Dipl.-Ing. Halit Ünver 7.. Datenbanken/Künstliche Intelligenz FAW/n Zahlensysteme Seite Zahlensysteme Dipl.-Ing. Halit Ünver 7.. Inhalt I. Informatik und Zahlen für Wirtschaftswissenschaftler? II. III.

Mehr

Überblick. 1 Vorbemerkungen. 2 Algorithmen. 3 Eigenschaften von Algorithmen. 4 Historischer Überblick. Einführung

Überblick. 1 Vorbemerkungen. 2 Algorithmen. 3 Eigenschaften von Algorithmen. 4 Historischer Überblick. Einführung Teil I Einführung Überblick 1 Vorbemerkungen 2 Algorithmen 3 4 Historischer Überblick Prof. G. Stumme Algorithmen & Datenstrukturen Sommersemester 2009 1 1 Vorbemerkungen Was ist Informatik? Informatik

Mehr

Studienmaterial Einführung in das Rechnen mit Resten

Studienmaterial Einführung in das Rechnen mit Resten Studienmaterial Einführung in das Rechnen mit Resten H.-G. Gräbe, Institut für Informatik, http://www.informatik.uni-leipzig.de/~graebe 12. April 2000 Die folgenden Ausführungen sind aus Arbeitsmaterialien

Mehr

Rekursive und primitiv rekursive Funktionen. Ein maschinenunabhängiges formales Berechnungsmodell auf den natürlichen Zahlen

Rekursive und primitiv rekursive Funktionen. Ein maschinenunabhängiges formales Berechnungsmodell auf den natürlichen Zahlen Rekursive und primitiv rekursive Funktionen Ein maschinenunabhängiges formales Berechnungsmodell auf den natürlichen Zahlen IDEE: Definiere eine Klasse von (partiell) berechenbaren Funktionen über N induktiv

Mehr

5 Zwei spieltheoretische Aspekte

5 Zwei spieltheoretische Aspekte 5 Zwei spieltheoretische Aspekte In diesem Kapitel wollen wir uns mit dem algorithmischen Problem beschäftigen, sogenannte Und-Oder-Bäume (kurz UOB) auszuwerten. Sie sind ein Spezialfall von Spielbäumen,

Mehr

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen

Mehr

Konzepte und Methoden der Programmierung Lösungen P. Fierz / FS 2012

Konzepte und Methoden der Programmierung Lösungen P. Fierz / FS 2012 Kapitel 1 Rekursion Alle Programme finden Sie im mitgelieferten zip-file. Aufgabe 1.1 [Fakultät] Für diese Übung brauchen Sie die Klassen Factorial Skelett und MyTimer. n! ist rekursiv folgendermassen

Mehr

WS 2009/10. Diskrete Strukturen

WS 2009/10. Diskrete Strukturen WS 2009/10 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/ws0910

Mehr

Zahlensysteme. Formale Methoden der Informatik WiSe 2008/2009 Folie 1 (von 54)

Zahlensysteme. Formale Methoden der Informatik WiSe 2008/2009 Folie 1 (von 54) Zahlensysteme Formale Methoden der Informatik WiSe 28/29 Folie (von 54) Teil I: Zahlensysteme. Einführung und Zahlensysteme 2. Zahlensysteme / Algorithmik 3. Zahlendarstellung im Rechner Franz-Josef Radermacher,

Mehr

Einführung in die Programmierung

Einführung in die Programmierung Technische Universität Carolo Wilhelmina zu Brauschweig Institut für rechnergestützte Modellierung im Bauingenierwesen Prof. Dr.-Ing. habil. Manfred Krafczyk Pockelsstraße 3, 38106 Braunschweig http://www.irmb.tu-bs.de

Mehr

Mitschrift Mathematik, Vorlesung bei Dan Fulea, 2. Semester

Mitschrift Mathematik, Vorlesung bei Dan Fulea, 2. Semester Mitschrift Mathematik, Vorlesung bei Dan Fulea, 2. Semester Christian Nawroth, Erstellt mit L A TEX 23. Mai 2002 Inhaltsverzeichnis 1 Vollständige Induktion 2 1.1 Das Prinzip der Vollstandigen Induktion................

Mehr

Haskell, Typen, und Typberechnung. Grundlagen der Programmierung 3 A. Einige andere Programmiersprachen. Typisierung in Haskell

Haskell, Typen, und Typberechnung. Grundlagen der Programmierung 3 A. Einige andere Programmiersprachen. Typisierung in Haskell Haskell, Typen, und Typberechnung Grundlagen der Programmierung 3 A Typen, Typberechnung und Typcheck Prof. Dr. Manfred Schmidt-Schauß Ziele: Haskells Typisierung Typisierungs-Regeln Typ-Berechnung Milners

Mehr

Entscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen?

Entscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen? Entscheidungsbäume Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen? Definition Entscheidungsbaum Sei T ein Binärbaum und A = {a 1,..., a n } eine zu sortierenden Menge. T ist ein Entscheidungsbaum

Mehr

9. Heuristische Suche

9. Heuristische Suche 9. Heuristische Suche Prof. Dr. Rudolf Kruse University of Magdeburg Faculty of Computer Science Magdeburg, Germany rudolf.kruse@cs.uni-magdeburg.de S Heuristische Suche Idee: Wir nutzen eine (heuristische)

Mehr

5.2 Das All-Pairs-Shortest-Paths-Problem (APSP-Problem) Kürzeste Wege zwischen allen Knoten. Eingabe: Gerichteter Graph G =(V, E, c)

5.2 Das All-Pairs-Shortest-Paths-Problem (APSP-Problem) Kürzeste Wege zwischen allen Knoten. Eingabe: Gerichteter Graph G =(V, E, c) 5.2 Das All-Pairs-Shortest-Paths-Problem (APSP-Problem) Kürzeste Wege zwischen allen Knoten. Eingabe: Gerichteter Graph G =(V, E, c) mit V = {1,...,n} und E {(v, w) 1 apple v, w apple n, v 6= w}. c : E!

Mehr

17 R E L AT I O N E N

17 R E L AT I O N E N 17 R E L AT I O N E N 17.1 äquivalenzrelationen 17.1.1 Definition In Abschnitt 11.2.1 hatten wir schon einmal erwähnt, dass eine Relation R M M auf einer Menge M, die reflexiv, symmetrisch und transitiv

Mehr

1 Zahlenmengen und einige mathematische Symbole

1 Zahlenmengen und einige mathematische Symbole 1 Zahlenmengen und einige mathematische Symbole Inhalt 1.1 Vorbemerkung................................................... 3 1.2 Zahlenmengen................................................... 4 1.3 Summenzeichen..................................................

Mehr

Graphentheorie. Eulersche Graphen. Eulersche Graphen. Eulersche Graphen. Rainer Schrader. 14. November Gliederung.

Graphentheorie. Eulersche Graphen. Eulersche Graphen. Eulersche Graphen. Rainer Schrader. 14. November Gliederung. Graphentheorie Rainer Schrader Zentrum für Angewandte Informatik Köln 14. November 2007 1 / 22 2 / 22 Gliederung eulersche und semi-eulersche Graphen Charakterisierung eulerscher Graphen Berechnung eines

Mehr

Methoden zum Lösen von Rekursionsgleichungen

Methoden zum Lösen von Rekursionsgleichungen Rekursionsgleichungen... Slide 1 Methoden zum Lösen von Rekursionsgleichungen Bisher wurde Expandieren der Rekursion + Raten der Gesetzmäßigkeit benutzt, um einfache Rekursionsgleichungen zu lösen. Zum

Mehr

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

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

Mehr

S=[n] Menge von Veranstaltungen J S kompatibel mit maximaler Größe J

S=[n] Menge von Veranstaltungen J S kompatibel mit maximaler Größe J Greedy-Strategie Definition Paradigma Greedy Der Greedy-Ansatz verwendet die Strategie 1 Top-down Auswahl: Bestimme in jedem Schritt eine lokal optimale Lösung, so dass man eine global optimale Lösung

Mehr

Zahlen und elementares Rechnen (Teil 1)

Zahlen und elementares Rechnen (Teil 1) und elementares Rechnen (Teil 1) Dr. Christian Serpé Universität Münster 6. September 2010 Dr. Christian Serpé (Universität Münster) und elementares Rechnen (Teil 1) 6. September 2010 1 / 40 Gliederung

Mehr

Ein Algorithmus heißt rekursiv, wenn er sich selbst aufruft. Meist werden nur einzelne Module eines Gesamtalgorithmus rekursiv verwendet.

Ein Algorithmus heißt rekursiv, wenn er sich selbst aufruft. Meist werden nur einzelne Module eines Gesamtalgorithmus rekursiv verwendet. 3.6 Rekursion Ein Algorithmus heißt rekursiv, wenn er sich selbst aufruft. Meist werden nur einzelne Module eines Gesamtalgorithmus rekursiv verwendet. Klassisches Beispiel: Berechnung von n! (Fakultät

Mehr