Clevere Algorithmen programmieren
|
|
- Angela Simen
- vor 5 Jahren
- Abrufe
Transkript
1 ClevAlg 2017 Arithmetische Operationen Clevere Algorithmen programmieren Dennis Komm, Jakub Závodný, Tobias Kohn 27. September 2017
2 Addition zweier Zahlen
3 Addition von Zahlen Wir stellen Zahlen als Strings dar Clevere Algorithmen programmieren ClevAlg D. Komm, J. Závodný, T. Kohn 27. September / 6
4 Addition von Zahlen Wir stellen Zahlen als Strings dar Diese können beliebig gross werden Clevere Algorithmen programmieren ClevAlg D. Komm, J. Závodný, T. Kohn 27. September / 6
5 Addition von Zahlen Wir stellen Zahlen als Strings dar Diese können beliebig gross werden Addiere zunächst Ziffern Clevere Algorithmen programmieren ClevAlg D. Komm, J. Závodný, T. Kohn 27. September / 6
6 Addition von Zahlen Wir stellen Zahlen als Strings dar Diese können beliebig gross werden Addiere zunächst Ziffern def add_digits(x,y): xint=ord(x)-ord("0") yint=ord(y)-ord("0") result=xint+yint result1=result // 10 result2=result % 10 return chr(result1+ord("0")),chr(result2+ord("0")) Clevere Algorithmen programmieren ClevAlg D. Komm, J. Závodný, T. Kohn 27. September / 6
7 Multiplikation von Zahlen Effizienz Wie schnell ist unsere Multiplikation? Clevere Algorithmen programmieren ClevAlg D. Komm, J. Závodný, T. Kohn 27. September / 6
8 Multiplikation von Zahlen Effizienz Wie schnell ist unsere Multiplikation? Nehmen wir wieder an, x und y haben binäre Länge n Clevere Algorithmen programmieren ClevAlg D. Komm, J. Závodný, T. Kohn 27. September / 6
9 Multiplikation von Zahlen Effizienz Wie schnell ist unsere Multiplikation? Nehmen wir wieder an, x und y haben binäre Länge n Beide Zahlen sind ungefähr 2 n Clevere Algorithmen programmieren ClevAlg D. Komm, J. Závodný, T. Kohn 27. September / 6
10 Multiplikation von Zahlen Effizienz Wie schnell ist unsere Multiplikation? Nehmen wir wieder an, x und y haben binäre Länge n Beide Zahlen sind ungefähr 2 n Wir wissen, Addition von x und y ist in O(n) Clevere Algorithmen programmieren ClevAlg D. Komm, J. Závodný, T. Kohn 27. September / 6
11 Multiplikation von Zahlen Effizienz Wie schnell ist unsere Multiplikation? Nehmen wir wieder an, x und y haben binäre Länge n Beide Zahlen sind ungefähr 2 n Wir wissen, Addition von x und y ist in O(n) i ist am Anfang y Clevere Algorithmen programmieren ClevAlg D. Komm, J. Závodný, T. Kohn 27. September / 6
12 Multiplikation von Zahlen Effizienz Wie schnell ist unsere Multiplikation? Nehmen wir wieder an, x und y haben binäre Länge n Beide Zahlen sind ungefähr 2 n Wir wissen, Addition von x und y ist in O(n) i ist am Anfang y Schleife wird durchlaufen, bis i gleich 0 ist Clevere Algorithmen programmieren ClevAlg D. Komm, J. Závodný, T. Kohn 27. September / 6
13 Multiplikation von Zahlen Effizienz Wie schnell ist unsere Multiplikation? Nehmen wir wieder an, x und y haben binäre Länge n Beide Zahlen sind ungefähr 2 n Wir wissen, Addition von x und y ist in O(n) i ist am Anfang y Schleife wird durchlaufen, bis i gleich 0 ist Ungefähr 2 n Schleifendurchläufe Clevere Algorithmen programmieren ClevAlg D. Komm, J. Závodný, T. Kohn 27. September / 6
14 Multiplikation von Zahlen Effizienz Wie schnell ist unsere Multiplikation? Nehmen wir wieder an, x und y haben binäre Länge n Beide Zahlen sind ungefähr 2 n Wir wissen, Addition von x und y ist in O(n) i ist am Anfang y Schleife wird durchlaufen, bis i gleich 0 ist Ungefähr 2 n Schleifendurchläufe Laufzeit in O(n 2 n ) Clevere Algorithmen programmieren ClevAlg D. Komm, J. Závodný, T. Kohn 27. September / 6
15 Multiplikation von Zahlen Effizienz Wie schnell ist unsere Multiplikation? Nehmen wir wieder an, x und y haben binäre Länge n Beide Zahlen sind ungefähr 2 n Wir wissen, Addition von x und y ist in O(n) i ist am Anfang y Schleife wird durchlaufen, bis i gleich 0 ist Ungefähr 2 n Schleifendurchläufe Laufzeit in O(n 2 n ) Exponentielle Laufzeit (sogar noch grösser) Clevere Algorithmen programmieren ClevAlg D. Komm, J. Závodný, T. Kohn 27. September / 6
16 Multiplikation zweier Zahlen Quadratisch statt Exponentiell
17 Schnellere Multiplikation von Zahlen Wir erinnern uns an das schriftliche Multiplizieren... Clevere Algorithmen programmieren ClevAlg D. Komm, J. Závodný, T. Kohn 27. September / 6
18 Schnellere Multiplikation von Zahlen Wir erinnern uns an das schriftliche Multiplizieren Clevere Algorithmen programmieren ClevAlg D. Komm, J. Závodný, T. Kohn 27. September / 6
19 Schnellere Multiplikation von Zahlen Wir erinnern uns an das schriftliche Multiplizieren Clevere Algorithmen programmieren ClevAlg D. Komm, J. Závodný, T. Kohn 27. September / 6
20 Schnellere Multiplikation von Zahlen Wir erinnern uns an das schriftliche Multiplizieren Clevere Algorithmen programmieren ClevAlg D. Komm, J. Závodný, T. Kohn 27. September / 6
21 Schnellere Multiplikation von Zahlen Wir erinnern uns an das schriftliche Multiplizieren Clevere Algorithmen programmieren ClevAlg D. Komm, J. Závodný, T. Kohn 27. September / 6
22 Schnellere Multiplikation von Zahlen Wir erinnern uns an das schriftliche Multiplizieren Clevere Algorithmen programmieren ClevAlg D. Komm, J. Závodný, T. Kohn 27. September / 6
23 Schnellere Multiplikation von Zahlen Wir erinnern uns an das schriftliche Multiplizieren Baue diesen Algorithmus nach Clevere Algorithmen programmieren ClevAlg D. Komm, J. Závodný, T. Kohn 27. September / 6
24 Schnellere Multiplikation von Zahlen Wir erinnern uns an das schriftliche Multiplizieren Baue diesen Algorithmus nach Erstelle zunächst Funktion mult_digit_num Clevere Algorithmen programmieren ClevAlg D. Komm, J. Závodný, T. Kohn 27. September / 6
25 Schnellere Multiplikation von Zahlen mult_digit_num Baustein analog zu add_digits Clevere Algorithmen programmieren ClevAlg D. Komm, J. Závodný, T. Kohn 27. September / 6
26 Schnellere Multiplikation von Zahlen mult_digit_num Baustein analog zu add_digits Umsetzung wie naive Multiplikation Clevere Algorithmen programmieren ClevAlg D. Komm, J. Závodný, T. Kohn 27. September / 6
27 Schnellere Multiplikation von Zahlen mult_digit_num Baustein analog zu add_digits Umsetzung wie naive Multiplikation (Lösche zusätzlich führende Nullen) Clevere Algorithmen programmieren ClevAlg D. Komm, J. Závodný, T. Kohn 27. September / 6
28 Schnellere Multiplikation von Zahlen mult_digit_num Baustein analog zu add_digits Umsetzung wie naive Multiplikation (Lösche zusätzlich führende Nullen) def mult_digit_num(d,y): i = "0" result = "0" while not eq_nums(i,d): result = add_nums(result,y) i = add_nums(i,"1") while result[0] == "0": result = result[1:] return result Clevere Algorithmen programmieren ClevAlg D. Komm, J. Závodný, T. Kohn 27. September / 6
29 Schnellere Multiplikation von Zahlen Verwende mult_digit_num für jede Stelle der ersten Zahl Clevere Algorithmen programmieren ClevAlg D. Komm, J. Závodný, T. Kohn 27. September / 6
30 Schnellere Multiplikation von Zahlen Verwende mult_digit_num für jede Stelle der ersten Zahl Shifte, indem Null angehängt wird Clevere Algorithmen programmieren ClevAlg D. Komm, J. Závodný, T. Kohn 27. September / 6
31 Schnellere Multiplikation von Zahlen Verwende mult_digit_num für jede Stelle der ersten Zahl Shifte, indem Null angehängt wird Addiere Ergebnisse Clevere Algorithmen programmieren ClevAlg D. Komm, J. Závodný, T. Kohn 27. September / 6
32 Schnellere Multiplikation von Zahlen Verwende mult_digit_num für jede Stelle der ersten Zahl Shifte, indem Null angehängt wird Addiere Ergebnisse def mult_nums_2(x,y): result = "0" shift = "" for i in range(len(x)-1,-1,-1): tmp = mult_digit_num(x[i],y) tmp = tmp+shift result = add_nums(result,tmp) shift = shift+"0" while result[0] == "0": result = result[1:] return result Clevere Algorithmen programmieren ClevAlg D. Komm, J. Závodný, T. Kohn 27. September / 6
33 Schnellere Multiplikation von Zahlen Effizienz Wir nehmen wieder an, x und y sind mit n Bits dargestellt Clevere Algorithmen programmieren ClevAlg D. Komm, J. Závodný, T. Kohn 27. September / 6
34 Schnellere Multiplikation von Zahlen Effizienz Wir nehmen wieder an, x und y sind mit n Bits dargestellt Jede Stelle hat höchstens Grösse 9 Clevere Algorithmen programmieren ClevAlg D. Komm, J. Závodný, T. Kohn 27. September / 6
35 Schnellere Multiplikation von Zahlen Effizienz Wir nehmen wieder an, x und y sind mit n Bits dargestellt Jede Stelle hat höchstens Grösse 9 Ausführung von mult_digit_num führt zu ca. 9n O(n) Operationen (Additionen von Ziffern) Clevere Algorithmen programmieren ClevAlg D. Komm, J. Závodný, T. Kohn 27. September / 6
36 Schnellere Multiplikation von Zahlen Effizienz Wir nehmen wieder an, x und y sind mit n Bits dargestellt Jede Stelle hat höchstens Grösse 9 Ausführung von mult_digit_num führt zu ca. 9n O(n) Operationen (Additionen von Ziffern) mult_digit_num wird n Mal aufgerufen Clevere Algorithmen programmieren ClevAlg D. Komm, J. Závodný, T. Kohn 27. September / 6
37 Schnellere Multiplikation von Zahlen Effizienz Wir nehmen wieder an, x und y sind mit n Bits dargestellt Jede Stelle hat höchstens Grösse 9 Ausführung von mult_digit_num führt zu ca. 9n O(n) Operationen (Additionen von Ziffern) mult_digit_num wird n Mal aufgerufen Laufzeit in O(n 2 ) Clevere Algorithmen programmieren ClevAlg D. Komm, J. Závodný, T. Kohn 27. September / 6
38 Schnellere Multiplikation von Zahlen Effizienz Wir nehmen wieder an, x und y sind mit n Bits dargestellt Jede Stelle hat höchstens Grösse 9 Ausführung von mult_digit_num führt zu ca. 9n O(n) Operationen (Additionen von Ziffern) mult_digit_num wird n Mal aufgerufen Laufzeit in O(n 2 ) Laufzeit des wiederholten Addierens in O(2 n ) Clevere Algorithmen programmieren ClevAlg D. Komm, J. Závodný, T. Kohn 27. September / 6
39 Schnellere Multiplikation von Zahlen Effizienz Wir nehmen wieder an, x und y sind mit n Bits dargestellt Jede Stelle hat höchstens Grösse 9 Ausführung von mult_digit_num führt zu ca. 9n O(n) Operationen (Additionen von Ziffern) mult_digit_num wird n Mal aufgerufen Laufzeit in O(n 2 ) Laufzeit des wiederholten Addierens in O(2 n ) Exponentielle Verbesserung Clevere Algorithmen programmieren ClevAlg D. Komm, J. Závodný, T. Kohn 27. September / 6
40 Danke für die Aufmerksamkeit
Programmieren und Problemlösen
Dennis Komm Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 27. Februar 2019 Komplexität von Algorithmen Aufgabe Primzahltest Schreibe ein Programm, das eine ganze Zahl x als Eingabe
MehrEffiziente Algorithmen mit Python. D. Komm, T. Kohn
Effiziente Algorithmen mit Python D. Komm, T. Kohn Copyright c 2017, ABZ, ETH Zürich http://www.abz.inf.ethz.ch/ Version vom 7. September 2017. Effiziente Algorithmen mit Python 3 1 Effizienz Effizient
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
MehrGrundlagen: Algorithmen und Datenstrukturen
Grundlagen: Algorithmen und Datenstrukturen Sommersemester 2018 Tobias Lasser Computer Aided Medical Procedures Technische Universität München Multiplikation langer Zahlen Schulmethode: gegeben Zahlen
MehrSchleifeninvarianten. 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
MehrControl Beispiel. Control wird als kombinatorische Schaltung realisiert. Hierzu die Wahrheitstabelle: Control
Control Beispiel Store R1 4 Bit Register R1 SUB 4 Bit Register R2 Store R2 R2 Bit 0 Control wird als kombinatorische Schaltung realisiert. Hierzu die Wahrheitstabelle: Eingabe R2 Bit 0 Zero 0 0 Ausgabe
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:
MehrAchtung: 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
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:
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:
MehrAlgebraische und arithmetische Algorithmen
Kapitel 1 Algebraische und arithmetische Algorithmen 1.1 Das algebraische Berechnungsmodell Struktur: Körper (oder Ring) mit den Operationen +,,, (/) Eingabe: endliche Folge von Zahlen Ausgabe: endliche
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:
MehrAlgorithmen und Datenstrukturen in der Bioinformatik Erstes Übungsblatt WS 05/06 Musterlösung
Konstantin Clemens Johanna Ploog Freie Universität Berlin Institut für Mathematik II Arbeitsgruppe für Mathematik in den Lebenswissenschaften Algorithmen und Datenstrukturen in der Bioinformatik Erstes
MehrClevere Algorithmen programmieren
ClevAlg 2017 Cäsar-Verschlüsselung Clevere Algorithmen programmieren Dennis Komm, Jakub Závodný, Tobias Kohn 18. Oktober 2017 Clevere Algorithmen programmieren ClevAlg 2017.5 D. Komm, J. Závodný, T. Kohn
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
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
MehrPanorama der Mathematik und Informatik
Panorama der Mathematik und Informatik 20: Algorithmen V: Schnelle Multiplikation Dirk Frettlöh Technische Fakultät / Richtig Einsteigen 18.6.2015 Eine weitere Anwendung der schnellen Fouriertransformation:
MehrEinstieg 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
MehrKryptographische Protokolle
Kryptographische Protokolle Lerneinheit 2: Generierung von Primzahlen Prof. Dr. Christoph Karg Studiengang Informatik Hochschule Aalen Wintersemester 2018/2019 15.11.2018 Einleitung Einleitung Diese Lerneinheit
MehrÜBUNGS-BLOCK 7 LÖSUNGEN
ÜBUNGS-BLOCK 7 LÖSUNGEN Aufgabe 1: Gegeben ist folgender Code: Auto[] array = new Auto[3]; // Alle Autos im Array tunen: for (int i = 1; i
MehrAlgorithmen und Datenstrukturen (für ET/IT)
Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2017 Dr. Stefanie Demirci Computer Aided Medical Procedures Technische Universität München Programm heute 1 Einführung 2 Grundlagen von Algorithmen
MehrAlgebraische und arithmetische Algorithmen
Kapitel 1 Algebraische und arithmetische Algorithmen 1.1 Das algebraische Berechnungsmodell Struktur: Körper (oder Ring) mit den Operationen +,,, (/) Eingabe: endliche Folge von Zahlen Ausgabe: endliche
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
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:
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
MehrProgrammieren in C++
Fakultät Elektronik und Infor matik Studiengang Infor matik Programmieren in C++ Vorlesung im Sommersemester 2018 Prof. Dr. habil. Christian Heinlein 2. Übungsblatt (22. März 2018) Aufgabe 2: Lange vorzeichenlose
Mehr5. Übung: Binäres Rechnen und Fließkommazahlen Abteilung Verteilte Systeme, Universität Ulm
5. Übung: Binäres Rechnen und Fließkommazahlen Aufgabe 1: Binäres Rechnen a) Berechnen Sie: x = 01100101b*(0101101b-10110100b)+10101b. Alle Zahlen sind 8 Bit breit und in Zweierkomplement-Notation angegeben.
MehrStichpunktezettel fürs Tutorium
Stichpunktezettel fürs Tutorium Moritz und Dorian 18. November 2009 1 Chomskys Erstschlag 1.1 Reguläre Sprachen und Grammatiken Aufgabe 1. Wie sieht die Sprache zu den folgenden Grammatiken aus? 1. G =
Mehr2. Grundlagen. Beschreibung von Algorithmen durch Pseudocode. Korrektheit von Algorithmen durch Invarianten.
2. Grundlagen Beschreibung von Algorithmen durch Pseudocode. Korrektheit von Algorithmen durch Invarianten. Laufzeitverhalten beschreiben durch O-Notation. 1 Beispiel Minimum-Suche Eingabe bei Minimum
MehrEinstieg in die Informatik mit Java
1 / 31 Einstieg in die Informatik mit Java Effizienz Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 31 1 Überlegungen zur Effizienz 2 Landau-Symbole 3 Eier im Korb 4 Zyklische
Mehr1. 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
MehrZunächst ein paar einfache "Rechen"-Regeln: Lemma, Teil 1: Für beliebige Funktionen f und g gilt:
Der Groß-O-Kalkül Zunächst ein paar einfache "Rechen"-Regeln: G. Zachmann Informatik 1 - WS 05/06 Komplexität 22 Additionsregel Lemma, Teil 1: Für beliebige Funktionen f und g gilt: Zu beweisen: nur das
MehrComputergrundlagen Boolesche Logik, Zahlensysteme und Arithmetik
Computergrundlagen Boolesche Logik, Zahlensysteme und Arithmetik Axel Arnold Institut für Computerphysik Universität Stuttgart Wintersemester 2010/11 Wie rechnet ein Computer? Ein Mikroprozessor ist ein
MehrInformatik I: Einführung in die Programmierung
Informatik I: Einführung in die Programmierung 5., bedingte Ausführung und Albert-Ludwigs-Universität Freiburg Bernhard Nebel 27. Oktober 2017 1 und der Typ bool Typ bool Typ bool Vergleichsoperationen
MehrClevere Algorithmen programmieren
ClevAlg 2017 Theoretische Informatik Clevere Algorithmen programmieren Dennis Komm, Jakub Závodný, Tobias Kohn 06. Dezember 2017 Die zentralen Fragen sind... Was kann man mit einem Computer nicht machen?
Mehr2: 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.
MehrKapitel 5: Paradigmen des Algorithmenentwurfs. Gliederung
Gliederung 1. Grundlagen 2. Analyse der Laufzeit von Algorithmen 3. Untere Schranken für algorithmische Probleme 4. Sortier- und Selektionsverfahren 5. Paradigmen des Algorithmenentwurfs 6. Ausgewählte
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 )
MehrString - Matching. Kapitel Definition
Kapitel 1 String - Matching 1.1 Definition String - Matching ( übersetzt in etwa Zeichenkettenanpassung ) ist die Suche eines Musters ( Pattern ) in einem Text. Es findet beispielsweise Anwendung bei der
MehrZwischenklausur Informatik, WS 2016/17. Lösungen zu den Aufgaben
Zwischenklausur Informatik, WS 206/7 4.2.206 Lösungen zu den Aufgaben. Gegeben sind folgende Dualzahlen in Zweierkomplementdarstellung. Geben Sie den jeweils zugehörigen Dezimalwert an! a) entspricht der
MehrKostenmodell. Daniel Graf, Tobias Pröger. 22. September 2016 (aktualisierte Fassung 5 vom 9. Oktober 2016)
Kostenmodell Daniel Graf, Tobias Pröger 22. September 2016 (aktualisierte Fassung 5 vom 9. Oktober 2016) Erklärung: Diese Mitschrift ist als Ergänzung zur Vorlesung gedacht. Wir erheben keinen Anspruch
MehrSpeichern von Zuständen
Speichern von Zuständen Erweiterung eines R S Latch zu einem D Latch (D=Data, C=Clock) R S altes Q neues Q 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 0 1 0 1 0 R S C D altes Q neues Q 0 0 0 0 0 1 0 1 0 0 1
MehrEffiziente Algorithmen 2
Effiziente Algorithmen 2 Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Sommersemester 2009 Übersicht Algorithmen
MehrÜ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
MehrZum Nachdenken. Welche Eigenschaften einer Vorzeichendarstellung. erreichen? Wie könnte man Vorzeichenzahlen darstellen?
TECHNISCHE HOCHSCHULE NÜRNBERG GEORG SIMON OHM Zum Nachdenken Welche Eigenschaften einer Vorzeichendarstellung könnte man versuchen zu erreichen? Wie könnte man Vorzeichenzahlen darstellen? Grundlagen
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
MehrInformatik II, SS 2014
Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 21 (29.7.2014) String Matching (Textsuche) II Algorithmen und Komplexität Textsuche / String Matching Gegeben: Zwei Zeichenketten (Strings)
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
MehrVorlesung 2 KÜRZESTE WEGE
Vorlesung 2 KÜRZESTE WEGE 34 Kürzeste Wege im Graphen Motivation! Heute:! Kürzeste Wege von einem Knoten (SSSP)! Kürzeste Wege zwischen allen Knotenpaaren (APSP)! Viele Anwendungen:! Navigationssysteme!
MehrStichpunktezettel fürs Tutorium
Stichpunktezettel fürs Tutorium Moritz und Dorian 11. November 009 1 Kleiner Fermat Behauptung. Seien a, b N relativ prim und b eine Primzahl. Dann ist a b 1 = 1. Beweis. Wir definieren die Funktion f
MehrMultiplizierer. Beispiel komplexer arithmetischer Schaltung. Langsamer als Addition, braucht mehr Platz. Sequentielle Multiplikation
Multiplizierer 1 Beispiel komplexer arithmetischer Schaltung Langsamer als Addition, braucht mehr Platz Sequentielle Multiplikation Kompakte kombinatorische Variante mit Carry-Save-Adders (CSA) Vorzeichenbehaftete
MehrGrundbegriffe der Informatik
Grundbegriffe der Informatik Kapitel 16: Erste Algorithmen in Graphen Thomas Worsch KIT, Institut für Theoretische Informatik Wintersemester 2015/2016 GBI Grundbegriffe der Informatik KIT, Institut für
MehrComputergrundlagen Boolesche Logik, Zahlensysteme und Arithmetik
Computergrundlagen Boolesche Logik, Zahlensysteme und Arithmetik Axel Arnold Institut für Computerphysik Universität Stuttgart Wintersemester 2011/12 Wie rechnet ein Computer? Ein Mikroprozessor ist ein
MehrProf. Dr. Margarita Esponda
Analyse von Algorithmen Die O-Notation WS 2012/2013 Prof. Dr. Margarita Esponda Freie Universität Berlin 1 Korrekte und effiziente Lösung von Problemen Problem Wesentlicher Teil der Lösung eines Problems.
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
MehrKomplexitä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
MehrLösungen der Aufgaben
Lösungen der Aufgaben Aufgabe 1.3.1 Es gibt 42 mögliche Verschlüsselungen. Aufgabe 2.3.4 Ergebnisse sind 0, 4 und 4 1 = 4. Aufgabe 2.3.6 Da in Z 9 10 = 1 ist, erhalten wir x = c 0 + + c m = c 0 + + c m.
MehrAlgorithmen und Datenstrukturen (für ET/IT)
Algorithmen und Datenstrukturen (für ET/IT) Wintersemester / Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Programm heute 7 Fortgeschrittene Datenstrukturen Such-Algorithmen
MehrDaten suchen und durchsuchen. Programmieren und Problemlösen Daten suchen und durchsuchen, weiterführende Komplexitätstheorie
Daten suchen und durchsuchen Lineare Suche Dennis Komm Programmieren und Problemlösen Daten suchen und durchsuchen, weiterführende Komplexitätstheorie Frühling 2019 1. April 2019 Lineare Suche Einfachste
MehrGrundzü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
MehrAbschnitt 7: Komplexität von imperativen Programmen
Abschnitt 7: Komplexität von imperativen Programmen 7. Komplexität von imperativen Programmen 7 Komplexität von imperativen Programmen Einf. Progr. (WS 08/09) 399 Ressourcenbedarf von Algorithmen Algorithmen
MehrAlgorithmen und Datenstrukturen (für ET/IT) Programm heute. Sommersemester Dr. Tobias Lasser
Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 06 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Programm heute 7 Fortgeschrittene Datenstrukturen 8 Such-Algorithmen
MehrProseminar String Matching
Proseminar Textsuche Proseminar String Matching PD Dr. habil. Hanjo Täubig Lehrstuhl für Theoretische Informatik (Prof. Dr. Susanne Albers) Institut für Informatik Technische Universität München Wintersemester
MehrAlgorithmen und Datenstrukturen (für ET/IT)
Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2014 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Programm heute 7 Fortgeschrittene Datenstrukturen 8 Such-Algorithmen
MehrDas 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.
MehrDatenstrukturen Teil 2. Bäume. Definition. Definition. Definition. Bäume sind verallgemeinerte Listen. Sie sind weiter spezielle Graphen
Bäume sind verallgemeinerte Listen Datenstrukturen Teil 2 Bäume Jeder Knoten kann mehrere Nachfolger haben Sie sind weiter spezielle Graphen Graphen bestehen aus Knoten und Kanten Kanten können gerichtet
MehrIEEE 754 Encoding. Wie stellt man im IEEE 754 Format eigentlich die 0 dar!? Double Precision (Bias=1023)
IEEE 754 Encoding Wie stellt man im IEEE 754 Format eigentlich die 0 dar!? ( 1) S * (1 + Fraction) * 2 (Exponent Bias) Single Precision (Bias=127) Double Precision (Bias=1023) Dargestelltes Objekt Exponent
Mehr! 1. Rekursive Algorithmen.! 2. Rekursive (dynamische) Datenstrukturen. II.3.2 Rekursive Datenstrukturen - 1 -
! 1. Rekursive Algorithmen! 2. Rekursive (dynamische) Datenstrukturen II.3.2 Rekursive Datenstrukturen - 1 - Ausdruck Ausdruck Grundwert ( Typ ) Präfix-Operator Name Methodenaufruf [ Ausdruck ] ( Ausdruck
MehrAlgorithmen auf Sequenzen
Algorithmen auf Sequenzen Vorlesung von Prof. Dr. Sven Rahmann im Sommersemester 2008 Kapitel 4 Reguläre Ausdrücke Webseite zur Vorlesung http://ls11-www.cs.tu-dortmund.de/people/rahmann/teaching/ss2008/algorithmenaufsequenzen
Mehr3.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,
Mehr2. 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
MehrInformatik II, SS 2014
Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 7 (21.5.2014) Binäre Suche, Hashtabellen I Algorithmen und Komplexität Abstrakte Datentypen : Dictionary Dictionary: (auch: Maps, assoziative
MehrJava. public D find(k k) { Listnode K, D n = findnode(k); if(n == null) return null; return n.data; Java
Einführung Elementare Datenstrukturen (Folie 27, Seite 15 im Skript) Java Java public D find(k k) { Listnode K, D n = findnode(k); if(n == null) return null; return n.data; } protected Listnode K, D findnode(k
MehrTeil V. Programmierbare Logische Arrays (PLAs)
Teil V Programmierbare Logische Arrays (PLAs) 1 Aufbau von PLAs Programmierbares Logisches Array (PLA): Programmierbarer Einheitsbaustein aufgebaut als ein Gitter (Array) von Basisbausteinen (Zellen).
MehrAm Dienstag, den 15. Dezember, ist Eulenfest. 1/60
Am Dienstag, den 15. Dezember, ist Eulenfest. 1/60 Grundbegriffe der Informatik Einheit 12: Erste Algorithmen in Graphen Thomas Worsch Karlsruher Institut für Technologie, Fakultät für Informatik Wintersemester
Mehr1. Rekursive Algorithmen 2. Rekursive (dynamische) Datenstrukturen
1. Rekursive Algorithmen 2. Rekursive (dynamische) Datenstrukturen II.3.2 Rekursive Datenstrukturen - 1 - Grundwert ( Typ ) Präfix-Operator Name Methodenaufruf [ ] ( ) Infix-Operator Methodenaufruf new
MehrSoftware Entwicklung 1. Fallstudie: Arithmetische Ausdrücke. Rekursive Klassen. Überblick. Annette Bieniusa / Arnd Poetzsch-Heffter
Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter Fallstudie: Arithmetische Ausdrücke AG Softech FB Informatik TU Kaiserslautern Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 33 Überblick
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
MehrVorlesung Datenstrukturen
Vorlesung Datenstrukturen Einleitung und Grundlagen Maike Buchin 18.4.2017 Verantwortliche Dozentin Organisation der Übungen Übungsleiter Korrekteure Maike Buchin Maike.Buchin@rub.de Raum NA 1/70 Sprechzeiten:
MehrProgrammiertechnik II
Analyse von Algorithmen Algorithmenentwurf Algorithmen sind oft Teil einer größeren Anwendung operieren auf Daten der Anwendung, sollen aber unabhängig von konkreten Typen sein Darstellung der Algorithmen
MehrVorlesung 2 KÜRZESTE WEGE
Vorlesung 2 KÜRZESTE WEGE 45 Kürzeste Wege im Graphen Motivation! Heute:! Kürzeste Wege von einem Knoten (SSSP)! Distanzen zwischen allen Knotenpaaren (APD)! Viele Anwendungen:! Navis! Netzwerkrouting!...
MehrVorlesung Objektorientierte Programmierung Klausur
Prof. Dr. Stefan Brass 16. Februar 2007 Dipl.-Inform. Annett Thüring Institut für Informatik MLU Halle-Wittenberg Vorlesung Objektorientierte Programmierung Klausur Name: Matrikelnummer: Studiengang: Aufgabe
MehrEffiziente 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)
MehrRechnerarithmetik. Vorlesung im Sommersemester Eberhard Zehendner. FSU Jena. Thema: Multiplikation
Rechnerarithmetik Vorlesung im Sommersemester 2008 Eberhard Zehendner FSU Jena Thema: Multiplikation Eberhard Zehendner (FSU Jena) Rechnerarithmetik Multiplikation 1 / 28 Multiplikation in UInt 2 (l),
MehrMB2-ALG, SS15 Seite 1 Hauptklausur, geschrieben am
MB-ALG, SS1 Seite 1 Hauptklausur, geschrieben am.07.01 Vorname Nachname Matrikel-Nr Diese Klausur ist mein letzter Prüfungsversuch (bitte ankreuzen): Ja Nein Ihre Lösung für Aufgabe 1 können Sie direkt
MehrVerkettete Datenstrukturen: Bäume
Verkettete Datenstrukturen: Bäume 1 Graphen Gerichteter Graph: Menge von Knoten (= Elementen) + Menge von Kanten. Kante: Verbindung zwischen zwei Knoten k 1 k 2 = Paar von Knoten (k 1, k 2 ). Menge aller
MehrKomplexität von Algorithmen
Komplexität von Algorithmen Ziel Angabe der Effizienz eines Algorithmus unabhängig von Rechner, Programmiersprache, Compiler. Page 1 Eingabegröße n n Integer, charakterisiert die Größe einer Eingabe, die
MehrDokumentation der Assemblerroutinen
Dokumentation der Assemblerroutinen für die Befehle MULT, MULTU, DIV & DIVU MulU Zum Multiplizieren, wurde die Methode der russischen Bauernmultiplikation benutzt, die prinzipiell nur ein schriftliches
MehrÜbung Algorithmen und Datenstrukturen
Übung Algorithmen und Datenstrukturen Sommersemester 2017 Marc Bux, Humboldt-Universität zu Berlin Agenda 1. (Sortierte) Listen 2. Stacks & Queues 3. Datenstrukturen 4. Rekursion und vollständige Induktion
MehrKomplexität. G. Zachmann Clausthal University, Germany Leistungsverhalten von Algorithmen
lausthal Informatik II Komplexität von Algorithmen. Zachmann lausthal University, ermany zach@in.tu-clausthal.de Leistungsverhalten von Algorithmen Speicherplatzkomplexität: Wird primärer & sekundärer
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
Mehrpublic class Test extends MiniJava { public static void main (String [] args) { write(args[0]+args[1]); } } // end of class Test
Manche Funktionen, deren Ergebnistyp void ist, geben gar keine Werte zurück im Beispiel: write() und main(). Diese Funktionen heißen Prozeduren. Das Hauptprogramm hat immer als Parameter ein Feld args
MehrAlgorithmen und Datenstrukturen 2. Stefan Florian Palkovits, BSc Juni 2016
Algorithmen und Datenstrukturen Übung Stefan Florian Palkovits, BSc 09 e09@student.tuwien.ac.at 9. Juni 0 Aufgabe 9: Anwenden der Spanning Tree Heuristik auf symmetrisches TSP 9 8 7 8 8 7 Bilden eines
MehrGrundbegriffe der Informatik Musterlösung zu Aufgabenblatt 9
Grundbegriffe der Informatik Musterlösung zu Aufgabenblatt 9 Aufgabe 9.1 (5+ Punkte) Für Graphen mit gewichteten Kanten steht in der Adjazenzmatrix an der Stelle i,j eine 0, falls es keine Kante von i
MehrSoftware Entwicklung 1
Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter AG Softech FB Informatik TU Kaiserslautern Fallstudie: Arithmetische Ausdrücke Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 33 Überblick
MehrPraktikumsprotokoll Mikrorechentechnik I Versuch
Praktikumsprotokoll Mikrorechentechnik I Versuch Von-Neumann-Simulator Fabian Kurz, Alexander Eder Stephan Stiebitz, Phillip Burker 5. November 2004 Inhaltsverzeichnis 1 Aufgabenstellung 2 2 Lösung 2 2.1
Mehr