Algorithmen und Datenstrukturen 05
|
|
- Nicolas Schneider
- vor 5 Jahren
- Abrufe
Transkript
1 25. November 2011
2 1 Besprechung Blatt 4 Fragen 2 O-Kalkül Allgemein Wichtige Formeln Beispiele 3 Überläufe und Bitweise Operationen Erkennen von Variablenüberläufen Bitweise Operationen 4 Vorbereitung Blatt 5 Anmerkungen
3 1 Besprechung Blatt 4 Fragen 2 O-Kalkül Allgemein Wichtige Formeln Beispiele 3 Überläufe und Bitweise Operationen Erkennen von Variablenüberläufen Bitweise Operationen 4 Vorbereitung Blatt 5 Anmerkungen
4 Fragen Fragen zu Blatt 4?
5 1 Besprechung Blatt 4 Fragen 2 O-Kalkül Allgemein Wichtige Formeln Beispiele 3 Überläufe und Bitweise Operationen Erkennen von Variablenüberläufen Bitweise Operationen 4 Vorbereitung Blatt 5 Anmerkungen
6 Allgemein O-Kalkül schätzt den Aufwand der Ausführung eines Algorithmus ab vernachlässigt Vorfaktoren und kleinere Summanden
7 Allgemein O-Kalkül schätzt den Aufwand der Ausführung eines Algorithmus ab vernachlässigt Vorfaktoren und kleinere Summanden Es ist manchmal durchaus sinnvoll, einen Algorithmus A zu verwenden, der zwar im O-Kalkül schlechter abschneidet als ein Algorithmus B, aber für kleinere Problemgrößen erheblich schneller ist als B. In solchen Fällen kann man beide implementieren und je nach Problemgröße wechseln.
8 Wichtige Formeln Gaußsche Summenformel n k = k=0 n(n + 1) 2 n 2k = n(n + 1) k=1 n (2k 1) = n 2 k=1 Die gaußsche Summenformel ist eine Formel für die Summe der ersten n aufeinanderfolgenden natürlichen Zahlen Summenformel
9 Wichtige Formeln Stirlingformel n! ( n ) n 2πn e Die Stirlingformel berechnet Näherungswerte für große Fakultäten.
10 Wichtige Formeln Geometrische Reihe n k=0 q k = 1 q(n+1) 1 q Eine geometrische Reihe ist die Reihe einer geometrischen Folge. Bei einer geometrischen Folge ist der Quotient zweier benachbarter Folgenglieder konstant. Reihe
11 Wichtige Formeln Quadratische Pyramidalzahl n i 2 = n 2 = i=1 n(n + 1)(2n + 1) 6 = 2n3 + 3n 2 + n 6 Die Quadratischen Pyramidalzahlen gehören zu den figuierten Zahlen, genauer zu den Pyramidalzahlen. Sie beziffern die Anzahlen von Kugeln, mit denen man eine Pyramide quadratischer Grundfläche bauen kann. Pyramidalzahl
12 Beispiele Beispiel 1 for (int i = 0; i < x; i++) { for (int j = 0; j < y; j++) { result[i][j] = 0; for (int k = 0; k < j; k++) { result[i][j] += a[i][k] * b[k][j]; } } }
13 Beispiele Beispiel 1 for (int i = 0; i < x; i++) { for (int j = 0; j < y; j++) { result[i][j] = 0; for (int k = 0; k < j; k++) { result[i][j] += a[i][k] * b[k][j]; } } } y 1 O(x j) = O(xy 2 ) j=0 Gaußsche Summenformel
14 Beispiele Beispiel 2 for (int i = 1; i <= x; i *= 2) { f(i); // f(n) liegt in O(n) }
15 Beispiele Beispiel 2 for (int i = 1; i <= x; i *= 2) { f(i); // f(n) liegt in O(n) } log 2 x O( i=0 2 i ) = O( 1 2log 2 x ) = O(x) 1 2 Geometrische Reihe
16 Beispiele Beispiel 3 for (int i = 1; i <= x; ++i) { g(i); // g(n) liegt in O(n*n) }
17 Beispiele Beispiel 3 for (int i = 1; i <= x; ++i) { g(i); // g(n) liegt in O(n*n) } O( x i=0 i 2 ) = O( 2x 3 + 3x 2 + x ) = O(x 3 ) 6 Quadratische Pyramidalzahl
18 Beispiele Beispiel 4 int count = 0; while (n > 0) { if (n % 2 == 1) { ++count; } n /= 2; }
19 Beispiele Beispiel 4 int count = 0; while (n > 0) { if (n % 2 == 1) { ++count; } n /= 2; } O(log(n)) Was wäre hier best-, worst- und average-case?
20 Beispiele Angenommen die Eingangsgröße n sei gleichverteilt und ein 32-bit signed Integer ([ 2 31, ]). Was ist der Aufwand im worst-, best- und average-case? best-case: 0 worst-case: log 2 (2 31 1) + 1 = 31 average-case: = ( 30 (k + 1)2 k = 1 30 ) 30 2 k k + 2 k = 2 32 k= k=0 k=0 ( (30 + 1) (2 1) ) 15
21 Beispiele Hauptsatz der Laufzeitfunktionen (Master Theorem) T (n) = a T ( n b ) + f (n) a 1, b 1, f (n) N a: Anzahl Unterprobleme in der Rekursion 1/b: Teil des Originalproblems, welches wiederum durch alle Unterprobleme repräsentiert wird f (n): Aufwand für das Teilen und Zusammenfügen der Teillösungen
22 Beispiele Hauptsatz der Laufzeitfunktionen (Master Theorem) T (n) = a T ( n b ) + f (n) a 1, b 1, f (n) N Fall 1: T (n) Θ(n log ba ), falls f (n) O(n log ba ɛ ), ɛ > 0 Fall 2: T (n) Θ(n log ba log 2 n), falls f (n) Θ(n log ba ) Fall 3: T (n) Θ(f (n)), falls f (n) Ω(n logba+ɛ ), ɛ > 0 und a f ( n b ) c f (n), c < 1, n groß
23 Beispiele Hauptsatz der Laufzeitfunktionen (Master Theorem) T (n) = a T ( n b ) + f (n) a 1, b 1, f (n) N Fall 1: T (n) Θ(n log ba ), falls f (n) O(n log ba ɛ ), ɛ > 0 Fall 2: T (n) Θ(n log ba log 2 n), falls f (n) Θ(n log ba ) Fall 3: T (n) Θ(f (n)), falls f (n) Ω(n logba+ɛ ), ɛ > 0 und a f ( n b ) c f (n), c < 1, n groß Kein Fall anwendbar: Problem.
24 Beispiele Beispiele T (n) = 4T ( n 2 ) + n2 Fall 2 T (n) = Θ(n 2 log n) T (n) = 2T ( n 2 ) + n Nicht anwendbar! log n T (n) = 3T ( n 3 ) + n Fall 1 T (n) = Θ(n)
25 1 Besprechung Blatt 4 Fragen 2 O-Kalkül Allgemein Wichtige Formeln Beispiele 3 Überläufe und Bitweise Operationen Erkennen von Variablenüberläufen Bitweise Operationen 4 Vorbereitung Blatt 5 Anmerkungen
26 Erkennen von Variablenüberläufen Binärdarstellung Byte.MAX VALUE: ( ) 2 = nach binärer Addition von 1:
27 Erkennen von Variablenüberläufen Binärdarstellung Byte.MAX VALUE: ( ) 2 = nach binärer Addition von 1: ( ) 2
28 Erkennen von Variablenüberläufen Binärdarstellung Byte.MAX VALUE: ( ) 2 = nach binärer Addition von 1: ( ) 2 das ist die Binärdarstellung von Byte.MIN VALUE, also 2 8
29 Erkennen von Variablenüberläufen Binärdarstellung Byte.MAX VALUE: ( ) 2 = nach binärer Addition von 1: ( ) 2 das ist die Binärdarstellung von Byte.MIN VALUE, also 2 8 das selbe Problem tritt auf, wenn man von einer negativen Zahl mehr abzieht, als der Datentyp darstellen kann: Byte.MIN VALUE ( ) 2 1 = ( ) 2, also wieder Byte.MAX VALUE
30 Erkennen von Variablenüberläufen Binärdarstellung Byte.MAX VALUE: ( ) 2 = nach binärer Addition von 1: ( ) 2 das ist die Binärdarstellung von Byte.MIN VALUE, also 2 8 das selbe Problem tritt auf, wenn man von einer negativen Zahl mehr abzieht, als der Datentyp darstellen kann: Byte.MIN VALUE ( ) 2 1 = ( ) 2, also wieder Byte.MAX VALUE im mathematischen Sinn rechnet man in einem Ring
31 Erkennen von Variablenüberläufen Überläufe bei der Addition treten immer dann auf, wenn das Rechenergebnis außerhalb des Gültigkeitsbereiches des Datentyps liegt
32 Erkennen von Variablenüberläufen Überläufe bei der Addition treten immer dann auf, wenn das Rechenergebnis außerhalb des Gültigkeitsbereiches des Datentyps liegt bei der Addition kann das nur dann passieren, wenn 2 Zahlen mit gleichem Vorzeichen addiert werden
33 Erkennen von Variablenüberläufen Überläufe bei der Addition treten immer dann auf, wenn das Rechenergebnis außerhalb des Gültigkeitsbereiches des Datentyps liegt bei der Addition kann das nur dann passieren, wenn 2 Zahlen mit gleichem Vorzeichen addiert werden ist das Vorzeichen des Ergebnisses dann ungleich dem der Operanden, fand ein Überlauf statt
34 Erkennen von Variablenüberläufen Überlaufe bei der Multiplikation schwer abschätzbar, wann es zu einem Überlauf kommen kann mögliches Vorgehen:
35 Erkennen von Variablenüberläufen Überlaufe bei der Multiplikation schwer abschätzbar, wann es zu einem Überlauf kommen kann mögliches Vorgehen: man dividiert das Ergebnis durch den zweiten Faktor und prüft, ob das Ergebnis dieser Umkehrung dem ersten Faktor entspricht
36 Erkennen von Variablenüberläufen Überlaufe bei der Multiplikation schwer abschätzbar, wann es zu einem Überlauf kommen kann mögliches Vorgehen: man dividiert das Ergebnis durch den zweiten Faktor und prüft, ob das Ergebnis dieser Umkehrung dem ersten Faktor entspricht Beispiel: 3x128 = ( ) 2 = 128; 128/3 = 42; Überlauf
37 Erkennen von Variablenüberläufen Überlaufe bei der Multiplikation schwer abschätzbar, wann es zu einem Überlauf kommen kann mögliches Vorgehen: man dividiert das Ergebnis durch den zweiten Faktor und prüft, ob das Ergebnis dieser Umkehrung dem ersten Faktor entspricht Beispiel: 3x128 = ( ) 2 = 128; 128/3 = 42; Überlauf (bei der Division treten keine Überläufe in diesem Sinn auf, jedoch kann dabei der Rest verloren gehen)
38 Erkennen von Variablenüberläufen Ungenauigkeiten der Gleitkommadatentypen double-zahlen haben einen sehr großen Wertebereich (ca. ± bis ± 1, )
39 Erkennen von Variablenüberläufen Ungenauigkeiten der Gleitkommadatentypen double-zahlen haben einen sehr großen Wertebereich (ca. ± bis ± 1, ) trotzdem stehen für die Mantisse nur 52 Bits zur Verfügung
40 Erkennen von Variablenüberläufen Ungenauigkeiten der Gleitkommadatentypen double-zahlen haben einen sehr großen Wertebereich (ca. ± bis ± 1, ) trotzdem stehen für die Mantisse nur 52 Bits zur Verfügung daher treten nach einigen Operationen Ungenauigkeiten auf zum Beispiel 0, statt 1
41 Erkennen von Variablenüberläufen Ungenauigkeiten der Gleitkommadatentypen double-zahlen haben einen sehr großen Wertebereich (ca. ± bis ± 1, ) trotzdem stehen für die Mantisse nur 52 Bits zur Verfügung daher treten nach einigen Operationen Ungenauigkeiten auf zum Beispiel 0, statt 1 if (number == 1.0) ist dann false!
42 Bitweise Operationen Übersicht der bitweisen Operatoren & AND OR ^ XOR << left shift verschiebt alle Bits nach links, füllt mit 0 auf entspricht Multiplikation mit 2 >> signed right shift verschiebt alle Bits nach rechts, füllt mit Vorzeichenbit auf entspricht Division durch 2 >>> unsigned right shift verschiebt alle Bits nach rechts, füllt mit 0 auf
43 1 Besprechung Blatt 4 Fragen 2 O-Kalkül Allgemein Wichtige Formeln Beispiele 3 Überläufe und Bitweise Operationen Erkennen von Variablenüberläufen Bitweise Operationen 4 Vorbereitung Blatt 5 Anmerkungen
44 Anmerkungen Mysterious Sort public static void mysterioussort (int[] a) { int[] npart = new int[2]; int[][] part = new int[2][a.length]; for (int i = 0; i < 32; i++) { npart[0] = 0; npart[1] = 0; for (int j = 0; j < a.length; j++) { int n = (a[j] >> i) & 1; part[n][npart[n]++] = a[j]; } } } System.arraycopy(part[0], 0, a, 0, npart[0]); System.arraycopy(part[1], 0, a, npart[0], npart[1]);
45 Anmerkungen Fibonacci-Folge Definiert als f n = f n 1 + f n 2 wobei f 0 = 0, f 1 = 1 Direkte Berechnung ebenso möglich durch die Formel: f n = 1 5 [( 1 + ) n ( ) n ] 5 2
46 Anmerkungen Noch Fragen?
47 Anmerkungen Noch Fragen? Danke für die Aufmerksamkeit!
Algorithmen und Datenstrukturen 04
(17. Mai 2012) 1 Besprechung Blatt 3 Hinweise 2 Induktion Allgemeines Beispiele 3 Rekursion Lineare Rekursion und Endrekursion Entrekursivierung Weitere Rekursionstypen 4 O-Kalkül Allgemein Wichtige Formeln
MehrAlgorithmen 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,
MehrDatentypen in C. Informatik Universität Hamburg Proseminar: C-Grundlagen und Konzepte Jan Branitzki
Datentypen in C Informatik Universität Hamburg Proseminar: C-Grundlagen und Konzepte Jan Branitzki 31.05.13 Inhalt 1. Der Aufzählungstyp enum 2. Bit Shifting/Bitweise Operatoren a. Beispiel: Int b. Nutzen
MehrProgrammieren 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
Mehr1. 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
MehrAngewandte Mathematik und Programmierung
Angewandte Mathematik und Programmierung Einführung in das Konzept der objektorientierten Anwendungen zu mathematischen Rechnens WS 2013/14 Operatoren Operatoren führen Aktionen mit Operanden aus. Der
Mehr4. Zahlendarstellungen
121 4. Zahlendarstellungen Wertebereich der Typen int, float und double Gemischte Ausdrücke und Konversionen; Löcher im Wertebereich; Fliesskommazahlensysteme; IEEE Standard; Grenzen der Fliesskommaarithmetik;
MehrProgrammieren I. Kapitel 5. Kontrollfluss
Programmieren I Kapitel 5. Kontrollfluss Kapitel 5: Kontrollfluss Ziel: Komplexere Berechnungen im Methodenrumpf Ausdrücke und Anweisungen Fallunterscheidungen (if, switch) Wiederholte Ausführung (for,
Mehr8 Komplexitätstheorie
8 Komplexitätstheorie Formale Grundlagen der Informatik I Herbstsemester 2012 Robert Marti Vorlesung teilweise basierend auf Unterlagen von Prof. emer. Helmut Schauer Grundidee der Komplexitätstheorie
MehrInformatik I: Abschnitt 7
Informatik I: Abschnitt 7 Inhalt: 7. Interne Informationsdarstellung 7.1 Ganzzahlige Datentypen 7.2 Gleitkomma-Datentypen Die Folien basieren zum Teil auf einen Foliensatz von R. Großmann und T. Wiedemann
MehrKomplexität von Algorithmen OOPM, Ralf Lämmel
Ganz schön komplex! Komplexität von Algorithmen OOPM, Ralf Lämmel 885 Motivierendes Beispiel Algorithmus Eingabe: ein Zahlen-Feld a der Länge n Ausgabe: Durchschnitt Fragen: sum = 0; i = 0; while (i
MehrMartin Unold INFORMATIK. Geoinformatik und Vermessung
Wiederholung So sieht ein leeres Java-Programm aus public class Programmname { public static void main (String[] args) { // Hier stehen die Anweisungen } } Beispiele für Anweisungen Wiederholung Ausgabe
MehrVorkurs Informatik WiSe 16/17
Java Ausdrücke und Variablen Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 05.10.2016 Technische Universität Braunschweig, IPS Überblick Ausdrücke, Datentypen und Variablen Kontrollstrukturen 05.10.2016
MehrBinäre Darstellung ganzer Zahlen
Vorlesung Objektorientierte Softwareentwicklung Exkurse use Binäre Darstellung ganzer Zahlen Binärdarstellung natürlicher Zahlen Ganze Zahlen im Einerkomplement Ganze Zahlen im Zweierkomplement Elementare
Mehr4. Zahlendarstellungen
Bin are Zahlendarstellungen Binäre Darstellung ("Bits" aus {0, 1) 4. Zahlendarstellungen bn bn 1... b1 b0 entspricht der Zahl bn 2n + + b1 2 + b0 Wertebereich der Typen int, float und double Gemischte
MehrInstitut für Programmierung und Reaktive Systeme. Java 2. Markus Reschke
Java 2 Markus Reschke 07.10.2014 Datentypen Was wird gespeichert? Wie wird es gespeichert? Was kann man mit Werten eines Datentyps machen (Operationen, Methoden)? Welche Werte gehören zum Datentyp? Wie
MehrVorkurs Informatik WiSe 17/18
Java Ausdrücke und Variablen Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk, 05.10.2017 Technische Universität Braunschweig, IPS Überblick Ausdrücke, Datentypen und Variablen Kontrollstrukturen 05.10.2017
MehrRekursionsbäume Aufstellen eines Baumes dessen Knoten die Laufzeit auf jeder Rekursionsstufe darstellen und Aufsummieren
Algorithmen und Datenstrukturen 74 3 Rekursionen Vor allem bei rekursiven Algorithmen besitzt die Laufzeitfunktion eine naheliegende rekursive Formulierung, d.h. die Laufzeitfunktion ist konstant für den
Mehrfloat: Fließkommazahl nach IEEE 754 Standard mit 32 bit
Primitive Datentypen Fließkommazahlen float: Fließkommazahl nach IEEE 754 Standard mit 32 bit Vorzeichen Exponent 8 bit Mantisse 23 bit double: Fließkommazahl nach IEEE 754 Standard mit 64 bit Vorzeichen
MehrProblem: Keine Integers in JavaCard. ToDo: Rechnen mit Bytes und Shorts
Kapitel 6: Arithmetik in JavaCard Problem: Keine Integers in JavaCard ToDo: Rechnen mit Bytes und Shorts Java SmartCards, Kap. 6 (1/20) Hex-Notation 1 Byte = 8 Bit, b 7 b 6 b 5 b 4 b 3 b 2 b 1 b 0 0101
Mehrf 1 (n) = log(n) + n 2 n 5 f 2 (n) = n 3 + n 2 f 3 (n) = log(n 2 ) f 4 (n) = n n f 5 (n) = (log(n)) 2
Prof. aa Dr. E. Ábrahám Datenstrukturen und Algorithmen SS Lösung - Präsenzübung.05.0 F. Corzilius, S. Schupp, T. Ströder Aufgabe (Asymptotische Komplexität): (6 + 0 + 6 = Punkte) a) Geben Sie eine formale
MehrProgrammieren 1 C Überblick
Programmieren C Überblick. Einleitung 2. Graphische Darstellung von Algorithmen 3. Syntax und Semantik 4. Einstieg in C: Einfache Sprachkonstrukte und allgemeiner Programmaufbau 5. Skalare Standarddatentypen
MehrDas Verfahren in Hardware
Das Verfahren in Hardware Links Shift 8 Bit Multiplikand Demonstration mit 1001 * 0110 = 110110 2.Links Shift 8 Bit ALU Rechts Shift 4 Bit Multiplikator 3.Rechts Shift 8 Bit Produkt 1. Produkt = Produkt
MehrRückblick. Zahlendarstellung zu einer beliebigen Basis b. Umwandlung zwischen Zahlendarstellung (214) 5 = (278) 10 =(?) 8
Rückblick Zahlendarstellung zu einer beliebigen Basis b (214) 5 = Umwandlung zwischen Zahlendarstellung (278) 10 =(?) 8 25 Rückblick Schnellere Umwandlung zwischen Binärdarstellung und Hexadezimaldarstellung
Mehr1. Grundlegende Konzepte der Informatik
1. Grundlegende Konzepte der Informatik Inhalt Algorithmen Darstellung von Algorithmen mit Programmablaufplänen Beispiele für Algorithmen Aussagenlogik Zahlensysteme Kodierung Peter Sobe 1 Zahlensysteme
MehrGrundlagen der Rechnerarchitektur. Binäre Logik und Arithmetik
Grundlagen der Rechnerarchitektur Binäre Logik und Arithmetik Übersicht Logische Operationen Addition, Subtraktion und negative Zahlen Logische Bausteine Darstellung von Algorithmen Multiplikation Division
MehrMultiplikation. Grundlagen der Rechnerarchitektur Logik und Arithmetik 79
Multiplikation Grundlagen der Rechnerarchitektur Logik und Arithmetik 79 Multiplikation nach der Schulmethode Gegeben seien die Binärzahlen A und B. Was ist a * b? Beispiel: Multiplikand A: 1 1 0 1 0 Multiplikator
MehrAbgabe: (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,
MehrFolgen 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
MehrPräsenzübung Datenstrukturen und Algorithmen SS 2014
Prof. aa Dr. E. Ábrahám F. Corzilius, S. Schupp, T. Ströder Präsenzübung Datenstrukturen und Algorithmen SS 2014 Vorname: Nachname: Studiengang (bitte genau einen markieren): Informatik Bachelor Informatik
MehrDatenstrukturen und Algorithmen (SS 2013)
Datenstrukturen und Algorithmen (SS 2013) Übungsblatt 4 Abgabe: Montag, 13.05.2013, 14:00 Uhr Die Übungen sollen in Gruppen von zwei bis drei Personen bearbeitet werden. Schreiben Sie die Namen jedes Gruppenmitglieds
MehrInformatik I Übung, Woche 41
Giuseppe Accaputo 8. Oktober, 2015 Plan für heute 1. Fragen & Nachbesprechung Übung 3 2. Zusammenfassung der bisherigen Vorlesungsslides 3. Tipps zur Übung 4 Informatik 1 (D-BAUG) Giuseppe Accaputo 2 Nachbesprechung
Mehr9. 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
MehrBemerkung: 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)
MehrGrundlagen der Programmierung
Grundlagen der Programmierung 5. Vorlesung 06.11.2018 1 Zahlendarstellungen 2 Speicherinhalte: Bits Hardware Spannung Ladung Magnetisierung Codierung 0V ungeladen unmagnetisiert 0 5V geladen magnetisiert
MehrBit Operationen. InE1 M. Thaler, Office TG ZHAW, M. Thaler, K. Rege, G. Burkert
Bit Operationen InE M. Thaler, tham@zhaw.ch Office TG28 http://www.zhaw.ch/~tham November 8 Um was geht es? Microcontroller z.b. Ansteuerung/Konfiguartion von I/O Registern oft notwendig: einzelne Bits
MehrDivide & Conquer. Problem in Teilprobleme aufteilen Teilprobleme rekursiv lösen Lösung aus Teillösungen zusammensetzen
Teile & Herrsche: Divide & Conquer Problem in Teilprobleme aufteilen Teilprobleme rekursiv lösen Lösung aus Teillösungen zusammensetzen Probleme: Wie setzt man zusammen? [erfordert algorithmisches Geschick
MehrRechnernetze und Organisation
Arithmetic Logic Unit ALU Professor Dr. Johannes Horst Wolkerstorfer Cerjak, 9.2.25 RNO VO4_alu Übersicht Motivation ALU Addition Subtraktion De Morgan Shift Multiplikation Gleitkommazahlen Professor Dr.
MehrWelche Informatik-Kenntnisse bringen Sie mit?
Welche Informatik-Kenntnisse bringen Sie mit? So gehen Sie vor! Lösen Sie die Aufgaben der Reihe nach von 1 bis 20, ohne das Lösungsblatt zur Hilfe zu nehmen. Der Schwierigkeitsgrad der Aufgaben nimmt
MehrÜ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/
Mehr5 Zahlenformate und deren Grenzen
1 5 Zahlenformate und deren Grenzen 5.1 Erinnerung B-adische Zahlendarstellung Stellenwertsystem: Jede Ziffer hat ihren Wert, und die Stelle der Ziffer in der Zahl modifiziert den Wert. 745 = 7 100 + 4
MehrKapitel 4. Programmierkurs. Datentypen. Arten von Datentypen. Wiederholung Kapitel 4. Birgit Engels, Anna Schulze WS 07/08
Kapitel 4 Programmierkurs Birgit Engels, Anna Schulze Wiederholung Kapitel 4 ZAIK Universität zu Köln WS 07/08 1 / 23 2 Datentypen Arten von Datentypen Bei der Deklaration einer Variablen(=Behälter für
MehrJava für Anfänger Teil 3: Integer-Typen. Programmierkurs Manfred Jackel
Java für Anfänger Teil 3: Integer-Typen Programmierkurs 11.-15.10.2010 Manfred Jackel 1 Prozedurales Programmieren Welche Anweisungen kann man im Rumpf einer Methode benutzen? public static void main (String[]
MehrAlgorithmen und Datenstrukturen
Technische Universität München SoSe 2017 Fakultät für Informatik, I-16 Lösungsblatt 4 Dr. Stefanie Demirci 31. Mai 2017 Rüdiger Göbl, Mai Bui Algorithmen und Datenstrukturen Aufgabe 1 Komplexität Berechnung
MehrSchwerpunkte. 8. Ausdrücke, Operatoren (einfache Typen) Beispiel: Schaltjahr Test. Einführendes Beispiel: Grundprobleme
Schwerpunkte Vollständige und unvollständige Auswertung 8. Ausdrücke, Operatoren (einfache Typen) Teil 1 Seiteneffekte Overloading: Überladung von Operatoren Implizite und explizite (cast) Typumwandlung
MehrOperatoren und Ausdrücke
Operatoren und Ausdrücke Zuweisungsoperator Arithmetische Operatoren Vergleichsoperatoren Logische Operatoren und Ausdrücke Implizite Typ-Umwandlung Rangordnung der Operatoren / Reihenfolge der Auswertung
MehrC-Programmierung: Ausdrücke und Operatoren#Division.2F
C-Programmierung: Ausdrücke und Operatoren#Division.2F http://de.wikibooks.org/wiki/c-programmierung:_ausdrücke_und_operatoren#division_.2f This Book Is Generated By Wb2PDF using RenderX XEP, XML to PDF
MehrAlgorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / Vorlesung 9, Donnerstag 18.
Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / 2015 Vorlesung 9, Donnerstag 18. Dezember 2014 (Teile und Herrsche, Mastertheorem) Junior-Prof. Dr.
MehrJava I Vorlesung Imperatives Programmieren
Java I Vorlesung 2 Imperatives Programmieren 3.5.2004 Variablen -- Datentypen -- Werte Operatoren und Ausdrücke Kontrollstrukturen: if Imperatives Programmieren Im Kern ist Java eine imperative Programmiersprache.
MehrInformatik B von Adrian Neumann
Musterlösung zum 7. Aufgabenblatt vom Montag, den 25. Mai 2009 zur Vorlesung Informatik B von Adrian Neumann 1. Java I Schreiben Sie ein Java Programm, das alle positiven ganzen Zahlen 0 < a < b < 1000
MehrInformatik I: Einführung in die Programmierung 3. Werte, Typen, Variablen und Ausdrücke
Informatik I: Einführung in die Programmierung 3. Werte,, n und Albert-Ludwigs-Universität Freiburg Peter Thiemann 30. Oktober 2018 1 30. Oktober 2018 P. Thiemann Info I 3 / 39 Bits Der Computer repräsentiert
MehrAlgorithmen und Datenstrukturen 1-1. Seminar -
Algorithmen und Datenstrukturen 1-1. Seminar - Dominic Rose Bioinformatics Group, University of Leipzig Wintersemester 2009/10 Inhalt der ersten beiden Vorlesungen Algorithmenbegriff Komplexität, Asymptotik
MehrHilfsmittel Mathematik Rekursionsgleichungen
Hilfsmittel Mathematik Rekursionsgleichungen M. Neumann, C. Piechotta 30. März 2009 Motivation Raten und Einsetzen Motivation! Definition der Fibonacci-Zahlenfolge F(0) = 1 F(1) = 1 F(n) = F(n-1)+F(n-2),
MehrIsomorphismus. 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
MehrAlgorithmen zur Division
Algorithmen zur Division Umkehrung der Multiplikation: Berechnung von q = a / b durch wiederholte bedingte Subtraktionen und Schiebeoperationen in jedem Schritt wird Divisor b testweise vom aktuellen Rest
MehrAlgorithmen und Datenstrukturen 02
1. November 2011 Inhaltsverzeichnis 1 Organisatorisches Allgemeine Hinweise Texteditoren 2 Besprechung Blatt 1 Erste Eindrücke 3 Vorbereitung Blatt 2 Zahlensysteme, Datentypen und Ausdrücke String-Operationen
MehrOperatoren in C. Gastvorlesung Andreas Textor
Operatoren in C Gastvorlesung - 11.01.10 Andreas Textor andreas.textor@hs-rm.de Terminologie Operand 4 + 2 Operand Operator Unterscheidung nach Anzahl Operanden Unäre, Binäre und Ternäre Operatoren Z.B.:!x;
MehrGanze Zahlen. Die Typen int, unsigned int; Auswertung arithmetischer Ausdrücke, arithmetische Operatoren
Ganze Zahlen Die Typen int, unsigned int; Auswertung arithmetischer Ausdrücke, arithmetische Operatoren Celsius to Fahrenheit // Program: fahrenheit.cpp // Convert temperatures from Celsius to Fahrenheit.
MehrInformatik I Übung, Woche 41
Giuseppe Accaputo 9. Oktober, 2014 Plan für heute 1. Fragen & Nachbesprechung Übung 3 2. Zusammenfassung der bisherigen Vorlesungsslides 3. Tipps zur Übung 4 Informatik 1 (D-BAUG) Giuseppe Accaputo 2 Nachbesprechung
MehrExponentiation: 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:
MehrInformatik Vorkurs - Vorlesung 2
Informatik Vorkurs - Vorlesung 2 Variablen, Arrays, Zahlensysteme Torben Achilles, 9. Oktober 2018 Inhalt Variablen & Datentypen Arrays Zahlensysteme 9. Oktober 2018 Torben Achilles Informatik Vorkurs
MehrExponentiation: 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:
MehrInformatik I (D-MAVT)
Informatik I (D-MAVT) Übungsstunde 2 simon.mayer@inf.ethz.ch Distributed Systems Group, ETH Zürich Ablauf Besprechung der Vorlesung Vorbesprechung Übung 2 Variablen + Scopes Zahlensysteme Bits&Bytes Datentypen
MehrHallo Welt für Fortgeschrittene
Hallo Welt für Fortgeschrittene Zahlentheorie, Arithmetik und Algebra II Benjamin Fischer Informatik 2 Programmiersysteme Martensstraße 3 91058 Erlangen Gliederung Lineare Rekursion BigInteger Chinesischer
MehrKapitel 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:
MehrAlgorithmen und Datenstrukturen
Technische Universität München WiSe 2012/13 Institut für Informatik I-16 Lösungsblatt 7 Dr. Tobias Lasser 3. Dezember 2012 Jakob Vogel Algorithmen und Datenstrukturen Aufgabe 1 Rechnen mit Landau-Symbolen
MehrRechnergrundlagen SS Vorlesung
Rechnergrundlagen SS 27 4. Vorlesung Inhalt Binäre Darstellung von Integer-Zahlen Vorzeichen-Betrag 2er-Komplement BCD Addition und Subtraktion binär dargestellter Zahlen Carry und Overflow Little Endian
MehrInformatik I Komplexität von Algorithmen
Leistungsverhalten von Algorithmen Informatik I Komplexität von Algorithmen G. Zachmann Clausthal University, Germany zach@in.tu-clausthal.de Speicherplatzkomplexität: Wird primärer & sekundärer Speicherplatz
MehrIT-Security. Teil 8b: Rechnen mit beliebiger Genauigkeit Algorithmen
IT-Security Teil 8b: Rechnen mit beliebiger Genauigkeit Algorithmen 06.06.17 1 Überblick Potenzieren Quadrieren Euklid'scher Algorithmus In den meisten Fällen wird nur mit positiven Werten gerechnet. Bei
MehrSystem.out.println("TEXT");
Inhaltsübersicht - Erstes Beispiel - Datentypen - Ausdrücke und Operatoren - Schleifen / Bedinungen - Struktogramme - Grundgerüst eines Programms in JAVA - Einlesen von Daten Erstes Beispiel public class
MehrGrundlagen: Algorithmen und Datenstrukturen
Grundlagen: Algorithmen und Datenstrukturen Prof. Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Sommersemester 2010
MehrAlgorithmen 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π auf (und mehr) Dezimalen Wegen π = 4 arctan(1) kann die Reihenentwicklung des Arkustangens verwendet werden.
π auf 10000000 (und mehr) Dezimalen Ac Wegen π = 4 arctan(1) kann die Reihenentwicklung des Arkustangens verwendet werden. n 2k+ 1 3 5 7 9 11 2n+ 1 k x x x x x x n x arctan( x)» å( - 1) = x - + - + - +
MehrKapitel 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:
MehrKomplexität von Algorithmen
Ziele 2 Komplexität von Algorithmen Zeit- und Speicherplatzbedarf einer Anweisung berechnen können Zeit- und Speicherplatzbedarf einer Methode berechnen können Martin Wirsing Unterschiede der Komplexität
MehrKapitel 10. Komplexität von Algorithmen und Sortieralgorithmen
Kapitel 10 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:
Mehr3. Datentypen, Ausdrücke und Operatoren
3. Datentypen, Ausdrücke und Operatoren Programm muß i.a. Daten zwischenspeichern Speicherplatz muß bereitgestellt werden, der ansprechbar, reserviert ist Ablegen & Wiederfinden in höheren Programmiersprachen
MehrAlgorithmen 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
MehrEinheit Datentypen in der Programmiersprache C Schwerpunkt: Elementare (arithmetische) Datentypen
Einheit Datentypen in der Programmiersprache C Schwerpunkt: Elementare (arithmetische) Datentypen Kurs C/C++ Programmierung, WS 2008/2009 Dipl.Inform. R. Spurk Arbeitsgruppe Programmierung FR 6.2 Informatik
MehrÜbungen zu Algorithmen
Institut für Informatik Universität Osnabrück, 08.11.2016 Prof. Dr. Oliver Vornberger http://www-lehre.inf.uos.de/~ainf Lukas Kalbertodt, B.Sc. Testat bis 16.11.2016, 14:00 Uhr Nils Haldenwang, M.Sc. Übungen
MehrNumerische 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)
MehrComputerarithmetik (6a)
Computerarithmetik (6a) Weitere Nachteile: erfordert separates Subtrahierwerk erfordert zusätzliche Logik, um zu entscheiden, welches Vorzeichen das Ergebnis der Operation hat 2. Die Komplement - Darstellung
MehrN Bit Darstellung von Gleitkommazahlen
N Bit Darstellung von Gleitkommazahlen Normalisierte, wissenschaftliche Darstellung zur Basis 2. Beispiel: Allgemein: Sign and Magnitude Darstellung für beispielsweise 32 Bits: (s=0 für + und s=1 für )
MehrÜbung Algorithmen und Datenstrukturen
Übung Algorithmen und Datenstrukturen Sommersemester 017 Marc Bux, Humboldt-Universität zu Berlin Agenda 1. Vorrechnen von Aufgabenblatt 1. Wohlgeformte Klammerausdrücke 3. Teile und Herrsche Agenda 1.
MehrProgrammieren in C. C Syntax Datentypen, Operatoren und Kontrollstrukturen. Prof. Dr. Nikolaus Wulff
Programmieren in C C Syntax Datentypen, Operatoren und Kontrollstrukturen Prof. Dr. Nikolaus Wulff Elementare Typen Imperative und objektorientierte Programmiersprachen bieten i.d.r. einen Satz elementarer
MehrNachklausur 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
MehrDas Rechnermodell - Funktion
Darstellung von Zahlen und Zeichen im Rechner Darstellung von Zeichen ASCII-Kodierung Zahlensysteme Dezimalsystem, Dualsystem, Hexadezimalsystem Darstellung von Zahlen im Rechner Natürliche Zahlen Ganze
MehrVorlesung Informatik 2 Algorithmen und Datenstrukturen
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (03 Verschiedene Algorithmen für dasselbe Problem) Prof. Dr. Susanne Albers Das Maximum-Subarray Problem Das Maximum-Subarray Problem: Gegeben: Folge
MehrModul IP7: Rechnerstrukturen
64-040 Modul IP7: 3. Arithmetik Norman Hendrich Universität Hamburg MIN Fakultät, Department Informatik Vogt-Kölln-Str. 30, D-22527 Hamburg hendrich@informatik.uni-hamburg.de WS 2013/2014 Norman Hendrich
MehrInformatik 1 für Nebenfachstudierende Beispiele für Klausuraufgaben
Informatik 1 für Nebenfachstudierende Beispiele für Klausuraufgaben Aufgabe 1: Zahlensysteme a) Stellen sie die Zahl Z als allgemeine Formel mittels eines polyadischen Zahlensystems zur Basis B dar. b)
MehrGrundlagen der Modellierung und Programmierung, Übung
Grundlagen der Modellierung und Programmierung Übung Prof. Wolfram Amme LS Softwaretechnik Prof. Klaus Küspert LS Datenbanksysteme Prof. Birgitta König-Ries LS Verteilte Systeme Prof. Dr. Wilhelm Rossak
Mehr